require("game.proto.163.Require163")
|
|
require("game.pet.PetModel")
|
|
require("game.pet.PetConst")
|
|
require("game.pet.PetBaseView")
|
|
require("game.pet.PetTrainingView")
|
|
require("game.pet.PetCollectionView")
|
|
require("game.pet.PetFeedPanel")
|
|
require("game.pet.PetSkillPanel")
|
|
require("game.pet.PetEvolvePanel")
|
|
require("game.pet.PetItem")
|
|
require("game.pet.PetCollectItem")
|
|
require("game.pet.PetAttrItem")
|
|
require("game.pet.PetSkillItem")
|
|
require("game.pet.PetEvolvePreView")
|
|
require("game.pet.PetStoryView")
|
|
require("game.pet.PetStoryItem")
|
|
require("game.pet.PetDiamondItem")
|
|
require("game.pet.PetDiamondChooseView")
|
|
require("game.pet.PetEvolveSuccessView")
|
|
require("game.pet.PetEvolveSuccessAttrItem")
|
|
require("game.pet.PetSkillTipsView")
|
|
require("game.pet.PetSupportChoosePetView")
|
|
require("game.pet.PetSupportRankView")
|
|
require("game.pet.PetSupportUnlockView")
|
|
require("game.pet.PetSupportView")
|
|
require("game.pet.PetSupportChooseItem")
|
|
require("game.pet.PetSupportASItem")
|
|
require("game.pet.PetSupportNormalItem")
|
|
require("game.pet.PetSupportRankItem")
|
|
require("game.pet.PetShareLookView")
|
|
require("game.pet.PetVoteView")
|
|
require("game.pet.PetVoteItem")
|
|
require("game.pet.PetCollectionView")
|
|
require("game.pet.PetAwakeItem")
|
|
require("game.pet.PetAwakeView")
|
|
require("game.pet.PetAwakeAttrItem")
|
|
require("game.pet.PetCollectAttrItem")
|
|
require("game.pet.PetCollectSkillItem")
|
|
require("game.pet.PetShareAttrItem")
|
|
require("game.pet.PetShareSkillItem")
|
|
require("game.pet.PetDiamondComposeView")
|
|
require("game.pet.PetDiamondComposeItem")
|
|
|
|
PetController = PetController or BaseClass(BaseController, true)
|
|
local PetController = PetController
|
|
|
|
|
|
function PetController:__init()
|
|
PetController.Instance = self
|
|
self.model = PetModel:getInstance()
|
|
self:AddEvents()
|
|
self:RegisterAllProtocal()
|
|
|
|
end
|
|
|
|
function PetController:__delete()
|
|
end
|
|
|
|
function PetController:RegisterAllProtocal( )
|
|
self:RegisterProtocal(16300, "Handle16300")
|
|
self:RegisterProtocal(16301, "Handle16301")
|
|
self:RegisterProtocal(16302, "Handle16302")
|
|
self:RegisterProtocal(16303, "Handle16303")
|
|
self:RegisterProtocal(16304, "Handle16304")
|
|
self:RegisterProtocal(16305, "Handle16305")
|
|
self:RegisterProtocal(16306, "Handle16306")
|
|
self:RegisterProtocal(16307, "Handle16307")
|
|
self:RegisterProtocal(16308, "Handle16308")
|
|
self:RegisterProtocal(16309, "Handle16309")
|
|
self:RegisterProtocal(16310, "Handle16310")
|
|
self:RegisterProtocal(16311, "Handle16311")
|
|
self:RegisterProtocal(16312, "Handle16312")
|
|
self:RegisterProtocal(16313, "Handle16313")
|
|
self:RegisterProtocal(16314, "Handle16314")
|
|
self:RegisterProtocal(16315, "Handle16315")
|
|
self:RegisterProtocal(16316, "Handle16316")
|
|
self:RegisterProtocal(16317, "Handle16317")
|
|
self:RegisterProtocal(16318, "Handle16318")
|
|
end
|
|
|
|
function PetController:AddEvents()
|
|
local function onGameStart()
|
|
local function onDelay()
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16301)--请求自己的宠物数据
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16307)--请求声援信息
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16313)
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16310)
|
|
end
|
|
setTimeout(onDelay, 2)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_START, onGameStart)
|
|
|
|
-- 满足等级后请求信息
|
|
local function onLevelUp(level)
|
|
if level == GetModuleOpenLevel(163) then
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16301)--请求自己的宠物数据
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16307)--请求声援信息
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16313)
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16310)
|
|
end
|
|
end
|
|
RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
|
|
|
|
--请求信息
|
|
local function onRequestHandler(...)
|
|
local args_list = {...}
|
|
if args_list[1] == 16301 then
|
|
self:SendFmtToGame(args_list[1])
|
|
elseif args_list[1] == 16302 then
|
|
self:SendFmtToGame(args_list[1],"iih",args_list[2],args_list[3],args_list[4])
|
|
elseif args_list[1] == 16303 then
|
|
self:SendFmtToGame(args_list[1],"ic",args_list[2],args_list[3])
|
|
elseif args_list[1] == 16304 or args_list[1] == 16314 or args_list[1] == 16315 or args_list[1] == 16316 then
|
|
self:SendFmtToGame(args_list[1],"i",args_list[2])
|
|
elseif args_list[1] == 16305 then
|
|
self:SendFmtToGame(args_list[1],"icil",args_list[2],args_list[3],args_list[4],args_list[5])
|
|
elseif args_list[1] == 16308 then
|
|
self:SendFmtToGame(args_list[1],"ic",args_list[2],args_list[3])
|
|
elseif args_list[1] == 16309 then
|
|
self:SendFmtToGame(args_list[1])
|
|
elseif args_list[1] == 16311 then
|
|
self:SendFmtToGame(args_list[1],"li",args_list[2],args_list[3])
|
|
elseif args_list[1] == 16318 then
|
|
self:SendFmtToGame(args_list[1],"ci",args_list[2],args_list[3])
|
|
else
|
|
self:SendFmtToGame(args_list[1])
|
|
end
|
|
end
|
|
self.model:Bind(PetConst.REQUEST_CCMD_EVENT, onRequestHandler)
|
|
|
|
--打开base界面
|
|
local open_pet_view = function (index,right_tab_index)
|
|
if self.pet_base_view == nil then
|
|
self.pet_base_view = PetBaseView.New()
|
|
end
|
|
self.pet_base_view:Open(index,right_tab_index)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.OPEN_PET_VIEW, open_pet_view)
|
|
|
|
--打开进化预览界面
|
|
local function open_pet_preview(pet_id)
|
|
-- 特殊处理,初始化绿屏再打开
|
|
if LoginModel.ENABLE_GREEN_SCREEN then
|
|
CheatModel:getInstance():DisabledGreenScreenEffect(true)
|
|
LoginModel.ENABLE_GREEN_SCREEN = true
|
|
end
|
|
if not self.pet_preview then
|
|
self.pet_preview = PetEvolvePreView.New()
|
|
end
|
|
self.pet_preview:Open(pet_id)
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_PREVIEW, open_pet_preview)
|
|
|
|
--打开故事界面
|
|
local function open_pet_story_view(pet_id)
|
|
local story_cfg = self.model:GetPetStoryCfg(pet_id,1)
|
|
if not story_cfg then
|
|
Message.show("暂无故事")
|
|
return
|
|
end
|
|
if not self.pet_story_view then
|
|
self.pet_story_view = PetStoryView.New()
|
|
end
|
|
self.pet_story_view:Open(pet_id)
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_STORY_VIEW, open_pet_story_view)
|
|
|
|
--打开宝石选择界面
|
|
local function open_diamond_choose_view(pet_id,slot_id)--宠物id、槽位id
|
|
if not self.diamond_choose_view then
|
|
self.diamond_choose_view = PetDiamondChooseView.New()
|
|
end
|
|
self.diamond_choose_view:Open(pet_id,slot_id)
|
|
end
|
|
self.model:Bind(PetConst.OPEN_DIAMOND_CHOOSE_VIEW, open_diamond_choose_view)
|
|
|
|
--打开宠物进化成功界面
|
|
local function open_pet_evolve_success_view(pet_id,action_type)
|
|
if not self.pet_evolve_success_view then
|
|
self.pet_evolve_success_view = PetEvolveSuccessView.New()
|
|
end
|
|
self.pet_evolve_success_view:Open(pet_id,action_type)
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_EVOLVE_SUCCESS, open_pet_evolve_success_view)
|
|
|
|
--打开宠物分享界面
|
|
local function open_pet_share_view(vo)
|
|
if not self.pet_share_look_view then
|
|
self.pet_share_look_view = PetShareLookView.New()
|
|
end
|
|
self.pet_share_look_view:Open(vo)
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_SHARE_VIEW, open_pet_share_view)
|
|
|
|
--打开宠物技能tips界面
|
|
local function open_pet_skill_tips(skill_data,pet_id,is_awake_skill,share_role_pet_data)
|
|
if not self.pet_skill_tips then
|
|
self.pet_skill_tips = PetSkillTipsView.New()
|
|
end
|
|
self.pet_skill_tips:Open(skill_data,pet_id,is_awake_skill,share_role_pet_data)
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_SKILL_TIPS, open_pet_skill_tips)
|
|
|
|
--打开声援选择宠物界面
|
|
local function open_pet_support_choose_view(support_slot)
|
|
if not self.pet_support_choose_view then
|
|
self.pet_support_choose_view = PetSupportChoosePetView.New()
|
|
end
|
|
self.pet_support_choose_view:Open(support_slot)
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_SUPPORT_CHOOSE_VIEW, open_pet_support_choose_view)
|
|
|
|
--打开宠物声援排行榜界面
|
|
local function open_pet_support_rank_view()
|
|
if not self.pet_support_rank_view then
|
|
self.pet_support_rank_view = PetSupportRankView.New()
|
|
end
|
|
self.pet_support_rank_view:Open()
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_SUPPORT_RANK_VIEW, open_pet_support_rank_view)
|
|
|
|
--打开宠物投票界面
|
|
local function open_pet_vote_view()
|
|
if not self.pet_vote_view then
|
|
self.pet_vote_view = PetVoteView.New()
|
|
end
|
|
self.pet_vote_view:Open()
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_VOTE_VIEW, open_pet_vote_view)
|
|
|
|
--打开宠物声援位解锁界面
|
|
local function open_support_unlock_view(support_slot)
|
|
if not self.pet_support_unlock_view then
|
|
self.pet_support_unlock_view = PetSupportUnlockView.New()
|
|
end
|
|
self.pet_support_unlock_view:Open(support_slot)
|
|
end
|
|
self.model:Bind(PetConst.OPEN_SUPPORT_UNLOCK_VIEW, open_support_unlock_view)
|
|
|
|
--宠物相关物品数量刷新时
|
|
local function on_goods_update( goods_sub_type )
|
|
if goods_sub_type == 1 then--宠物碎片
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT, PetConst.RED_DOT_TYPE.Evolve)
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT, PetConst.RED_DOT_TYPE.Active)
|
|
elseif goods_sub_type == 2 then--升级材料道具
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT, PetConst.RED_DOT_TYPE.Feed)
|
|
elseif goods_sub_type == 3 then--技能宝石
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT, PetConst.RED_DOT_TYPE.Diamond)
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT, PetConst.RED_DOT_TYPE.DiamondCompose)
|
|
elseif goods_sub_type == 4 then--觉醒碎片
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT, PetConst.RED_DOT_TYPE.Awake)
|
|
end
|
|
end
|
|
self.model:Bind(PetConst.UPDATE_PET_GOODS_NUM, on_goods_update)
|
|
|
|
local function update_red_dot_by_tab_id_func( tab_id )--主要的更新红点方法
|
|
if not tab_id then
|
|
self.model:IsNeedRedAll()
|
|
else
|
|
self.model:IsNeedRed(tab_id)
|
|
end
|
|
local red_dot = self.model:GetAllRedDot()
|
|
local bool = false
|
|
for i,v in pairs(red_dot) do
|
|
if v then
|
|
bool = true
|
|
break
|
|
end
|
|
end
|
|
GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 163, bool)
|
|
end
|
|
self.model:Bind(PetConst.UPDATE_RED_DOT,update_red_dot_by_tab_id_func)
|
|
|
|
--打开宠物宝石合成界面
|
|
local function open_diamond_compose_view()
|
|
if not self.pet_diamond_compose_view then
|
|
self.pet_diamond_compose_view = PetDiamondComposeView.New()
|
|
end
|
|
self.pet_diamond_compose_view:Open()
|
|
end
|
|
self.model:Bind(PetConst.OPEN_PET_DIAMOND_COMPOSE_VIEW, open_diamond_compose_view)
|
|
|
|
|
|
local function chnage_day_func(type)
|
|
if type == SettingModel.CHANGE_DAY.HOUR_4 then
|
|
local function delay_method( )
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16310)
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16313)
|
|
end
|
|
setTimeout(delay_method, 1)
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func)
|
|
|
|
end
|
|
|
|
|
|
-- ################ 错误码展示 ################
|
|
-- protocol=16300
|
|
-- {
|
|
-- s2c{
|
|
-- errcode :int32
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16300( )
|
|
local vo = SCMD16300.New(true)
|
|
if vo then
|
|
ErrorCodeShow(vo.errcode)
|
|
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
end
|
|
end
|
|
|
|
-- ############## 宠物选择栏信息 ##############
|
|
-- protocol=16301
|
|
-- {
|
|
-- c2s{}
|
|
-- s2c{
|
|
-- follow_pet :int32 //跟随的宠物Id
|
|
-- pet_list:array{
|
|
-- pet_id :int32 //宠物Id
|
|
-- pet_star :int8 //宠物星级
|
|
-- pet_lv :int16 //宠物培养等级
|
|
-- now_exp :int32 //宠物当前经验值
|
|
-- attr_list:array{
|
|
-- attr_id :int8 //属性Id
|
|
-- attr_value :int32 //属性值
|
|
-- }
|
|
-- power :int64 //宠物战力
|
|
-- collect_time :int32 //宠物获得的时间
|
|
-- is_awaken :int8 //是否已经觉醒 0-未觉醒 1-已觉醒
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16301( )
|
|
local vo = SCMD16301.New(true)
|
|
if vo then
|
|
self.model:SetPetList(vo)
|
|
for k,v in pairs(vo.pet_list) do
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16304,v.pet_id)
|
|
end
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT)
|
|
self.model:Fire(PetConst.UPDATE_PET_TRAINING_VIEW)--刷新宠物主界面
|
|
|
|
if self.model.need_update_collect_item then
|
|
self.model:Fire(PetConst.UPDATE_COLLECT_ITEM,self.model.need_update_collect_item)--刷新图鉴item
|
|
self.model.need_update_collect_item = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
-- ################# 宠物喂养 #################
|
|
-- protocol=16302
|
|
-- {
|
|
-- c2s{
|
|
-- pet_id :int32 //宠物Id
|
|
-- feed_good_id :int32 //喂养材料Id
|
|
-- good_num :int16 //材料数量
|
|
-- }
|
|
-- s2c{
|
|
-- pet_id :int32 //宠物Id
|
|
-- pet_lv :int16 //宠物培养等级
|
|
-- now_exp :int32 //宠物当前经验值
|
|
-- pet_power :int64 //宠物战力
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16302( )
|
|
local vo = SCMD16302.New(true)
|
|
if vo then
|
|
lua_soundM:PlayEffect(self, "success",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
self.model:SetPetLvAfterFeed(vo)
|
|
local new_data = self.model:GetPetListById(vo.pet_id)
|
|
local new_cfg = self.model:GetPetCfg(new_data.pet_id, new_data.pet_star)
|
|
self.model:Fire(PetConst.UPDATE_FEED_PANEL, new_data, new_cfg)--刷新升级面板
|
|
self.model:Fire(PetConst.UPDATE_PET_FIGHT, vo.pet_power)--刷新战力显示
|
|
self.model:Fire(PetConst.PET_FEED,vo)--刷新战力显示
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Feed)
|
|
end
|
|
end
|
|
|
|
-- ################# 宠物激活进化 #################
|
|
-- protocol=16303
|
|
-- {
|
|
-- c2s{
|
|
-- pet_id :int32 //宠物Id
|
|
-- action_type :int8 //操作类型 1,激活 2,进化
|
|
-- }
|
|
-- s2c{
|
|
-- action_type :int8 //操作类型 1,激活 2,进化
|
|
-- pet_id :int32 //宠物Id
|
|
-- pet_star :int8 //宠物星级
|
|
-- pet_power :int64 //宠物战力
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16303( )
|
|
local vo = SCMD16303.New(true)
|
|
if vo then
|
|
lua_soundM:PlayEffect(self, "success",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
if vo.action_type == 1 then--如果是激活操作,需要重新请求16301数据刷新宠物列表
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16301)
|
|
self.model:ActivePet(vo)--先在petlist中创建出这个宠物的位置,具体信息还是需要等16301返回
|
|
self.model.need_update_collect_item = vo.pet_id
|
|
-- self.model:Fire(PetConst.UPDATE_COLLECT_ITEM,vo.pet_id)--刷新图鉴item
|
|
--自动上阵宠物
|
|
local recent_support_slot = self.model:GetRecentSupportSlot()
|
|
if recent_support_slot and recent_support_slot ~= 0 then
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT, 16308, vo.pet_id, recent_support_slot)
|
|
end
|
|
-- --激活的宠物设置跟随(上阵一号位就是设置为跟随主战)
|
|
-- self.model:Fire(PetConst.REQUEST_CCMD_EVENT, 16308, vo.pet_id, 1)
|
|
|
|
--激活宠物则激活生活技能,加个事件通知
|
|
self.model:AdvicePetLifeSkillActived(vo.pet_id)
|
|
|
|
elseif vo.action_type == 2 then
|
|
self.model:SetPetDataAfterUpStar(vo)
|
|
self.model:Fire(PetConst.PET_EVOLVE, vo.pet_id)--宠物进化
|
|
self.model:Fire(PetConst.UPDATE_PET_FIGHT, vo.pet_power)--刷新战力显示(激活操作直接走16301协议重新刷新整个界面)
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Awake)--升星需要刷新觉醒红点
|
|
end
|
|
self.model:Fire(PetConst.OPEN_PET_EVOLVE_SUCCESS, vo.pet_id, vo.action_type)--打开进化成功界面
|
|
end
|
|
end
|
|
|
|
-- ############### 宠物技能和宝石栏 #################
|
|
-- protocol=16304
|
|
-- {
|
|
-- c2s{
|
|
-- pet_id :int32 //宠物Id
|
|
-- }
|
|
-- s2c{
|
|
-- pet_id :int32 //宠物Id
|
|
-- skill_list:array{
|
|
-- skill_slot_id :int8 //技能槽位Id
|
|
-- talent_type :int8 //天赋类型 0,生活技能 1,普攻技能 2,宠物普通技能
|
|
-- talent_id :int32 //天赋Id(技能Id)
|
|
-- }
|
|
-- diamond_list:array{
|
|
-- diamond_slot :int8 //宝石槽位Id
|
|
-- diamond_id :int32 //宝石Id(物品类型)
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16304( )
|
|
local vo = SCMD16304.New(true)
|
|
if vo then
|
|
self.model:SetPetSkillData(vo)
|
|
self.model:SetPetDiamondData(vo)
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Diamond)--刷新宝石的红点
|
|
|
|
self.model:Fire(PetConst.UPDATE_PET_DIAMOND_EFFECT,vo.pet_id)
|
|
end
|
|
end
|
|
|
|
-- ############### 宠物技能宝石镶嵌 #################
|
|
-- protocol=16305
|
|
-- {
|
|
-- c2s{
|
|
-- pet_id :int32 //宠物Id
|
|
-- diamond_slot :int8 //技能石槽位Id
|
|
-- diamond_id :int32 //技能石Id(物品类型)
|
|
-- goods_id :int64 //物品Id
|
|
-- }
|
|
-- s2c{
|
|
-- pet_id :int32 //宠物Id
|
|
-- diamond_slot :int8 //技能石槽位Id
|
|
-- diamond_id :int32 //技能石Id(物品类型)
|
|
-- goods_id :int64 //上槽的物品Id
|
|
-- pet_power :int64 //宠物战力
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16305( )
|
|
local vo = SCMD16305.New(true)
|
|
if vo then
|
|
lua_soundM:PlayEffect(self, "success",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
self.model:SetPetDiamondDataAfterPut(vo)
|
|
self.model:Fire(PetConst.UPDATE_PET_DIAMOND_CON,vo.pet_id,vo.diamond_slot)--刷新宝石栏
|
|
self.model:Fire(PetConst.UPDATE_PET_FIGHT,vo.pet_power)--刷新战力
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Diamond)--刷新宝石的红点
|
|
|
|
self.model:Fire(PetConst.UPDATE_PET_DIAMOND_EFFECT,vo.pet_id)
|
|
end
|
|
end
|
|
|
|
-- ################# 宠物跟随 ###################
|
|
-- protocol=16306
|
|
-- {
|
|
-- c2s{
|
|
-- pet_id :int32 //宠物Id
|
|
-- }
|
|
-- s2c{
|
|
-- role_id :int64 //玩家角色Id
|
|
-- pet_id :int32 //宠物Id
|
|
-- pet_star :int8 //宠物星级
|
|
-- is_follow :int8 //跟随状态
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16306( )
|
|
local vo = SCMD16306.New(true)
|
|
if vo then
|
|
if vo.role_id == RoleManager.Instance:GetMainRoleId() then
|
|
self.model:SetPetFollow(vo)
|
|
end
|
|
self.model:Fire(PetConst.UPDATE_SCENE_PET_MODEL,vo)
|
|
end
|
|
end
|
|
|
|
function PetController:TestFollow1(vo)
|
|
data = {
|
|
role_id = RoleManager.Instance.mainRoleInfo.role_id,
|
|
pet_id = vo.pet_id,
|
|
is_follow = 1,
|
|
pet_star = vo.pet_star,
|
|
}
|
|
self.model:Fire(PetConst.UPDATE_SCENE_PET_MODEL,data)
|
|
end
|
|
|
|
function PetController:TestFollow2( )
|
|
vo = {
|
|
role_id = RoleManager.Instance.mainRoleInfo.role_id,
|
|
pet_id = 101,
|
|
is_follow = 1,
|
|
pet_star = 5,
|
|
}
|
|
self.model:Fire(PetConst.UPDATE_SCENE_PET_MODEL,vo)
|
|
end
|
|
|
|
-- ############### 宠物助战信息 ################
|
|
-- protocol=16307
|
|
-- {
|
|
-- c2s{}
|
|
-- s2c{
|
|
-- pet_sum_star :int16 //宠物总星级
|
|
-- pet_list:array{
|
|
-- support_slot :int8 //声援槽位Id
|
|
-- pet_id :int32 //宠物Id
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16307( )
|
|
local vo = SCMD16307.New(true)
|
|
if vo then
|
|
self.model:SetPetSupportData(vo)
|
|
end
|
|
end
|
|
|
|
-- ################# 宠物上阵(助战) ##################
|
|
-- protocol=16308
|
|
-- {
|
|
-- c2s{
|
|
-- pet_id :int32 //宠物Id
|
|
-- support_slot :int8 //声援槽位Id
|
|
-- }
|
|
-- s2c{
|
|
-- pet_id :int32 //宠物Id
|
|
-- support_slot :int8 //声援槽位Id
|
|
-- old_pet_id :int32 //槽位上原有的宠物,没有则为0
|
|
-- old_support_slot :int8 //宠物原来的槽位,没有则为0
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16308( )
|
|
local vo = SCMD16308.New(true)
|
|
if vo then
|
|
self.model:PresentPet(vo)
|
|
self.model:Fire(PetConst.UPDATE_SUPPORT_ITEM,vo.support_slot,vo.old_support_slot)--刷新当前槽位的声援item状态
|
|
self.model:Fire(PetConst.UPDATE_SUPPORT_ITEM,vo.old_support_slot)--刷新另一个槽位的声援item状态
|
|
self.model:Fire(PetConst.REFRESH_PET_SUPPORT_FIGHT)--刷新声援界面的战力
|
|
end
|
|
end
|
|
|
|
-- ############### 全服宠物昨日人气榜信息 #################
|
|
function PetController:Handle16309( )
|
|
local vo = SCMD16309.New(true)
|
|
-- print("==WQ==:PetController [start:570] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:PetController [end]")
|
|
if vo then
|
|
self.model:SetPetSupportRankData(vo)
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16310)--打开昨日榜界面请求完榜单后请求领奖状态,之后再刷新界面
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16313)--打开投票点赞界面请求完榜单后先请求点赞投票记录
|
|
end
|
|
end
|
|
|
|
-- ############### 昨日人气榜奖励领取信息 #################
|
|
function PetController:Handle16310( )
|
|
local vo = SCMD16310.New(true)
|
|
--print("==WQ==:SCMD16310 [start:586] vo:", vo)
|
|
--PrintTable(vo)
|
|
--print("==WQ==:PetController [end]")
|
|
self.model:SetPetRankRewardData(vo)
|
|
self.model:Fire(PetConst.UPDATE_PET_SUPPORT_RANK_VIEW)
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Reward)
|
|
end
|
|
|
|
-- ############### 获取分享宠物信息 #################
|
|
-- protocol=16311
|
|
-- {
|
|
-- c2s{
|
|
-- role_id :int64 //玩家Id
|
|
-- pet_id :int32 //宠物Id
|
|
-- }
|
|
-- s2c{
|
|
-- pet_id :int32 //宠物Id
|
|
-- pet_star :int8 //宠物星级
|
|
-- pet_lv :int16 //宠物培养等级
|
|
-- attr_list:array{
|
|
-- attr_id :int8 //属性Id
|
|
-- attr_value :int32 //属性值
|
|
-- }
|
|
-- pet_power :int64 //宠物战力
|
|
-- picture:rec_picture //玩家头像
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16311( )
|
|
local vo = SCMD16311.New(true)
|
|
self.model:Fire(PetConst.OPEN_PET_SHARE_VIEW,vo)
|
|
end
|
|
|
|
-- ############### 全服宠物人气榜信息 #################(废弃)
|
|
function PetController:Handle16312( )
|
|
local vo = SCMD16312.New(true)
|
|
self.model:SetPetVoteData(vo)
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16313)
|
|
end
|
|
|
|
-- ############### 今日宠物投票信息 #################
|
|
function PetController:Handle16313( )
|
|
local vo = SCMD16313.New(true)
|
|
--print("==WQ==:SCMD16313 [start:659] vo:", vo)
|
|
--PrintTable(vo)
|
|
--print("==WQ==:PetController [end]")
|
|
self.model:SetPetMyVoteData(vo)
|
|
self.model:Fire(PetConst.UPDATE_VOTE_VIEW)
|
|
self.model:Fire(PetConst.UPDATE_LEFT_VOTE_TIMES)
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Vote)
|
|
end
|
|
|
|
-- ############### 宠物投票 #################
|
|
function PetController:Handle16314( )
|
|
local vo = SCMD16314.New(true)
|
|
self.model:SetPetMyVoteData(vo)
|
|
-- self.model:Fire(PetConst.UPDATE_VOTE_ITEM_STATE)
|
|
-- self.model:Fire(PetConst.UPDATE_LEFT_VOTE_TIMES)
|
|
-- self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16312)--投票之后直接请求16312拿到最新数据刷新一遍界面
|
|
self.model:Fire(PetConst.REQUEST_CCMD_EVENT,16309)--投票之后直接请求16312拿到最新数据刷新一遍界面
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Vote)
|
|
end
|
|
|
|
-- ############### 领取昨日榜奖励 #################
|
|
-- protocol=16315
|
|
-- {
|
|
-- c2s{
|
|
-- pet_id :int32 //宠物Id
|
|
-- }
|
|
-- s2c{
|
|
-- res :int32 //错误码
|
|
-- pet_id :int32 //宠物Id
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16315( )
|
|
local vo = SCMD16315.New(true)
|
|
if vo.res == 1 then
|
|
self.model:UpdatePetRankRewardData(vo)
|
|
self.model:Fire(PetConst.UPDATE_RANK_REWARD_STATE)
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Reward)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
end
|
|
end
|
|
|
|
-- ############### 宠物觉醒 #################
|
|
-- protocol=16316
|
|
-- {
|
|
-- c2s{
|
|
-- pet_id :int32 //宠物Id
|
|
-- }
|
|
-- s2c{
|
|
-- res :int32 //错误码
|
|
-- pet_id :int32 //宠物Id
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16316( )
|
|
local vo = SCMD16316.New(true)
|
|
if vo.res == 1 then
|
|
self.model:UpdatePetAwakeState(vo)
|
|
self.model:Fire(PetConst.PET_AWAKE_SUCCESS)
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT,PetConst.RED_DOT_TYPE.Awake)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
end
|
|
end
|
|
|
|
-- ############### 推送助战宠物出战 #################
|
|
-- protocol=16317
|
|
-- {
|
|
-- s2c{
|
|
-- role_id :int64 //玩家Id
|
|
-- pet_id :int32 //宠物Id
|
|
-- pet_star :int16 //宠物星级
|
|
-- is_top :int8 //是否助战宠物
|
|
-- skill_id :int32 //技能Id
|
|
-- }
|
|
-- }
|
|
function PetController:Handle16317( )
|
|
local vo = SCMD16317.New(true)
|
|
if vo.role_id == RoleManager.Instance.mainRoleInfo.role_id then return end
|
|
vo.is_follow = 1
|
|
vo.is_help_pet = true
|
|
self.model:Fire(PetConst.UPDATE_SCENE_PET_MODEL,vo)
|
|
end
|
|
|
|
|
|
function PetController:Handle16318( )
|
|
local vo = SCMD16318.New(true)
|
|
if vo.res == 2 then
|
|
self.model:Fire(PetConst.UPDATE_RED_DOT, PetConst.RED_DOT_TYPE.DiamondCompose)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|