From cc1a5f172de9ac6b6741b64a49fbbf97a6dfebc5 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 26 二月 2024 11:48:08 +0800 Subject: [PATCH] 9802 9762 【BT9】【后端】藏宝阁修改(修复判断放入背包时是否直接转化为对应数值的物品报错) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py | 1220 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 1,158 insertions(+), 62 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py index adb01bd..122e1d4 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py @@ -706,58 +706,6 @@ #------------------------------------------------------ -# A4 05 开启家族boss副本 #tagCGOpenFamilyBossFB - -class tagCGOpenFamilyBossFB(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MapID", c_int), # 开启的副本地图ID - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA4 - self.SubCmd = 0x05 - 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 = 0xA4 - self.SubCmd = 0x05 - self.MapID = 0 - return - - def GetLength(self): - return sizeof(tagCGOpenFamilyBossFB) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A4 05 开启家族boss副本 //tagCGOpenFamilyBossFB: - Cmd:%s, - SubCmd:%s, - MapID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.MapID - ) - return DumpString - - -m_NAtagCGOpenFamilyBossFB=tagCGOpenFamilyBossFB() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGOpenFamilyBossFB.Cmd,m_NAtagCGOpenFamilyBossFB.SubCmd))] = m_NAtagCGOpenFamilyBossFB - - -#------------------------------------------------------ # A4 04 创建家族 #tagCGPyCreatFamily class tagCGPyCreatFamily(Structure): @@ -4720,6 +4668,196 @@ 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 + + +#------------------------------------------------------ +# A1 25 代币购买充值商品编号商品 #tagCMCoinBuyOrderInfo + +class tagCMCoinBuyOrderInfo(Structure): + Head = tagHead() + AppIDLen = 0 #(BYTE AppIDLen) + AppID = "" #(String AppID) + OrderInfoLen = 0 #(BYTE OrderInfoLen) + OrderInfo = "" #(String OrderInfo)//商品编号 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA1 + self.Head.SubCmd = 0x25 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.AppIDLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.AppID,_pos = CommFunc.ReadString(_lpData, _pos,self.AppIDLen) + self.OrderInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.OrderInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.OrderInfoLen) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA1 + self.Head.SubCmd = 0x25 + self.AppIDLen = 0 + self.AppID = "" + self.OrderInfoLen = 0 + self.OrderInfo = "" + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += len(self.AppID) + length += 1 + length += len(self.OrderInfo) + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.AppIDLen) + data = CommFunc.WriteString(data, self.AppIDLen, self.AppID) + data = CommFunc.WriteBYTE(data, self.OrderInfoLen) + data = CommFunc.WriteString(data, self.OrderInfoLen, self.OrderInfo) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + AppIDLen:%d, + AppID:%s, + OrderInfoLen:%d, + OrderInfo:%s + '''\ + %( + self.Head.OutputString(), + self.AppIDLen, + self.AppID, + self.OrderInfoLen, + self.OrderInfo + ) + return DumpString + + +m_NAtagCMCoinBuyOrderInfo=tagCMCoinBuyOrderInfo() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCoinBuyOrderInfo.Head.Cmd,m_NAtagCMCoinBuyOrderInfo.Head.SubCmd))] = m_NAtagCMCoinBuyOrderInfo + + +#------------------------------------------------------ +# A1 20 货币兑换 #tagCMMoneyExchange + +class tagCMMoneyExchange(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("SrcMoneyType", c_ubyte), # 源货币类型 + ("TagMoneyType", c_ubyte), # 目标货币类型 + ("ExchangeValue", c_int), # 兑换数量(消耗源货币的数量) + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA1 + 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 = 0xA1 + self.SubCmd = 0x20 + self.SrcMoneyType = 0 + self.TagMoneyType = 0 + self.ExchangeValue = 0 + return + + def GetLength(self): + return sizeof(tagCMMoneyExchange) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A1 20 货币兑换 //tagCMMoneyExchange: + Cmd:%s, + SubCmd:%s, + SrcMoneyType:%d, + TagMoneyType:%d, + ExchangeValue:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.SrcMoneyType, + self.TagMoneyType, + self.ExchangeValue + ) + return DumpString + + +m_NAtagCMMoneyExchange=tagCMMoneyExchange() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMoneyExchange.Cmd,m_NAtagCMMoneyExchange.SubCmd))] = m_NAtagCMMoneyExchange #------------------------------------------------------ @@ -11894,6 +12032,58 @@ #------------------------------------------------------ +# A5 35 坐骑升星 #tagCMHorseStarUp + +class tagCMHorseStarUp(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("HorseID", c_int), #坐骑ID,对应坐骑表ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + 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 = 0xA5 + self.SubCmd = 0x35 + self.HorseID = 0 + return + + def GetLength(self): + return sizeof(tagCMHorseStarUp) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 35 坐骑升星 //tagCMHorseStarUp: + Cmd:%s, + SubCmd:%s, + HorseID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.HorseID + ) + return DumpString + + +m_NAtagCMHorseStarUp=tagCMHorseStarUp() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMHorseStarUp.Cmd,m_NAtagCMHorseStarUp.SubCmd))] = m_NAtagCMHorseStarUp + + +#------------------------------------------------------ # A5 31 坐骑培养 #tagCMHorseTrain class tagCMHorseTrain(Structure): @@ -13365,6 +13555,58 @@ #------------------------------------------------------ +# A5 36 称号升星 #tagCMTitleStarUp + +class tagCMTitleStarUp(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("TitleID", c_int), #称号ID + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA5 + self.SubCmd = 0x36 + 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 = 0x36 + self.TitleID = 0 + return + + def GetLength(self): + return sizeof(tagCMTitleStarUp) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A5 36 称号升星 //tagCMTitleStarUp: + Cmd:%s, + SubCmd:%s, + TitleID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.TitleID + ) + return DumpString + + +m_NAtagCMTitleStarUp=tagCMTitleStarUp() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMTitleStarUp.Cmd,m_NAtagCMTitleStarUp.SubCmd))] = m_NAtagCMTitleStarUp + + +#------------------------------------------------------ # A5 11 试用首充武器 #tagCMTryFirstGoldItem class tagCMTryFirstGoldItem(Structure): @@ -13689,6 +13931,66 @@ #------------------------------------------------------ +# A6 15 传功操作 #tagCMChuangongOP + +class tagCMChuangongOP(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("OPType", c_ubyte), # 操作类型:1-邀请;2-回应;3-领奖; + ("PlayerID", c_int), # 目标玩家ID;回应时为邀请方玩家ID + ("OPData", c_ubyte), # 操作数据,可选:回应时为是否同意 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + 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 = 0xA6 + self.SubCmd = 0x15 + self.OPType = 0 + self.PlayerID = 0 + self.OPData = 0 + return + + def GetLength(self): + return sizeof(tagCMChuangongOP) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 15 传功操作 //tagCMChuangongOP: + Cmd:%s, + SubCmd:%s, + OPType:%d, + PlayerID:%d, + OPData:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.OPType, + self.PlayerID, + self.OPData + ) + return DumpString + + +m_NAtagCMChuangongOP=tagCMChuangongOP() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChuangongOP.Cmd,m_NAtagCMChuangongOP.SubCmd))] = m_NAtagCMChuangongOP + + +#------------------------------------------------------ # A6 11 家族改名 #tagCMRenameFamily class tagCMRenameFamily(Structure): @@ -13837,19 +14139,21 @@ #------------------------------------------------------ -# A6 05 家族捐献兽粮 #tagCMFamilyDonate +# A6 13 家族事务操作 #tagCMFamilyAffairOP -class tagCMFamilyDonate(Structure): +class tagCMFamilyAffairOP(Structure): _pack_ = 1 _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), + ("OPType", c_ubyte), # 操作类型:1-刷新事务;2-开始事务;3-领取事务奖励; + ("AffairID", c_ushort), # 事务ID,可选 ] def __init__(self): self.Clear() self.Cmd = 0xA6 - self.SubCmd = 0x05 + self.SubCmd = 0x13 return def ReadData(self, stringData, _pos=0, _len=0): @@ -13859,29 +14163,87 @@ def Clear(self): self.Cmd = 0xA6 - self.SubCmd = 0x05 + self.SubCmd = 0x13 + self.OPType = 0 + self.AffairID = 0 return def GetLength(self): - return sizeof(tagCMFamilyDonate) + return sizeof(tagCMFamilyAffairOP) def GetBuffer(self): return string_at(addressof(self), self.GetLength()) def OutputString(self): - DumpString = '''// A6 05 家族捐献兽粮 //tagCMFamilyDonate: + DumpString = '''// A6 13 家族事务操作 //tagCMFamilyAffairOP: Cmd:%s, - SubCmd:%s + SubCmd:%s, + OPType:%d, + AffairID:%d '''\ %( self.Cmd, - self.SubCmd + self.SubCmd, + self.OPType, + self.AffairID ) return DumpString -m_NAtagCMFamilyDonate=tagCMFamilyDonate() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyDonate.Cmd,m_NAtagCMFamilyDonate.SubCmd))] = m_NAtagCMFamilyDonate +m_NAtagCMFamilyAffairOP=tagCMFamilyAffairOP() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyAffairOP.Cmd,m_NAtagCMFamilyAffairOP.SubCmd))] = m_NAtagCMFamilyAffairOP + + +#------------------------------------------------------ +# A6 12 家族捐献货币 #tagCMFamilyMoneyDonate + +class tagCMFamilyMoneyDonate(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("MoneyType", c_ubyte), # 捐献货币类型 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + self.SubCmd = 0x12 + 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 = 0xA6 + self.SubCmd = 0x12 + self.MoneyType = 0 + return + + def GetLength(self): + return sizeof(tagCMFamilyMoneyDonate) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 12 家族捐献货币 //tagCMFamilyMoneyDonate: + Cmd:%s, + SubCmd:%s, + MoneyType:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.MoneyType + ) + return DumpString + + +m_NAtagCMFamilyMoneyDonate=tagCMFamilyMoneyDonate() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyMoneyDonate.Cmd,m_NAtagCMFamilyMoneyDonate.SubCmd))] = m_NAtagCMFamilyMoneyDonate #------------------------------------------------------ @@ -13994,6 +14356,66 @@ m_NAtagCMFamilyStoreExchange=tagCMFamilyStoreExchange() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyStoreExchange.Cmd,m_NAtagCMFamilyStoreExchange.SubCmd))] = m_NAtagCMFamilyStoreExchange + + +#------------------------------------------------------ +# A6 14 家族阵法升级 #tagCMFamilyZhenfaLVUP + +class tagCMFamilyZhenfaLVUP(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ZhenfaType", c_ubyte), # 阵法类型 + ("ItemID", c_int), # 消耗的物品ID + ("ItemCount", c_ushort), # 消耗个数,默认1 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA6 + 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 = 0xA6 + self.SubCmd = 0x14 + self.ZhenfaType = 0 + self.ItemID = 0 + self.ItemCount = 0 + return + + def GetLength(self): + return sizeof(tagCMFamilyZhenfaLVUP) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A6 14 家族阵法升级 //tagCMFamilyZhenfaLVUP: + Cmd:%s, + SubCmd:%s, + ZhenfaType:%d, + ItemID:%d, + ItemCount:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ZhenfaType, + self.ItemID, + self.ItemCount + ) + return DumpString + + +m_NAtagCMFamilyZhenfaLVUP=tagCMFamilyZhenfaLVUP() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFamilyZhenfaLVUP.Cmd,m_NAtagCMFamilyZhenfaLVUP.SubCmd))] = m_NAtagCMFamilyZhenfaLVUP #------------------------------------------------------ @@ -14354,6 +14776,58 @@ #------------------------------------------------------ +# A7 06 宠物升星 #tagCMPetStarUp + +class tagCMPetStarUp(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("PetItemIndex", c_ubyte), #宠物数据背包索引 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA7 + self.SubCmd = 0x06 + 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 = 0xA7 + self.SubCmd = 0x06 + self.PetItemIndex = 0 + return + + def GetLength(self): + return sizeof(tagCMPetStarUp) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A7 06 宠物升星 //tagCMPetStarUp: + Cmd:%s, + SubCmd:%s, + PetItemIndex:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.PetItemIndex + ) + return DumpString + + +m_NAtagCMPetStarUp=tagCMPetStarUp() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPetStarUp.Cmd,m_NAtagCMPetStarUp.SubCmd))] = m_NAtagCMPetStarUp + + +#------------------------------------------------------ # A7 05 宠物培养 #tagCMPetTrain class tagCMPetTrain(Structure): @@ -14666,6 +15140,118 @@ #------------------------------------------------------ +# AA 24 Boss历练领奖 #tagCMActBossTrialGetAward + +class tagCMActBossTrialGetAward(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ActNum", c_ubyte), #活动编号 + ("SubmitCount", c_ushort), #领取凭证个数对应奖励 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + 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 = 0xAA + self.SubCmd = 0x24 + self.ActNum = 0 + self.SubmitCount = 0 + return + + def GetLength(self): + return sizeof(tagCMActBossTrialGetAward) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 24 Boss历练领奖 //tagCMActBossTrialGetAward: + Cmd:%s, + SubCmd:%s, + ActNum:%d, + SubmitCount:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ActNum, + self.SubmitCount + ) + return DumpString + + +m_NAtagCMActBossTrialGetAward=tagCMActBossTrialGetAward() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActBossTrialGetAward.Cmd,m_NAtagCMActBossTrialGetAward.SubCmd))] = m_NAtagCMActBossTrialGetAward + + +#------------------------------------------------------ +# AA 23 Boss历练提交凭证 #tagCMActBossTrialSubmit + +class tagCMActBossTrialSubmit(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ActNum", c_ubyte), #活动编号 + ("SubmitCount", c_ushort), #提交凭证个数 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + 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 = 0xAA + self.SubCmd = 0x23 + self.ActNum = 0 + self.SubmitCount = 0 + return + + def GetLength(self): + return sizeof(tagCMActBossTrialSubmit) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 23 Boss历练提交凭证 //tagCMActBossTrialSubmit: + Cmd:%s, + SubCmd:%s, + ActNum:%d, + SubmitCount:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ActNum, + self.SubmitCount + ) + return DumpString + + +m_NAtagCMActBossTrialSubmit=tagCMActBossTrialSubmit() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActBossTrialSubmit.Cmd,m_NAtagCMActBossTrialSubmit.SubCmd))] = m_NAtagCMActBossTrialSubmit + + +#------------------------------------------------------ # AA 09 集字活动兑换 #tagCMActCollectWordsExchange class tagCMActCollectWordsExchange(Structure): @@ -14856,6 +15442,241 @@ m_NAtagCMActGarbageSorting=tagCMActGarbageSorting() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMActGarbageSorting.Head.Cmd,m_NAtagCMActGarbageSorting.Head.SubCmd))] = m_NAtagCMActGarbageSorting + + +#------------------------------------------------------ +# 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 #------------------------------------------------------ @@ -17548,6 +18369,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): @@ -17596,6 +18573,125 @@ #------------------------------------------------------ +# 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 + + +#------------------------------------------------------ #B2 01 脱机挂状态 # tagCMLoginState class tagCMLoginState(Structure): -- Gitblit v1.8.0