From 94ca00f866c8c947240cfbfaa399a88bdd05f62b Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 01 二月 2021 14:47:01 +0800 Subject: [PATCH] 8716 【主干】【后端】【BT2】H.活动-节日祈愿(增加节日游历); --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 1149 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 1,127 insertions(+), 22 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index 81617d5..1ee8a8d 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py @@ -1304,6 +1304,54 @@ #------------------------------------------------------ +# A9 A8 查看竞技场对战记录 #tagCGQueryArenaBattleRecord + +class tagCGQueryArenaBattleRecord(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA9 + self.SubCmd = 0xA8 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA9 + self.SubCmd = 0xA8 + return + + def GetLength(self): + return sizeof(tagCGQueryArenaBattleRecord) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A9 A8 查看竞技场对战记录 //tagCGQueryArenaBattleRecord: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCGQueryArenaBattleRecord=tagCGQueryArenaBattleRecord() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryArenaBattleRecord.Cmd,m_NAtagCGQueryArenaBattleRecord.SubCmd))] = m_NAtagCGQueryArenaBattleRecord + + +#------------------------------------------------------ # A9 04 查询boss信息 #tagCGQueryBossInfo class tagCGQueryBossInfo(Structure): @@ -1960,6 +2008,115 @@ #------------------------------------------------------ +# B0 13 取消协助Boss #tagCGCancelAssistBoss + +class tagCGCancelAssistBoss(Structure): + Head = tagHead() + AssistGUID = "" #(char AssistGUID[40])//协助GUID + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x13 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x13 + self.AssistGUID = "" + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 40 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteString(data, 40, self.AssistGUID) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + AssistGUID:%s + '''\ + %( + self.Head.OutputString(), + self.AssistGUID + ) + return DumpString + + +m_NAtagCGCancelAssistBoss=tagCGCancelAssistBoss() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGCancelAssistBoss.Head.Cmd,m_NAtagCGCancelAssistBoss.Head.SubCmd))] = m_NAtagCGCancelAssistBoss + + +#------------------------------------------------------ +# B0 15 接收协助感谢礼物 #tagCGGetAssistThanksGift + +class tagCGGetAssistThanksGift(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("IsPreview", c_ubyte), #是否预览,非预览即确认领取,无额外奖励确认时也需要回复领取包代表已读 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x15 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB0 + self.SubCmd = 0x15 + self.IsPreview = 0 + return + + def GetLength(self): + return sizeof(tagCGGetAssistThanksGift) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 15 接收协助感谢礼物 //tagCGGetAssistThanksGift: + Cmd:%s, + SubCmd:%s, + IsPreview:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.IsPreview + ) + return DumpString + + +m_NAtagCGGetAssistThanksGift=tagCGGetAssistThanksGift() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGGetAssistThanksGift.Cmd,m_NAtagCGGetAssistThanksGift.SubCmd))] = m_NAtagCGGetAssistThanksGift + + +#------------------------------------------------------ #B0 25 请求家族悬赏任务完成情况 #tagQueryFamilyArrestOverState class tagQueryFamilyArrestOverState(Structure): @@ -2005,6 +2162,119 @@ m_NAtagQueryFamilyArrestOverState=tagQueryFamilyArrestOverState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagQueryFamilyArrestOverState.Cmd,m_NAtagQueryFamilyArrestOverState.SubCmd))] = m_NAtagQueryFamilyArrestOverState + + +#------------------------------------------------------ +# B0 12 开始协助Boss #tagCGStartAssistBoss + +class tagCGStartAssistBoss(Structure): + Head = tagHead() + AssistGUID = "" #(char AssistGUID[40])//协助GUID + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x12 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.AssistGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB0 + self.Head.SubCmd = 0x12 + self.AssistGUID = "" + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 40 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteString(data, 40, self.AssistGUID) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + AssistGUID:%s + '''\ + %( + self.Head.OutputString(), + self.AssistGUID + ) + return DumpString + + +m_NAtagCGStartAssistBoss=tagCGStartAssistBoss() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGStartAssistBoss.Head.Cmd,m_NAtagCGStartAssistBoss.Head.SubCmd))] = m_NAtagCGStartAssistBoss + + +#------------------------------------------------------ +# B0 14 使用协助感谢礼盒 #tagCGUseAssistThanksGift + +class tagCGUseAssistThanksGift(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ItemID", c_int), + ("IsPreview", c_ubyte), #是否预览,非预览即确认使用 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x14 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB0 + self.SubCmd = 0x14 + self.ItemID = 0 + self.IsPreview = 0 + return + + def GetLength(self): + return sizeof(tagCGUseAssistThanksGift) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 14 使用协助感谢礼盒 //tagCGUseAssistThanksGift: + Cmd:%s, + SubCmd:%s, + ItemID:%d, + IsPreview:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ItemID, + self.IsPreview + ) + return DumpString + + +m_NAtagCGUseAssistThanksGift=tagCGUseAssistThanksGift() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGUseAssistThanksGift.Cmd,m_NAtagCGUseAssistThanksGift.SubCmd))] = m_NAtagCGUseAssistThanksGift #------------------------------------------------------ @@ -3345,6 +3615,58 @@ #------------------------------------------------------ +# B9 11 请求加入队伍 #tagCGRequestJoinTeam + +class tagCGRequestJoinTeam(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TeamID", c_int), # 目标队伍ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB9 + self.SubCmd = 0x11 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB9 + self.SubCmd = 0x11 + self.TeamID = 0 + return + + def GetLength(self): + return sizeof(tagCGRequestJoinTeam) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B9 11 请求加入队伍 //tagCGRequestJoinTeam: + Cmd:%s, + SubCmd:%s, + TeamID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TeamID + ) + return DumpString + + +m_NAtagCGRequestJoinTeam=tagCGRequestJoinTeam() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGRequestJoinTeam.Cmd,m_NAtagCGRequestJoinTeam.SubCmd))] = m_NAtagCGRequestJoinTeam + + +#------------------------------------------------------ # B9 09 队员进入副本准备选择 #tagCGTeamMemberPrepare class tagCGTeamMemberPrepare(Structure): @@ -3442,6 +3764,66 @@ m_NAtagCGForceQuitCrossState=tagCGForceQuitCrossState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGForceQuitCrossState.Cmd,m_NAtagCGForceQuitCrossState.SubCmd))] = m_NAtagCGForceQuitCrossState + + +#------------------------------------------------------ +# C0 04 查看跨服排行榜 #tagCGViewCrossBillboard + +class tagCGViewCrossBillboard(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("Type", c_ubyte), #榜单类型 + ("GroupValue1", c_ubyte), # 分组值1 + ("GroupValue2", c_ubyte), # 分组值2,与分组值1组合归为同组榜单数据 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC0 + self.SubCmd = 0x04 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xC0 + self.SubCmd = 0x04 + self.Type = 0 + self.GroupValue1 = 0 + self.GroupValue2 = 0 + return + + def GetLength(self): + return sizeof(tagCGViewCrossBillboard) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C0 04 查看跨服排行榜 //tagCGViewCrossBillboard: + Cmd:%s, + SubCmd:%s, + Type:%d, + GroupValue1:%d, + GroupValue2:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.Type, + self.GroupValue1, + self.GroupValue2 + ) + return DumpString + + +m_NAtagCGViewCrossBillboard=tagCGViewCrossBillboard() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGViewCrossBillboard.Cmd,m_NAtagCGViewCrossBillboard.SubCmd))] = m_NAtagCGViewCrossBillboard #------------------------------------------------------ @@ -5715,6 +6097,58 @@ #------------------------------------------------------ +# A2 07 接受任务 #tagCMTakeTask + +class tagCMTakeTask(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TaskID", c_int), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA2 + self.SubCmd = 0x07 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA2 + self.SubCmd = 0x07 + self.TaskID = 0 + return + + def GetLength(self): + return sizeof(tagCMTakeTask) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A2 07 接受任务 //tagCMTakeTask: + Cmd:%s, + SubCmd:%s, + TaskID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TaskID + ) + return DumpString + + +m_NAtagCMTakeTask=tagCMTakeTask() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTakeTask.Cmd,m_NAtagCMTakeTask.SubCmd))] = m_NAtagCMTakeTask + + +#------------------------------------------------------ #A2 12 查看玩家详细信息#tagCMViewPlayerInfo class tagCMViewPlayerInfo(Structure): @@ -6881,6 +7315,7 @@ ("SubCmd", c_ubyte), ("PackType", c_ubyte), #背包类型 ("ItemIndex", c_ubyte), #物品在背包中索引 + ("IsAll", c_ubyte), #是否处理所有过期物品 ] def __init__(self): @@ -6899,6 +7334,7 @@ self.SubCmd = 0x08 self.PackType = 0 self.ItemIndex = 0 + self.IsAll = 0 return def GetLength(self): @@ -6912,13 +7348,15 @@ Cmd:%s, SubCmd:%s, PackType:%d, - ItemIndex:%d + ItemIndex:%d, + IsAll:%d '''\ %( self.Cmd, self.SubCmd, self.PackType, - self.ItemIndex + self.ItemIndex, + self.IsAll ) return DumpString @@ -7683,7 +8121,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("HorseID", c_int), #坐骑ID + ("HorseID", c_int), #坐骑幻化ID ] def __init__(self): @@ -7725,6 +8163,62 @@ m_NAtagPlayerActivateHorse=tagPlayerActivateHorse() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerActivateHorse.Cmd,m_NAtagPlayerActivateHorse.SubCmd))] = m_NAtagPlayerActivateHorse + + +#------------------------------------------------------ +# A5 C7 激活大师强化等级 #tagCMActivateMasterPlusLV + +class tagCMActivateMasterPlusLV(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ClassLV", c_ubyte), # 所属装备阶 + ("MasterPlusLV", c_ushort), # 大师强化等级 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0xC7 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA5 + self.SubCmd = 0xC7 + self.ClassLV = 0 + self.MasterPlusLV = 0 + return + + def GetLength(self): + return sizeof(tagCMActivateMasterPlusLV) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 C7 激活大师强化等级 //tagCMActivateMasterPlusLV: + Cmd:%s, + SubCmd:%s, + ClassLV:%d, + MasterPlusLV:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ClassLV, + self.MasterPlusLV + ) + return DumpString + + +m_NAtagCMActivateMasterPlusLV=tagCMActivateMasterPlusLV() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivateMasterPlusLV.Cmd,m_NAtagCMActivateMasterPlusLV.SubCmd))] = m_NAtagCMActivateMasterPlusLV #------------------------------------------------------ @@ -9290,6 +9784,7 @@ CostEquipCnt = 0 #(BYTE CostEquipCnt)// 装备个数 CostEquipIndex = list() #(vector<WORD> CostEquipIndex)// 装备索引 CostEquipID = list() #(vector<DWORD> CostEquipID)// 装备物品ID + AutoBuy = 0 #(BYTE AutoBuy)// 自动购买 0-不自动购买,1-自动购买并升星,2-自动购买预览(未满概率时预览消耗时使用) data = None def __init__(self): @@ -9309,6 +9804,7 @@ for i in range(self.CostEquipCnt): value,_pos=CommFunc.ReadDWORD(_lpData,_pos) self.CostEquipID.append(value) + self.AutoBuy,_pos = CommFunc.ReadBYTE(_lpData, _pos) return _pos def Clear(self): @@ -9320,6 +9816,7 @@ self.CostEquipCnt = 0 self.CostEquipIndex = list() self.CostEquipID = list() + self.AutoBuy = 0 return def GetLength(self): @@ -9329,6 +9826,7 @@ length += 1 length += 2 * self.CostEquipCnt length += 4 * self.CostEquipCnt + length += 1 return length @@ -9341,6 +9839,7 @@ data = CommFunc.WriteWORD(data, self.CostEquipIndex[i]) for i in range(self.CostEquipCnt): data = CommFunc.WriteDWORD(data, self.CostEquipID[i]) + data = CommFunc.WriteBYTE(data, self.AutoBuy) return data def OutputString(self): @@ -9349,20 +9848,86 @@ EquipPackIndex:%d, CostEquipCnt:%d, CostEquipIndex:%s, - CostEquipID:%s + CostEquipID:%s, + AutoBuy:%d '''\ %( self.Head.OutputString(), self.EquipPackIndex, self.CostEquipCnt, "...", - "..." + "...", + self.AutoBuy ) return DumpString m_NAtagCMEquipPartStarUp=tagCMEquipPartStarUp() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartStarUp.Head.Cmd,m_NAtagCMEquipPartStarUp.Head.SubCmd))] = m_NAtagCMEquipPartStarUp + + +#------------------------------------------------------ +# A5 C6 装备部位星级套装激活 #tagCMEquipPartSuiteActivate + +class tagCMEquipPartSuiteActivate(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ClassLV", c_ubyte), # 所属装备阶 + ("SuiteID", c_ushort), # 套装ID + ("SuiteCount", c_ubyte), # 件数 + ("Star", c_ubyte), # 星数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0xC6 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xA5 + self.SubCmd = 0xC6 + self.ClassLV = 0 + self.SuiteID = 0 + self.SuiteCount = 0 + self.Star = 0 + return + + def GetLength(self): + return sizeof(tagCMEquipPartSuiteActivate) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 C6 装备部位星级套装激活 //tagCMEquipPartSuiteActivate: + Cmd:%s, + SubCmd:%s, + ClassLV:%d, + SuiteID:%d, + SuiteCount:%d, + Star:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ClassLV, + self.SuiteID, + self.SuiteCount, + self.Star + ) + return DumpString + + +m_NAtagCMEquipPartSuiteActivate=tagCMEquipPartSuiteActivate() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipPartSuiteActivate.Cmd,m_NAtagCMEquipPartSuiteActivate.SubCmd))] = m_NAtagCMEquipPartSuiteActivate #------------------------------------------------------ @@ -9752,6 +10317,7 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("SuccID", c_int), #成就ID + ("IsPassport", c_ubyte), #是否通行证奖励 ] def __init__(self): @@ -9769,6 +10335,7 @@ self.Cmd = 0xA5 self.SubCmd = 0x42 self.SuccID = 0 + self.IsPassport = 0 return def GetLength(self): @@ -9781,12 +10348,14 @@ DumpString = '''// A5 42 领取成就奖励 //tagMCGetSuccessAward: Cmd:%s, SubCmd:%s, - SuccID:%d + SuccID:%d, + IsPassport:%d '''\ %( self.Cmd, self.SubCmd, - self.SuccID + self.SuccID, + self.IsPassport ) return DumpString @@ -10095,8 +10664,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("HorseID", c_int), #坐骑ID - ("UseItemCnt", c_ubyte), #消耗材料个数 + ("UseItemCnt", c_ushort), #消耗材料个数 ("IsAutoBuy", c_ubyte), #是否自动购买 ] @@ -10114,7 +10682,6 @@ def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x27 - self.HorseID = 0 self.UseItemCnt = 0 self.IsAutoBuy = 0 return @@ -10129,14 +10696,12 @@ DumpString = '''// A5 27 坐骑提升 //tagCMHorseUp: Cmd:%s, SubCmd:%s, - HorseID:%d, UseItemCnt:%d, IsAutoBuy:%d '''\ %( self.Cmd, self.SubCmd, - self.HorseID, self.UseItemCnt, self.IsAutoBuy ) @@ -10307,7 +10872,8 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("Index", c_int), #选择索引 + ("ChooseType", c_ubyte), # 1-按等阶,2-按幻化 + ("LVID", c_ubyte), # 阶等级或幻化ID ] def __init__(self): @@ -10324,7 +10890,8 @@ def Clear(self): self.Cmd = 0xA5 self.SubCmd = 0x02 - self.Index = 0 + self.ChooseType = 0 + self.LVID = 0 return def GetLength(self): @@ -10337,12 +10904,14 @@ DumpString = '''//A5 02 坐骑选择 //tagPlayerChooseHorse: Cmd:%s, SubCmd:%s, - Index:%d + ChooseType:%d, + LVID:%d '''\ %( self.Cmd, self.SubCmd, - self.Index + self.ChooseType, + self.LVID ) return DumpString @@ -12637,6 +13206,62 @@ #------------------------------------------------------ +# AA 09 集字活动兑换 #tagCMActCollectWordsExchange + +class tagCMActCollectWordsExchange(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ActNum", c_ubyte), #活动编号,1 或 2,相互独立的活动,可同时开启 + ("ExchangeNum", c_ubyte), #兑换编号 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + self.SubCmd = 0x09 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xAA + self.SubCmd = 0x09 + self.ActNum = 0 + self.ExchangeNum = 0 + return + + def GetLength(self): + return sizeof(tagCMActCollectWordsExchange) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 09 集字活动兑换 //tagCMActCollectWordsExchange: + Cmd:%s, + SubCmd:%s, + ActNum:%d, + ExchangeNum:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ActNum, + self.ExchangeNum + ) + return DumpString + + +m_NAtagCMActCollectWordsExchange=tagCMActCollectWordsExchange() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActCollectWordsExchange.Cmd,m_NAtagCMActCollectWordsExchange.SubCmd))] = m_NAtagCMActCollectWordsExchange + + +#------------------------------------------------------ # AA 07 许愿池活动刷新奖池 #tagCMActWishingRefresh class tagCMActWishingRefresh(Structure): @@ -12750,6 +13375,114 @@ m_NAtagCMActWishing=tagCMActWishing() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActWishing.Cmd,m_NAtagCMActWishing.SubCmd))] = m_NAtagCMActWishing + + +#------------------------------------------------------ +# AA 10 节日祝福瓶选择奖励物品 #tagCMFeastWishBottleChooseItem + +class tagCMFeastWishBottleChooseItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("BottleNum", c_ubyte), #瓶子编号 + ("RecordIndex", c_ubyte), #物品索引,用于选择及记录是否已选择 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + self.SubCmd = 0x10 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xAA + self.SubCmd = 0x10 + self.BottleNum = 0 + self.RecordIndex = 0 + return + + def GetLength(self): + return sizeof(tagCMFeastWishBottleChooseItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 10 节日祝福瓶选择奖励物品 //tagCMFeastWishBottleChooseItem: + Cmd:%s, + SubCmd:%s, + BottleNum:%d, + RecordIndex:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.BottleNum, + self.RecordIndex + ) + return DumpString + + +m_NAtagCMFeastWishBottleChooseItem=tagCMFeastWishBottleChooseItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFeastWishBottleChooseItem.Cmd,m_NAtagCMFeastWishBottleChooseItem.SubCmd))] = m_NAtagCMFeastWishBottleChooseItem + + +#------------------------------------------------------ +# AA 11 节日祝福池祝福 #tagCMFeastWishPoolWish + +class tagCMFeastWishPoolWish(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("WishCount", c_ubyte), #祝福次数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + self.SubCmd = 0x11 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xAA + self.SubCmd = 0x11 + self.WishCount = 0 + return + + def GetLength(self): + return sizeof(tagCMFeastWishPoolWish) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 11 节日祝福池祝福 //tagCMFeastWishPoolWish: + Cmd:%s, + SubCmd:%s, + WishCount:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.WishCount + ) + return DumpString + + +m_NAtagCMFeastWishPoolWish=tagCMFeastWishPoolWish() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFeastWishPoolWish.Cmd,m_NAtagCMFeastWishPoolWish.SubCmd))] = m_NAtagCMFeastWishPoolWish #------------------------------------------------------ @@ -13657,6 +14390,154 @@ #------------------------------------------------------ +# B0 29 活跃放置明细查询 #tagCMActivityPlaceQuery + +class tagCMActivityPlaceQuery(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x29 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB0 + self.SubCmd = 0x29 + return + + def GetLength(self): + return sizeof(tagCMActivityPlaceQuery) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 29 活跃放置明细查询 //tagCMActivityPlaceQuery: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMActivityPlaceQuery=tagCMActivityPlaceQuery() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceQuery.Cmd,m_NAtagCMActivityPlaceQuery.SubCmd))] = m_NAtagCMActivityPlaceQuery + + +#------------------------------------------------------ +# B0 28 活跃放置快速完成 #tagCMActivityPlaceQuickFinish + +class tagCMActivityPlaceQuickFinish(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("FinishCount", c_ubyte), #完成次数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x28 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB0 + self.SubCmd = 0x28 + self.FinishCount = 0 + return + + def GetLength(self): + return sizeof(tagCMActivityPlaceQuickFinish) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 28 活跃放置快速完成 //tagCMActivityPlaceQuickFinish: + Cmd:%s, + SubCmd:%s, + FinishCount:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.FinishCount + ) + return DumpString + + +m_NAtagCMActivityPlaceQuickFinish=tagCMActivityPlaceQuickFinish() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceQuickFinish.Cmd,m_NAtagCMActivityPlaceQuickFinish.SubCmd))] = m_NAtagCMActivityPlaceQuickFinish + + +#------------------------------------------------------ +# B0 27 活跃放置启动 #tagCMActivityPlaceStart + +class tagCMActivityPlaceStart(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x27 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB0 + self.SubCmd = 0x27 + return + + def GetLength(self): + return sizeof(tagCMActivityPlaceStart) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 27 活跃放置启动 //tagCMActivityPlaceStart: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMActivityPlaceStart=tagCMActivityPlaceStart() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActivityPlaceStart.Cmd,m_NAtagCMActivityPlaceStart.SubCmd))] = m_NAtagCMActivityPlaceStart + + +#------------------------------------------------------ # B0 50 钓鱼收杆 #tagCMDoFish class tagCMDoFish(Structure): @@ -13810,6 +14691,118 @@ m_NAtagReceiveFamilyArrestAward=tagReceiveFamilyArrestAward() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagReceiveFamilyArrestAward.Cmd,m_NAtagReceiveFamilyArrestAward.SubCmd))] = m_NAtagReceiveFamilyArrestAward + + +#------------------------------------------------------ +# B0 10 请求协助Boss #tagCMRequestAssistBoss + +class tagCMRequestAssistBoss(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ObjID", c_int), + ("NPCID", c_int), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x10 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB0 + self.SubCmd = 0x10 + self.ObjID = 0 + self.NPCID = 0 + return + + def GetLength(self): + return sizeof(tagCMRequestAssistBoss) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 10 请求协助Boss //tagCMRequestAssistBoss: + Cmd:%s, + SubCmd:%s, + ObjID:%d, + NPCID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ObjID, + self.NPCID + ) + return DumpString + + +m_NAtagCMRequestAssistBoss=tagCMRequestAssistBoss() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistBoss.Cmd,m_NAtagCMRequestAssistBoss.SubCmd))] = m_NAtagCMRequestAssistBoss + + +#------------------------------------------------------ +# B0 11 请求协助组队副本 #tagCMRequestAssistTeamFB + +class tagCMRequestAssistTeamFB(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MapID", c_ushort), + ("LineID", c_ushort), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB0 + self.SubCmd = 0x11 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB0 + self.SubCmd = 0x11 + self.MapID = 0 + self.LineID = 0 + return + + def GetLength(self): + return sizeof(tagCMRequestAssistTeamFB) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B0 11 请求协助组队副本 //tagCMRequestAssistTeamFB: + Cmd:%s, + SubCmd:%s, + MapID:%d, + LineID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MapID, + self.LineID + ) + return DumpString + + +m_NAtagCMRequestAssistTeamFB=tagCMRequestAssistTeamFB() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRequestAssistTeamFB.Cmd,m_NAtagCMRequestAssistTeamFB.SubCmd))] = m_NAtagCMRequestAssistTeamFB #------------------------------------------------------ @@ -14395,6 +15388,114 @@ m_NAtagCMAddPoint=tagCMAddPoint() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMAddPoint.Head.Cmd,m_NAtagCMAddPoint.Head.SubCmd))] = m_NAtagCMAddPoint + + +#------------------------------------------------------ +# B2 10 竞技场挑战玩家 #tagCMArenaBattle + +class tagCMArenaBattle(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TagPlayerID", c_int), # 目标玩家ID或机器人ID + ("Result", c_ubyte), # 0-进入自定义场景发送通知后端;1-胜利(后端处理,暂时不需要发送此状态);2-失败(前端被对手击杀需要发送此状态) + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB2 + self.SubCmd = 0x10 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB2 + self.SubCmd = 0x10 + self.TagPlayerID = 0 + self.Result = 0 + return + + def GetLength(self): + return sizeof(tagCMArenaBattle) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 10 竞技场挑战玩家 //tagCMArenaBattle: + Cmd:%s, + SubCmd:%s, + TagPlayerID:%d, + Result:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TagPlayerID, + self.Result + ) + return DumpString + + +m_NAtagCMArenaBattle=tagCMArenaBattle() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMArenaBattle.Cmd,m_NAtagCMArenaBattle.SubCmd))] = m_NAtagCMArenaBattle + + +#------------------------------------------------------ +# B2 09 竞技场匹配玩家 #tagCMArenaMatch + +class tagCMArenaMatch(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("IsRefresh", c_ubyte), # 0-打开界面无匹配数据时时查询,1-强制刷新匹配列表 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB2 + self.SubCmd = 0x09 + return + + def ReadData(self, stringData, _pos=0, _len=0): + self.Clear() + memmove(addressof(self), stringData[_pos:], self.GetLength()) + return _pos + self.GetLength() + + def Clear(self): + self.Cmd = 0xB2 + self.SubCmd = 0x09 + self.IsRefresh = 0 + return + + def GetLength(self): + return sizeof(tagCMArenaMatch) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 09 竞技场匹配玩家 //tagCMArenaMatch: + Cmd:%s, + SubCmd:%s, + IsRefresh:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.IsRefresh + ) + return DumpString + + +m_NAtagCMArenaMatch=tagCMArenaMatch() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMArenaMatch.Cmd,m_NAtagCMArenaMatch.SubCmd))] = m_NAtagCMArenaMatch #------------------------------------------------------ @@ -15802,7 +16903,7 @@ class tagCMBiddingAuctionItem(Structure): Head = tagHead() ItemGUID = "" #(char ItemGUID[40]) - BiddingPrice = 0 #(WORD BiddingPrice)//竞价价格 + BiddingPrice = 0 #(DWORD BiddingPrice)//竞价价格 data = None def __init__(self): @@ -15815,7 +16916,7 @@ self.Clear() _pos = self.Head.ReadData(_lpData, _pos) self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) - self.BiddingPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.BiddingPrice,_pos = CommFunc.ReadDWORD(_lpData, _pos) return _pos def Clear(self): @@ -15831,7 +16932,7 @@ length = 0 length += self.Head.GetLength() length += 40 - length += 2 + length += 4 return length @@ -15839,7 +16940,7 @@ data = '' data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) data = CommFunc.WriteString(data, 40, self.ItemGUID) - data = CommFunc.WriteWORD(data, self.BiddingPrice) + data = CommFunc.WriteDWORD(data, self.BiddingPrice) return data def OutputString(self): @@ -16018,6 +17119,7 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("ItemIndex", c_ubyte), #物品在背包中索引 + ("SellCount", c_ushort), #上架个数,0代表全部上架 ] def __init__(self): @@ -16035,6 +17137,7 @@ self.Cmd = 0xB5 self.SubCmd = 0x13 self.ItemIndex = 0 + self.SellCount = 0 return def GetLength(self): @@ -16047,12 +17150,14 @@ DumpString = '''// B5 13 拍卖行上架拍品 //tagCMSellAuctionItem: Cmd:%s, SubCmd:%s, - ItemIndex:%d + ItemIndex:%d, + SellCount:%d '''\ %( self.Cmd, self.SubCmd, - self.ItemIndex + self.ItemIndex, + self.SellCount ) return DumpString -- Gitblit v1.8.0