diff --git a/Assets/ManagedResources/~Lua/Message/CommonProto_pb.lua b/Assets/ManagedResources/~Lua/Message/CommonProto_pb.lua index c99d0af868..85095a148b 100644 --- a/Assets/ManagedResources/~Lua/Message/CommonProto_pb.lua +++ b/Assets/ManagedResources/~Lua/Message/CommonProto_pb.lua @@ -657,6 +657,7 @@ HARDSTAGEPLAYERINFO_USERNAME_FIELD = protobuf.FieldDescriptor(); HARDSTAGEPLAYERINFO_HEADFRAME_FIELD = protobuf.FieldDescriptor(); HARDSTAGEPLAYERINFO_FIGHTDATA_FIELD = protobuf.FieldDescriptor(); HARDSTAGEPLAYERINFO_POWER_FIELD = protobuf.FieldDescriptor(); +HARDSTAGEPLAYERINFO_TYPE_FIELD = protobuf.FieldDescriptor(); HARDSTAGECHAPTERREWARD = protobuf.Descriptor(); HARDSTAGECHAPTERREWARD_ID_FIELD = protobuf.FieldDescriptor(); HARDSTAGECHAPTERREWARD_STATE_FIELD = protobuf.FieldDescriptor(); @@ -6910,11 +6911,21 @@ HARDSTAGEPLAYERINFO_POWER_FIELD.default_value = 0 HARDSTAGEPLAYERINFO_POWER_FIELD.type = 5 HARDSTAGEPLAYERINFO_POWER_FIELD.cpp_type = 1 +HARDSTAGEPLAYERINFO_TYPE_FIELD.name = "type" +HARDSTAGEPLAYERINFO_TYPE_FIELD.full_name = ".rpc.protocols.HardStagePlayerInfo.type" +HARDSTAGEPLAYERINFO_TYPE_FIELD.number = 8 +HARDSTAGEPLAYERINFO_TYPE_FIELD.index = 7 +HARDSTAGEPLAYERINFO_TYPE_FIELD.label = 1 +HARDSTAGEPLAYERINFO_TYPE_FIELD.has_default_value = false +HARDSTAGEPLAYERINFO_TYPE_FIELD.default_value = 0 +HARDSTAGEPLAYERINFO_TYPE_FIELD.type = 5 +HARDSTAGEPLAYERINFO_TYPE_FIELD.cpp_type = 1 + HARDSTAGEPLAYERINFO.name = "HardStagePlayerInfo" HARDSTAGEPLAYERINFO.full_name = ".rpc.protocols.HardStagePlayerInfo" HARDSTAGEPLAYERINFO.nested_types = {} HARDSTAGEPLAYERINFO.enum_types = {} -HARDSTAGEPLAYERINFO.fields = {HARDSTAGEPLAYERINFO_UID_FIELD, HARDSTAGEPLAYERINFO_LEVEL_FIELD, HARDSTAGEPLAYERINFO_HEAD_FIELD, HARDSTAGEPLAYERINFO_USERNAME_FIELD, HARDSTAGEPLAYERINFO_HEADFRAME_FIELD, HARDSTAGEPLAYERINFO_FIGHTDATA_FIELD, HARDSTAGEPLAYERINFO_POWER_FIELD} +HARDSTAGEPLAYERINFO.fields = {HARDSTAGEPLAYERINFO_UID_FIELD, HARDSTAGEPLAYERINFO_LEVEL_FIELD, HARDSTAGEPLAYERINFO_HEAD_FIELD, HARDSTAGEPLAYERINFO_USERNAME_FIELD, HARDSTAGEPLAYERINFO_HEADFRAME_FIELD, HARDSTAGEPLAYERINFO_FIGHTDATA_FIELD, HARDSTAGEPLAYERINFO_POWER_FIELD, HARDSTAGEPLAYERINFO_TYPE_FIELD} HARDSTAGEPLAYERINFO.is_extendable = false HARDSTAGEPLAYERINFO.extensions = {} HARDSTAGECHAPTERREWARD_ID_FIELD.name = "id" diff --git a/Assets/ManagedResources/~Lua/Message/PlayerInfoProto_pb.lua b/Assets/ManagedResources/~Lua/Message/PlayerInfoProto_pb.lua index 8cd87bf386..ddd892a0c7 100644 --- a/Assets/ManagedResources/~Lua/Message/PlayerInfoProto_pb.lua +++ b/Assets/ManagedResources/~Lua/Message/PlayerInfoProto_pb.lua @@ -520,8 +520,7 @@ GETHARDSTAGECHAPTERREWARD_REWRADID_FIELD = protobuf.FieldDescriptor(); GETHARDSTAGECHAPTERREWARDRESPONSE = protobuf.Descriptor(); GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD = protobuf.FieldDescriptor(); HARDSTAGEREPORTREQUSET = protobuf.Descriptor(); -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD = protobuf.FieldDescriptor(); -HARDSTAGEREPORTREQUSET_NODEID_FIELD = protobuf.FieldDescriptor(); +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD = protobuf.FieldDescriptor(); HARDSTAGEREPORTRESPONSE = protobuf.Descriptor(); HARDSTAGEREPORTRESPONSE_PLAYER_FIELD = protobuf.FieldDescriptor(); @@ -5190,9 +5189,9 @@ HARDSTAGEFIGHTRESPONSE_DROP_FIELD.name = "drop" HARDSTAGEFIGHTRESPONSE_DROP_FIELD.full_name = ".rpc.protocols.HardStageFightResponse.drop" HARDSTAGEFIGHTRESPONSE_DROP_FIELD.number = 2 HARDSTAGEFIGHTRESPONSE_DROP_FIELD.index = 1 -HARDSTAGEFIGHTRESPONSE_DROP_FIELD.label = 3 +HARDSTAGEFIGHTRESPONSE_DROP_FIELD.label = 1 HARDSTAGEFIGHTRESPONSE_DROP_FIELD.has_default_value = false -HARDSTAGEFIGHTRESPONSE_DROP_FIELD.default_value = {} +HARDSTAGEFIGHTRESPONSE_DROP_FIELD.default_value = nil HARDSTAGEFIGHTRESPONSE_DROP_FIELD.message_type = CommonProto_pb.DROP HARDSTAGEFIGHTRESPONSE_DROP_FIELD.type = 11 HARDSTAGEFIGHTRESPONSE_DROP_FIELD.cpp_type = 10 @@ -5245,9 +5244,9 @@ GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.name = "drop" GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.full_name = ".rpc.protocols.GetHardStageChapterRewardResponse.drop" GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.number = 1 GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.index = 0 -GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.label = 3 +GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.label = 1 GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.has_default_value = false -GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.default_value = {} +GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.default_value = nil GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.message_type = CommonProto_pb.DROP GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.type = 11 GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD.cpp_type = 10 @@ -5259,31 +5258,21 @@ GETHARDSTAGECHAPTERREWARDRESPONSE.enum_types = {} GETHARDSTAGECHAPTERREWARDRESPONSE.fields = {GETHARDSTAGECHAPTERREWARDRESPONSE_DROP_FIELD} GETHARDSTAGECHAPTERREWARDRESPONSE.is_extendable = false GETHARDSTAGECHAPTERREWARDRESPONSE.extensions = {} -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.name = "chapterId" -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.full_name = ".rpc.protocols.HardStageReportRequset.chapterId" -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.number = 1 -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.index = 0 -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.label = 1 -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.has_default_value = false -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.default_value = 0 -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.type = 5 -HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD.cpp_type = 1 - -HARDSTAGEREPORTREQUSET_NODEID_FIELD.name = "nodeId" -HARDSTAGEREPORTREQUSET_NODEID_FIELD.full_name = ".rpc.protocols.HardStageReportRequset.nodeId" -HARDSTAGEREPORTREQUSET_NODEID_FIELD.number = 2 -HARDSTAGEREPORTREQUSET_NODEID_FIELD.index = 1 -HARDSTAGEREPORTREQUSET_NODEID_FIELD.label = 1 -HARDSTAGEREPORTREQUSET_NODEID_FIELD.has_default_value = false -HARDSTAGEREPORTREQUSET_NODEID_FIELD.default_value = 0 -HARDSTAGEREPORTREQUSET_NODEID_FIELD.type = 5 -HARDSTAGEREPORTREQUSET_NODEID_FIELD.cpp_type = 1 +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.name = "hardStageId" +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.full_name = ".rpc.protocols.HardStageReportRequset.hardStageId" +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.number = 1 +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.index = 0 +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.label = 1 +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.has_default_value = false +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.default_value = 0 +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.type = 5 +HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD.cpp_type = 1 HARDSTAGEREPORTREQUSET.name = "HardStageReportRequset" HARDSTAGEREPORTREQUSET.full_name = ".rpc.protocols.HardStageReportRequset" HARDSTAGEREPORTREQUSET.nested_types = {} HARDSTAGEREPORTREQUSET.enum_types = {} -HARDSTAGEREPORTREQUSET.fields = {HARDSTAGEREPORTREQUSET_CHAPTERID_FIELD, HARDSTAGEREPORTREQUSET_NODEID_FIELD} +HARDSTAGEREPORTREQUSET.fields = {HARDSTAGEREPORTREQUSET_HARDSTAGEID_FIELD} HARDSTAGEREPORTREQUSET.is_extendable = false HARDSTAGEREPORTREQUSET.extensions = {} HARDSTAGEREPORTRESPONSE_PLAYER_FIELD.name = "player" diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua b/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua index ee8c8f8712..6257da6e77 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/BattleManager.lua @@ -363,6 +363,7 @@ function this.GetBattleServerData(msg, isFightPlayer) if not isFightPlayer then local monsterConfig = ConfigManager.GetConfigData(ConfigName.MonsterConfig, tonumber(data2.fightUnitList[j].unitId)) local position = tonumber(data2.fightUnitList[j].position) + LogYellow("position "..position) local star = tonumber(data2.fightUnitList[j].star) local skin=tonumber(data2.fightUnitList[j].skinId) skills = string.split(data2.fightUnitList[j].unitSkillIds, "#") diff --git a/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelManager.lua b/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelManager.lua index b3702d10b2..087c4fb39f 100644 --- a/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelManager.lua @@ -40,6 +40,7 @@ function this.Initialize() HardStageNode.config = curChapterAllLevel[j]--表 singleChapterData.node[HardStageNode.nodeId] = HardStageNode end + singleChapterData.reward = {} singleChapterData.curMaxStarNum = curMaxStarNum--章节总星数 allChapterData[config.Id] = singleChapterData end @@ -69,10 +70,12 @@ function this.UpdataChapterData(msg,_isShowChapterOpenPopup) this.SetCurChapterLevelId(HardStageNode.nodeId) singleHardStageChapter.node[HardStageNode.nodeId] = HardStageNode end - -- singleHardStageChapter.reward = {}--每章宝箱奖励 + singleHardStageChapter.reward = {}--每章宝箱奖励 for k = 1, #msg.chapter[i].reward do local HardStageChapterReward = {} HardStageChapterReward.id = msg.chapter[i].reward[k].id + LogYellow("msg.chapter[i].reward[k].id "..msg.chapter[i].reward[k].id) + LogYellow("msg.chapter[i].reward[k].state "..msg.chapter[i].reward[k].state) HardStageChapterReward.state = msg.chapter[i].reward[k].state--0.未领取1.已领取 HardStageChapterReward.config = HardStageReward[msg.chapter[i].reward[k].id]--表 table.insert(singleHardStageChapter.reward,HardStageChapterReward) @@ -121,7 +124,8 @@ function this.GetCurLevelStarState(starNum,index) end --请求回放 function this.HardStageReportRequset(_fightLevelData, callBack) - NetManager.HardStageReportRequset(_fightLevelData.config.Chapter, _fightLevelData.nodeId,function (msg)--FIGHT_LEVEL + LogYellow(" _fightLevelData.nodeId ".. _fightLevelData.nodeId) + NetManager.HardStageReportRequset( _fightLevelData.nodeId,function (msg)--FIGHT_LEVEL _fightLevelData.config.Chapter, if msg.player and #msg.player > 0 then UIManager.OpenPanel(UIName.FightLevelSingleLevelInfoPopup,FIGHTLEVEL_POPUP_TYPE.BackBattle,msg.player) else @@ -136,6 +140,7 @@ function this.FightLevelFightBattle(_fightLevelData, callBack) LogYellow("山河社稷图请求战斗 星级 ".._fightLevelData.nodeId) NetManager.HardStageFightRequest(_fightLevelData.nodeId, FormationTypeDef.FIGHT_LEVEL,function (msg)--FIGHT_LEVEL LogYellow("山河社稷图回复战斗 星级 "..msg.stars) + LogYellow("山河社稷图回复战斗 drop "..#msg.drop.itemlist) HardStageFightResponseMsg = msg curBattlefightLevelData = _fightLevelData if _fightLevelData.config.StageType == FIGHTLEVEL_STAGETYPE.MainLevel or _fightLevelData.config.StageType == FIGHTLEVEL_STAGETYPE.AssistantLevel then diff --git a/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelSingleChapterPanel.lua b/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelSingleChapterPanel.lua index dcc2d2162f..90831cbdac 100644 --- a/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelSingleChapterPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/FightLevel/FightLevelSingleChapterPanel.lua @@ -108,6 +108,7 @@ function this.SetSingleLevel(levelDatas) prb2:SetActive(true) Util.AddOnceClick(levelList[i], function() LogYellow("关卡类型 1 主 2 副奖励 3 副战斗 "..levelData.config.StageType) + -- if FightLevelManager.FightLevelFightBattle(levelData, function() end) @@ -139,9 +140,9 @@ function this.SetlevelBox(_rewardBoxDatas) for i, v in pairs(_rewardBoxDatas) do boxList[i]:SetActive(true) local missionConfigData = _rewardBoxDatas[i].config - boxList[i]:GetComponent("Image").sprite = Util.LoadSprite(GetResourcePath(missionConfigData.config.RewardIcon)) + boxList[i]:GetComponent("Image").sprite = Util.LoadSprite(GetResourcePath(missionConfigData.RewardIcon)) Util.GetGameObject(boxList[i], "num"):GetComponent("Text").text = missionConfigData.Star - Util.GetGameObject(boxList[i], "redPoint"):SetActive( _rewardBoxDatas[i].state == 0 and _rewardBoxDatas[i].stars > _rewardBoxDatas[i].config.Star) + Util.GetGameObject(boxList[i], "redPoint"):SetActive( _rewardBoxDatas[i].state == 0 and chapterData.stars > _rewardBoxDatas[i].config.Star) -- Util.GetGameObject(boxList[i], "UI_Effect_BaoXiang_KaiQi"):SetActive(v.state==SingleDailyMissionState.GetFinish) -- Util.GetGameObject(boxList[i], "UI_Effect_BaoXiang_KaiQi/MeiKaiQi"):SetActive(false) -- Util.GetGameObject(boxList[i], "UI_Effect_BaoXiang_KaiQi"):GetComponent("Animator").enabled = false @@ -149,15 +150,22 @@ function this.SetlevelBox(_rewardBoxDatas) -- Util.GetGameObject(boxList[i], "UI_Effect_BaoXiang_KeKaiQi"):SetActive(v.state==SingleDailyMissionState.Finish) Util.GetGameObject(boxList[i], "getFinish"):SetActive(false) Util.GetGameObject(boxList[i], "redPoint"):SetActive(false) - if missionConfigData.state == 0 then - Util.AddOnceClick(boxList[i], function() - FightLevelManager.GetHardStageChapterReward(chapterData.chapterId,missionConfigData.config.Id,function() - + LogYellow("missionConfigData.state ".._rewardBoxDatas[i].state.." chapterData.stars "..chapterData.stars.." missionConfigData.Star "..missionConfigData.Star) + if _rewardBoxDatas[i].state == 0 then + if chapterData.stars >= missionConfigData.Star then + Util.GetGameObject(boxList[i], "redPoint"):SetActive(true) + Util.AddOnceClick(boxList[i], function() + NetManager.GetHardStageChapterReward(chapterData.chapterId,missionConfigData.Id,function(msg) + --自己刷新一下宝箱数据 + UIManager.OpenPanel(UIName.RewardItemPopup,msg.drop, 1,function()--isBackBattle true时 为回放不走回调 + + end) + end) end) - end) - elseif missionConfigData.state == 0 and chapterData.stars >= missionConfigData.Star then - Util.GetGameObject(boxList[i], "redPoint"):SetActive(true) - elseif missionConfigData.state == 1 then + else + Util.GetGameObject(boxList[i], "redPoint"):SetActive(false) + end + elseif _rewardBoxDatas[i].state == 1 then Util.GetGameObject(boxList[i], "getFinish"):SetActive(true) end diff --git a/Assets/ManagedResources/~Lua/Modules/FightLevel/View/FightLevelInfoPopup_MainLevel.lua b/Assets/ManagedResources/~Lua/Modules/FightLevel/View/FightLevelInfoPopup_MainLevel.lua index a3b57cffb3..0f7aa1814c 100644 --- a/Assets/ManagedResources/~Lua/Modules/FightLevel/View/FightLevelInfoPopup_MainLevel.lua +++ b/Assets/ManagedResources/~Lua/Modules/FightLevel/View/FightLevelInfoPopup_MainLevel.lua @@ -43,7 +43,7 @@ function this:BindEvent() end) Util.AddClick(this.BackBattleBtn, function() FightLevelManager.HardStageReportRequset(fightLevelData, function() - UIManager.OpenPanel(UIName.FightLevelSingleLevelInfoPopup,FIGHTLEVEL_POPUP_TYPE.MainLevel,fightLevelData) + -- UIManager.OpenPanel(UIName.FightLevelSingleLevelInfoPopup,FIGHTLEVEL_POPUP_TYPE.MainLevel,fightLevelData) end) end) Util.AddClick(this.rewardBtn, function() diff --git a/Assets/ManagedResources/~Lua/Modules/FightLevel/View/FightLevelInfoPopup_MainLevelBackBattle.lua b/Assets/ManagedResources/~Lua/Modules/FightLevel/View/FightLevelInfoPopup_MainLevelBackBattle.lua index a07ad97008..718e5b94fe 100644 --- a/Assets/ManagedResources/~Lua/Modules/FightLevel/View/FightLevelInfoPopup_MainLevelBackBattle.lua +++ b/Assets/ManagedResources/~Lua/Modules/FightLevel/View/FightLevelInfoPopup_MainLevelBackBattle.lua @@ -8,6 +8,7 @@ local fun local data = {} local prbGoGrid = {} local backFun +this.playerScrollHead = {}--背景前三头像 function this:InitComponent(gameObject) this.titleText=Util.GetGameObject(gameObject,"TitleText"):GetComponent("Text") this.backBtn=Util.GetGameObject(gameObject,"BackBtn") @@ -44,9 +45,8 @@ function this:OnShow(_parent,...) prbGoGrid[i]:SetActive(false) end for i = 1, #data do - local data = {} local root = prbGoGrid[i] - this.SetInfo(root,data) + this.SetInfo(root,data[i],i) end end --设置头像 @@ -57,6 +57,7 @@ function this.SetInfo(root,data,index) if not this.playerScrollHead[root] then this.playerScrollHead[root]=CommonPool.CreateNode(POOL_ITEM_TYPE.PLAYER_HEAD,headObj) end + LogYellow("data.head "..data.head) this.playerScrollHead[root]:Reset() this.playerScrollHead[root]:SetHead(data.head) this.playerScrollHead[root]:SetFrame(data.headFrame) @@ -67,13 +68,14 @@ function this.SetInfo(root,data,index) Util.GetGameObject(root,"name"):GetComponent("Text").text = data.userName -- Util.GetGameObject(root,"warPower/Text"):GetComponent("Text").text = data.warPower - if index == 1 then + if data.type == 1 then Util.GetGameObject(root,"ClickBtn/tip"):GetComponent("Text").text = "首次三星通关" - else + elseif data.type == 2 then Util.GetGameObject(root,"ClickBtn/tip"):GetComponent("Text").text = "最低战力三星通关" end Util.AddOnceClick(Util.GetGameObject(root,"ClickBtn"), function() - UIManager.OpenPanel(UIName.BattlePanel, data.fightData, BATTLE_TYPE.BACK, function() + local _fightData = BattleManager.GetBattleServerData(data,0) + UIManager.OpenPanel(UIName.BattlePanel, _fightData, BATTLE_TYPE.BACK, function() end) end) @@ -82,6 +84,10 @@ function this:OnClose() end function this:OnDestroy() + for _, playerHead in ipairs(this.playerScrollHead) do + playerHead:Recycle() + end + this.playerScrollHead = {} end return this \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua b/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua index 66a2caffe7..47b64e430c 100644 --- a/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Net/NetManager.lua @@ -5022,10 +5022,10 @@ function NetManager.GetHardStageChapterReward(_chapterId,_rewradId,func) end) end --山河社稷图请求战斗回放 -function NetManager.HardStageReportRequset(_chapterId,_nodeId,func) +function NetManager.HardStageReportRequset(_nodeId,func) local data = PlayerInfoProto_pb.HardStageReportRequset() - data.chapterId = _chapterId; - data.nodeId = _nodeId; + -- data.chapterId = _chapterId; + data.hardStageId = _nodeId; local msg = data:SerializeToString() Network:SendMessageWithCallBack(MessageTypeProto_pb.HARD_STAGE_REPORT_REQUEST, MessageTypeProto_pb.HARD_STAGE_REPORT_RESPONSE, msg, function(buffer) local data = buffer:DataByte()