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