From ff3e540bb725cccaff39d0582b53a2070ad47436 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 12 一月 2023 17:08:27 +0800 Subject: [PATCH] 9762 【BT8】【后端】藏宝阁(删除激活古宝技能字段) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 1414 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,414 insertions(+), 0 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index 69dec41..4a1280f 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py @@ -3987,6 +3987,242 @@ #------------------------------------------------------ +# C0 21 跨服排位仙官申请回应 #tagCGChampionshipOfficialApplyReply + +class tagCGChampionshipOfficialApplyReply(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MainOfficialID", c_ushort), #界主官职ID + ("OfficialID", c_ushort), #申请官职ID + ("PlayerID", c_int), #申请的玩家ID + ("IsOK", c_ubyte), #是否同意;1-是;0-否 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC0 + self.SubCmd = 0x21 + 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 = 0x21 + self.MainOfficialID = 0 + self.OfficialID = 0 + self.PlayerID = 0 + self.IsOK = 0 + return + + def GetLength(self): + return sizeof(tagCGChampionshipOfficialApplyReply) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C0 21 跨服排位仙官申请回应 //tagCGChampionshipOfficialApplyReply: + Cmd:%s, + SubCmd:%s, + MainOfficialID:%d, + OfficialID:%d, + PlayerID:%d, + IsOK:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MainOfficialID, + self.OfficialID, + self.PlayerID, + self.IsOK + ) + return DumpString + + +m_NAtagCGChampionshipOfficialApplyReply=tagCGChampionshipOfficialApplyReply() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialApplyReply.Cmd,m_NAtagCGChampionshipOfficialApplyReply.SubCmd))] = m_NAtagCGChampionshipOfficialApplyReply + + +#------------------------------------------------------ +# C0 23 跨服排位仙官挑战记录查询 #tagCGChampionshipOfficialChallengeQuery + +class tagCGChampionshipOfficialChallengeQuery(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MainOfficialID", c_ushort), #界主官职ID + ("OfficialID", c_ushort), #查询官职ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC0 + self.SubCmd = 0x23 + 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 = 0x23 + self.MainOfficialID = 0 + self.OfficialID = 0 + return + + def GetLength(self): + return sizeof(tagCGChampionshipOfficialChallengeQuery) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C0 23 跨服排位仙官挑战记录查询 //tagCGChampionshipOfficialChallengeQuery: + Cmd:%s, + SubCmd:%s, + MainOfficialID:%d, + OfficialID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MainOfficialID, + self.OfficialID + ) + return DumpString + + +m_NAtagCGChampionshipOfficialChallengeQuery=tagCGChampionshipOfficialChallengeQuery() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialChallengeQuery.Cmd,m_NAtagCGChampionshipOfficialChallengeQuery.SubCmd))] = m_NAtagCGChampionshipOfficialChallengeQuery + + +#------------------------------------------------------ +# C0 24 跨服排位辞退下级仙官 #tagCGChampionshipOfficialKick + +class tagCGChampionshipOfficialKick(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MainOfficialID", c_ushort), #界主官职ID + ("OfficialID", c_ushort), #目标官职ID + ("PlayerID", c_int), #目标玩家ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC0 + self.SubCmd = 0x24 + 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 = 0x24 + self.MainOfficialID = 0 + self.OfficialID = 0 + self.PlayerID = 0 + return + + def GetLength(self): + return sizeof(tagCGChampionshipOfficialKick) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C0 24 跨服排位辞退下级仙官 //tagCGChampionshipOfficialKick: + Cmd:%s, + SubCmd:%s, + MainOfficialID:%d, + OfficialID:%d, + PlayerID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MainOfficialID, + self.OfficialID, + self.PlayerID + ) + return DumpString + + +m_NAtagCGChampionshipOfficialKick=tagCGChampionshipOfficialKick() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialKick.Cmd,m_NAtagCGChampionshipOfficialKick.SubCmd))] = m_NAtagCGChampionshipOfficialKick + + +#------------------------------------------------------ +# C0 25 跨服排位主动离任仙官 #tagCGChampionshipOfficialLeave + +class tagCGChampionshipOfficialLeave(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MainOfficialID", c_ushort), #界主官职ID + ("OfficialID", c_ushort), #离任官职ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC0 + self.SubCmd = 0x25 + 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 = 0x25 + self.MainOfficialID = 0 + self.OfficialID = 0 + return + + def GetLength(self): + return sizeof(tagCGChampionshipOfficialLeave) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C0 25 跨服排位主动离任仙官 //tagCGChampionshipOfficialLeave: + Cmd:%s, + SubCmd:%s, + MainOfficialID:%d, + OfficialID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MainOfficialID, + self.OfficialID + ) + return DumpString + + +m_NAtagCGChampionshipOfficialLeave=tagCGChampionshipOfficialLeave() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGChampionshipOfficialLeave.Cmd,m_NAtagCGChampionshipOfficialLeave.SubCmd))] = m_NAtagCGChampionshipOfficialLeave + + +#------------------------------------------------------ # C0 09 跨服战场召集场次修改 #tagCGCrossBattlefieldCallChange class tagCGCrossBattlefieldCallChange(Structure): @@ -4484,6 +4720,58 @@ m_NAtagCGViewCrossPlayerInfo=tagCGViewCrossPlayerInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGViewCrossPlayerInfo.Cmd,m_NAtagCGViewCrossPlayerInfo.SubCmd))] = m_NAtagCGViewCrossPlayerInfo + + +#------------------------------------------------------ +# A1 21 转职业 #tagCMChangeJob + +class tagCMChangeJob(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TagJob", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA1 + self.SubCmd = 0x21 + 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 = 0xA1 + self.SubCmd = 0x21 + self.TagJob = 0 + return + + def GetLength(self): + return sizeof(tagCMChangeJob) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A1 21 转职业 //tagCMChangeJob: + Cmd:%s, + SubCmd:%s, + TagJob:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TagJob + ) + return DumpString + + +m_NAtagCMChangeJob=tagCMChangeJob() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeJob.Cmd,m_NAtagCMChangeJob.SubCmd))] = m_NAtagCMChangeJob #------------------------------------------------------ @@ -6311,6 +6599,58 @@ m_NAtagCMSelectObj=tagCMSelectObj() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectObj.Cmd,m_NAtagCMSelectObj.SubCmd))] = m_NAtagCMSelectObj + + +#------------------------------------------------------ +# A2 35 选择境界难度层级 #tagCMSelectRealmDifficulty + +class tagCMSelectRealmDifficulty(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("RealmDifficulty", c_ubyte), #境界难度 = 100 + 所选境界等级,如境界13,则发113 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA2 + self.SubCmd = 0x35 + 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 = 0x35 + self.RealmDifficulty = 0 + return + + def GetLength(self): + return sizeof(tagCMSelectRealmDifficulty) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A2 35 选择境界难度层级 //tagCMSelectRealmDifficulty: + Cmd:%s, + SubCmd:%s, + RealmDifficulty:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.RealmDifficulty + ) + return DumpString + + +m_NAtagCMSelectRealmDifficulty=tagCMSelectRealmDifficulty() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSelectRealmDifficulty.Cmd,m_NAtagCMSelectRealmDifficulty.SubCmd))] = m_NAtagCMSelectRealmDifficulty #------------------------------------------------------ @@ -9634,6 +9974,54 @@ #------------------------------------------------------ +# A5 46 购买通天令 #tagCMBuyTongTianLing + +class tagCMBuyTongTianLing(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x46 + 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 = 0x46 + return + + def GetLength(self): + return sizeof(tagCMBuyTongTianLing) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 46 购买通天令 //tagCMBuyTongTianLing: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMBuyTongTianLing=tagCMBuyTongTianLing() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBuyTongTianLing.Cmd,m_NAtagCMBuyTongTianLing.SubCmd))] = m_NAtagCMBuyTongTianLing + + +#------------------------------------------------------ #A5 3B 请求领取补偿#tagCMRequestCompensation class tagCMRequestCompensation(Structure): @@ -10668,6 +11056,58 @@ #------------------------------------------------------ +# A5 45 兑换通天令等级经验积分点 #tagCMExchangeTongTianLVPoint + +class tagCMExchangeTongTianLVPoint(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ExchangePoint", c_int), # 兑换点数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x45 + 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 = 0x45 + self.ExchangePoint = 0 + return + + def GetLength(self): + return sizeof(tagCMExchangeTongTianLVPoint) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 45 兑换通天令等级经验积分点 //tagCMExchangeTongTianLVPoint: + Cmd:%s, + SubCmd:%s, + ExchangePoint:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ExchangePoint + ) + return DumpString + + +m_NAtagCMExchangeTongTianLVPoint=tagCMExchangeTongTianLVPoint() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMExchangeTongTianLVPoint.Cmd,m_NAtagCMExchangeTongTianLVPoint.SubCmd))] = m_NAtagCMExchangeTongTianLVPoint + + +#------------------------------------------------------ # A5 32 法器升级 #tagCMFaQiLVUp class tagCMFaQiLVUp(Structure): @@ -11106,6 +11546,114 @@ #------------------------------------------------------ +# A5 44 通天令领取等级奖励 #tagCMGetTongTianLVAward + +class tagCMGetTongTianLVAward(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TTLV", c_ubyte), # 领取对应等级奖励,发255为一键领取所有等级奖励,包含仙品奖励 + ("IsXian", c_ubyte), # 是否领取仙品奖励,仅指定等级奖励有效 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x44 + 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 = 0x44 + self.TTLV = 0 + self.IsXian = 0 + return + + def GetLength(self): + return sizeof(tagCMGetTongTianLVAward) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 44 通天令领取等级奖励 //tagCMGetTongTianLVAward: + Cmd:%s, + SubCmd:%s, + TTLV:%d, + IsXian:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TTLV, + self.IsXian + ) + return DumpString + + +m_NAtagCMGetTongTianLVAward=tagCMGetTongTianLVAward() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianLVAward.Cmd,m_NAtagCMGetTongTianLVAward.SubCmd))] = m_NAtagCMGetTongTianLVAward + + +#------------------------------------------------------ +# A5 43 通天令领取任务奖励 #tagCMGetTongTianTaskAward + +class tagCMGetTongTianTaskAward(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TaskID", c_ubyte), # 任务ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x43 + 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 = 0x43 + self.TaskID = 0 + return + + def GetLength(self): + return sizeof(tagCMGetTongTianTaskAward) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 43 通天令领取任务奖励 //tagCMGetTongTianTaskAward: + Cmd:%s, + SubCmd:%s, + TaskID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TaskID + ) + return DumpString + + +m_NAtagCMGetTongTianTaskAward=tagCMGetTongTianTaskAward() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTongTianTaskAward.Cmd,m_NAtagCMGetTongTianTaskAward.SubCmd))] = m_NAtagCMGetTongTianTaskAward + + +#------------------------------------------------------ # A5 56 神兵激活 #tagCMGodWeaponActivate class tagCMGodWeaponActivate(Structure): @@ -11507,6 +12055,110 @@ m_NAtagCMHorseUp=tagCMHorseUp() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseUp.Cmd,m_NAtagCMHorseUp.SubCmd))] = m_NAtagCMHorseUp + + +#------------------------------------------------------ +# A5 34 炼体突破 #tagCMLianTiLVUp + +class tagCMLianTiLVUp(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x34 + 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 = 0x34 + return + + def GetLength(self): + return sizeof(tagCMLianTiLVUp) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 34 炼体突破 //tagCMLianTiLVUp: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMLianTiLVUp=tagCMLianTiLVUp() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLianTiLVUp.Cmd,m_NAtagCMLianTiLVUp.SubCmd))] = m_NAtagCMLianTiLVUp + + +#------------------------------------------------------ +# A5 33 炼体提升 #tagCMLianTiUp + +class tagCMLianTiUp(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("UseItemCnt", c_int), #消耗材料个数 + ("IsAutoBuy", c_ubyte), #是否自动购买 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x33 + 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 = 0x33 + self.UseItemCnt = 0 + self.IsAutoBuy = 0 + return + + def GetLength(self): + return sizeof(tagCMLianTiUp) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 33 炼体提升 //tagCMLianTiUp: + Cmd:%s, + SubCmd:%s, + UseItemCnt:%d, + IsAutoBuy:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.UseItemCnt, + self.IsAutoBuy + ) + return DumpString + + +m_NAtagCMLianTiUp=tagCMLianTiUp() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMLianTiUp.Cmd,m_NAtagCMLianTiUp.SubCmd))] = m_NAtagCMLianTiUp #------------------------------------------------------ @@ -14259,6 +14911,241 @@ #------------------------------------------------------ +# AA 20 天帝礼包选择物品 #tagCMActGodGiftChooseItem + +class tagCMActGodGiftChooseItemInfo(Structure): + ItemLibType = 0 #(BYTE ItemLibType)//物品库类型 + Count = 0 #(BYTE Count)//选择个数 + ItemNumList = list() #(vector<BYTE> ItemNumList)//选择物品编号列表 + data = None + + def __init__(self): + self.Clear() + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + self.ItemLibType,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + value,_pos=CommFunc.ReadBYTE(_lpData,_pos) + self.ItemNumList.append(value) + return _pos + + def Clear(self): + self.ItemLibType = 0 + self.Count = 0 + self.ItemNumList = list() + return + + def GetLength(self): + length = 0 + length += 1 + length += 1 + length += 1 * self.Count + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteBYTE(data, self.ItemLibType) + data = CommFunc.WriteBYTE(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteBYTE(data, self.ItemNumList[i]) + return data + + def OutputString(self): + DumpString = ''' + ItemLibType:%d, + Count:%d, + ItemNumList:%s + '''\ + %( + self.ItemLibType, + self.Count, + "..." + ) + return DumpString + + +class tagCMActGodGiftChooseItem(Structure): + Head = tagHead() + ActNum = 0 #(BYTE ActNum)//活动编号 + ChooseLibCount = 0 #(BYTE ChooseLibCount)//选择库个数 + ChooseItemList = list() #(vector<tagCMActGodGiftChooseItemInfo> ChooseItemList)//选择库物品信息列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xAA + self.Head.SubCmd = 0x20 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ChooseLibCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.ChooseLibCount): + temChooseItemList = tagCMActGodGiftChooseItemInfo() + _pos = temChooseItemList.ReadData(_lpData, _pos) + self.ChooseItemList.append(temChooseItemList) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xAA + self.Head.SubCmd = 0x20 + self.ActNum = 0 + self.ChooseLibCount = 0 + self.ChooseItemList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 1 + for i in range(self.ChooseLibCount): + length += self.ChooseItemList[i].GetLength() + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.ActNum) + data = CommFunc.WriteBYTE(data, self.ChooseLibCount) + for i in range(self.ChooseLibCount): + data = CommFunc.WriteString(data, self.ChooseItemList[i].GetLength(), self.ChooseItemList[i].GetBuffer()) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + ActNum:%d, + ChooseLibCount:%d, + ChooseItemList:%s + '''\ + %( + self.Head.OutputString(), + self.ActNum, + self.ChooseLibCount, + "..." + ) + return DumpString + + +m_NAtagCMActGodGiftChooseItem=tagCMActGodGiftChooseItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftChooseItem.Head.Cmd,m_NAtagCMActGodGiftChooseItem.Head.SubCmd))] = m_NAtagCMActGodGiftChooseItem + + +#------------------------------------------------------ +# AA 21 天帝礼包抽奖 #tagCMActGodGiftlottery + +class tagCMActGodGiftlottery(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ActNum", c_ubyte), #活动编号 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + self.SubCmd = 0x21 + 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 = 0x21 + self.ActNum = 0 + return + + def GetLength(self): + return sizeof(tagCMActGodGiftlottery) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 21 天帝礼包抽奖 //tagCMActGodGiftlottery: + Cmd:%s, + SubCmd:%s, + ActNum:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ActNum + ) + return DumpString + + +m_NAtagCMActGodGiftlottery=tagCMActGodGiftlottery() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftlottery.Cmd,m_NAtagCMActGodGiftlottery.SubCmd))] = m_NAtagCMActGodGiftlottery + + +#------------------------------------------------------ +# AA 22 天帝礼包重置 #tagCMActGodGiftReset + +class tagCMActGodGiftReset(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ActNum", c_ubyte), #活动编号 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + self.SubCmd = 0x22 + 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 = 0x22 + self.ActNum = 0 + return + + def GetLength(self): + return sizeof(tagCMActGodGiftReset) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 22 天帝礼包重置 //tagCMActGodGiftReset: + Cmd:%s, + SubCmd:%s, + ActNum:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ActNum + ) + return DumpString + + +m_NAtagCMActGodGiftReset=tagCMActGodGiftReset() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGodGiftReset.Cmd,m_NAtagCMActGodGiftReset.SubCmd))] = m_NAtagCMActGodGiftReset + + +#------------------------------------------------------ # AA 12 选择转盘活动物品 #tagCMActTurntableChooseItem class tagCMActTurntableChooseItem(Structure): @@ -16948,6 +17835,162 @@ #------------------------------------------------------ +# B2 16 古宝激活 #tagCMGubaoActivate + +class tagCMGubaoActivate(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("GubaoID", c_ushort), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB2 + self.SubCmd = 0x16 + 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 = 0x16 + self.GubaoID = 0 + return + + def GetLength(self): + return sizeof(tagCMGubaoActivate) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 16 古宝激活 //tagCMGubaoActivate: + Cmd:%s, + SubCmd:%s, + GubaoID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.GubaoID + ) + return DumpString + + +m_NAtagCMGubaoActivate=tagCMGubaoActivate() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoActivate.Cmd,m_NAtagCMGubaoActivate.SubCmd))] = m_NAtagCMGubaoActivate + + +#------------------------------------------------------ +# B2 18 古宝升级 #tagCMGubaoLVUp + +class tagCMGubaoLVUp(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("GubaoID", c_ushort), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB2 + self.SubCmd = 0x18 + 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 = 0x18 + self.GubaoID = 0 + return + + def GetLength(self): + return sizeof(tagCMGubaoLVUp) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 18 古宝升级 //tagCMGubaoLVUp: + Cmd:%s, + SubCmd:%s, + GubaoID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.GubaoID + ) + return DumpString + + +m_NAtagCMGubaoLVUp=tagCMGubaoLVUp() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoLVUp.Cmd,m_NAtagCMGubaoLVUp.SubCmd))] = m_NAtagCMGubaoLVUp + + +#------------------------------------------------------ +# B2 17 古宝升星 #tagCMGubaoStarUp + +class tagCMGubaoStarUp(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("GubaoID", c_ushort), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB2 + self.SubCmd = 0x17 + 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 = 0x17 + self.GubaoID = 0 + return + + def GetLength(self): + return sizeof(tagCMGubaoStarUp) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 17 古宝升星 //tagCMGubaoStarUp: + Cmd:%s, + SubCmd:%s, + GubaoID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.GubaoID + ) + return DumpString + + +m_NAtagCMGubaoStarUp=tagCMGubaoStarUp() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGubaoStarUp.Cmd,m_NAtagCMGubaoStarUp.SubCmd))] = m_NAtagCMGubaoStarUp + + +#------------------------------------------------------ # B2 07 重置加点 #tagCMResetAttrPoint class tagCMResetAttrPoint(Structure): @@ -16993,6 +18036,125 @@ m_NAtagCMResetAttrPoint=tagCMResetAttrPoint() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMResetAttrPoint.Cmd,m_NAtagCMResetAttrPoint.SubCmd))] = m_NAtagCMResetAttrPoint + + +#------------------------------------------------------ +# B2 19 神通升级 #tagCMShentongLVUp + +class tagCMShentongLVUp(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ShentongID", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB2 + self.SubCmd = 0x19 + 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 = 0x19 + self.ShentongID = 0 + return + + def GetLength(self): + return sizeof(tagCMShentongLVUp) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B2 19 神通升级 //tagCMShentongLVUp: + Cmd:%s, + SubCmd:%s, + ShentongID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ShentongID + ) + return DumpString + + +m_NAtagCMShentongLVUp=tagCMShentongLVUp() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMShentongLVUp.Cmd,m_NAtagCMShentongLVUp.SubCmd))] = m_NAtagCMShentongLVUp + + +#------------------------------------------------------ +# B2 20 神通技能设置 #tagCMShentongSkillSet + +class tagCMShentongSkillSet(Structure): + Head = tagHead() + Count = 0 #(BYTE Count) + SkillIDList = list() #(vector<DWORD> SkillIDList) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB2 + self.Head.SubCmd = 0x20 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.Count): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.SkillIDList.append(value) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB2 + self.Head.SubCmd = 0x20 + self.Count = 0 + self.SkillIDList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 4 * self.Count + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.Count) + for i in range(self.Count): + data = CommFunc.WriteDWORD(data, self.SkillIDList[i]) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + SkillIDList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "..." + ) + return DumpString + + +m_NAtagCMShentongSkillSet=tagCMShentongSkillSet() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMShentongSkillSet.Head.Cmd,m_NAtagCMShentongSkillSet.Head.SubCmd))] = m_NAtagCMShentongSkillSet #------------------------------------------------------ @@ -19121,6 +20283,258 @@ #------------------------------------------------------ +# C1 22 跨服排位竞猜 #tagCMChampionshipGuess + +class tagCMChampionshipGuess(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ZoneID", c_ubyte), #排位数据分区ID + ("GuessType", c_ubyte), #竞猜类型 8-8强;4-4强排位 + ("PlayerID", c_int), #目标玩家ID + ("GuessCount", c_ubyte), #投注/追加份数 + ("GuessRank", c_ubyte), # 竞猜名次,没有名次的竞猜默认0;1-代表第一名 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC1 + self.SubCmd = 0x22 + 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 = 0xC1 + self.SubCmd = 0x22 + self.ZoneID = 0 + self.GuessType = 0 + self.PlayerID = 0 + self.GuessCount = 0 + self.GuessRank = 0 + return + + def GetLength(self): + return sizeof(tagCMChampionshipGuess) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C1 22 跨服排位竞猜 //tagCMChampionshipGuess: + Cmd:%s, + SubCmd:%s, + ZoneID:%d, + GuessType:%d, + PlayerID:%d, + GuessCount:%d, + GuessRank:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ZoneID, + self.GuessType, + self.PlayerID, + self.GuessCount, + self.GuessRank + ) + return DumpString + + +m_NAtagCMChampionshipGuess=tagCMChampionshipGuess() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipGuess.Cmd,m_NAtagCMChampionshipGuess.SubCmd))] = m_NAtagCMChampionshipGuess + + +#------------------------------------------------------ +# C1 20 跨服排位仙官申请 #tagCMChampionshipOfficialApply + +class tagCMChampionshipOfficialApply(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ZoneID", c_ubyte), #仙官数据分区ID + ("MainOfficialID", c_ushort), #界主官职ID + ("OfficialID", c_ushort), #申请官职ID + ("Cancel", c_ubyte), #是否取消申请,默认0-申请;1-取消申请 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC1 + self.SubCmd = 0x20 + 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 = 0xC1 + self.SubCmd = 0x20 + self.ZoneID = 0 + self.MainOfficialID = 0 + self.OfficialID = 0 + self.Cancel = 0 + return + + def GetLength(self): + return sizeof(tagCMChampionshipOfficialApply) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C1 20 跨服排位仙官申请 //tagCMChampionshipOfficialApply: + Cmd:%s, + SubCmd:%s, + ZoneID:%d, + MainOfficialID:%d, + OfficialID:%d, + Cancel:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ZoneID, + self.MainOfficialID, + self.OfficialID, + self.Cancel + ) + return DumpString + + +m_NAtagCMChampionshipOfficialApply=tagCMChampionshipOfficialApply() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipOfficialApply.Cmd,m_NAtagCMChampionshipOfficialApply.SubCmd))] = m_NAtagCMChampionshipOfficialApply + + +#------------------------------------------------------ +# C1 21 跨服排位仙官挑战 #tagCMChampionshipOfficialChallenge + +class tagCMChampionshipOfficialChallenge(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ZoneID", c_ubyte), #仙官数据分区ID + ("MainOfficialID", c_ushort), #界主官职ID + ("OfficialID", c_ushort), #挑战的目标官职ID + ("PlayerID", c_int), #挑战时的目标玩家ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC1 + self.SubCmd = 0x21 + 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 = 0xC1 + self.SubCmd = 0x21 + self.ZoneID = 0 + self.MainOfficialID = 0 + self.OfficialID = 0 + self.PlayerID = 0 + return + + def GetLength(self): + return sizeof(tagCMChampionshipOfficialChallenge) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C1 21 跨服排位仙官挑战 //tagCMChampionshipOfficialChallenge: + Cmd:%s, + SubCmd:%s, + ZoneID:%d, + MainOfficialID:%d, + OfficialID:%d, + PlayerID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ZoneID, + self.MainOfficialID, + self.OfficialID, + self.PlayerID + ) + return DumpString + + +m_NAtagCMChampionshipOfficialChallenge=tagCMChampionshipOfficialChallenge() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipOfficialChallenge.Cmd,m_NAtagCMChampionshipOfficialChallenge.SubCmd))] = m_NAtagCMChampionshipOfficialChallenge + + +#------------------------------------------------------ +# C1 23 跨服排位膜拜 #tagCMChampionshipWorship + +class tagCMChampionshipWorship(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ZoneID", c_ubyte), #仙官数据分区ID + ("PlayerID", c_int), #目标玩家ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC1 + self.SubCmd = 0x23 + 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 = 0xC1 + self.SubCmd = 0x23 + self.ZoneID = 0 + self.PlayerID = 0 + return + + def GetLength(self): + return sizeof(tagCMChampionshipWorship) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C1 23 跨服排位膜拜 //tagCMChampionshipWorship: + Cmd:%s, + SubCmd:%s, + ZoneID:%d, + PlayerID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ZoneID, + self.PlayerID + ) + return DumpString + + +m_NAtagCMChampionshipWorship=tagCMChampionshipWorship() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChampionshipWorship.Cmd,m_NAtagCMChampionshipWorship.SubCmd))] = m_NAtagCMChampionshipWorship + + +#------------------------------------------------------ # C1 09 跨服战场购买开启场次 #tagCMCrossBattlefieldBuyOpen class tagCMCrossBattlefieldBuyOpen(Structure): -- Gitblit v1.8.0