From 73dfbfa4721b3d21b687d6e68905f4236ed24d4f Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 25 二月 2019 14:10:15 +0800 Subject: [PATCH] 6250 【后端】【2.0】拍卖行开发单(封包) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py | 1331 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 1,216 insertions(+), 115 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py index 14cdda3..e15e640 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py @@ -2427,6 +2427,374 @@ #------------------------------------------------------ +# B5 16 拍卖行查询关注中的拍品 #tagCGQueryAttentionAuctionItem + +class tagCGQueryAttentionAuctionItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB5 + 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 = 0xB5 + self.SubCmd = 0x16 + return + + def GetLength(self): + return sizeof(tagCGQueryAttentionAuctionItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B5 16 拍卖行查询关注中的拍品 //tagCGQueryAttentionAuctionItem: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCGQueryAttentionAuctionItem=tagCGQueryAttentionAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAttentionAuctionItem.Cmd,m_NAtagCGQueryAttentionAuctionItem.SubCmd))] = m_NAtagCGQueryAttentionAuctionItem + + +#------------------------------------------------------ +# B5 10 拍卖行查询拍卖中的物品 #tagCGQueryAuctionItem + +class tagCGQueryAuctionItem(Structure): + Head = tagHead() + Job = 0 #(BYTE Job)//过滤职业,0为不限制 + ItemTypeCount = 0 #(BYTE ItemTypeCount) + ItemTypeList = list() #(vector<DWORD> ItemTypeList)//指定的物品类型 + ClassLV = 0 #(BYTE ClassLV)//过滤阶数,0为不限制 + SpecItemIDCount = 0 #(BYTE SpecItemIDCount)//指定物品ID个数 + SpecItemIDList = list() #(vector<DWORD> SpecItemIDList)//指定物品ID + FromNum = 0 #(WORD FromNum)//查询起始数 (从1开始) + QueryCount = 0 #(BYTE QueryCount)//查询个数,0为全部 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x10 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.ItemTypeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.ItemTypeCount): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.ItemTypeList.append(value) + self.ClassLV,_pos = CommFunc.ReadBYTE(_lpData, _pos) + self.SpecItemIDCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.SpecItemIDCount): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.SpecItemIDList.append(value) + self.FromNum,_pos = CommFunc.ReadWORD(_lpData, _pos) + self.QueryCount,_pos = CommFunc.ReadBYTE(_lpData, _pos) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x10 + self.Job = 0 + self.ItemTypeCount = 0 + self.ItemTypeList = list() + self.ClassLV = 0 + self.SpecItemIDCount = 0 + self.SpecItemIDList = list() + self.FromNum = 0 + self.QueryCount = 0 + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 1 + length += 4 * self.ItemTypeCount + length += 1 + length += 1 + length += 4 * self.SpecItemIDCount + length += 2 + length += 1 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteBYTE(data, self.Job) + data = CommFunc.WriteBYTE(data, self.ItemTypeCount) + for i in range(self.ItemTypeCount): + data = CommFunc.WriteDWORD(data, self.ItemTypeList[i]) + data = CommFunc.WriteBYTE(data, self.ClassLV) + data = CommFunc.WriteBYTE(data, self.SpecItemIDCount) + for i in range(self.SpecItemIDCount): + data = CommFunc.WriteDWORD(data, self.SpecItemIDList[i]) + data = CommFunc.WriteWORD(data, self.FromNum) + data = CommFunc.WriteBYTE(data, self.QueryCount) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Job:%d, + ItemTypeCount:%d, + ItemTypeList:%s, + ClassLV:%d, + SpecItemIDCount:%d, + SpecItemIDList:%s, + FromNum:%d, + QueryCount:%d + '''\ + %( + self.Head.OutputString(), + self.Job, + self.ItemTypeCount, + "...", + self.ClassLV, + self.SpecItemIDCount, + "...", + self.FromNum, + self.QueryCount + ) + return DumpString + + +m_NAtagCGQueryAuctionItem=tagCGQueryAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAuctionItem.Head.Cmd,m_NAtagCGQueryAuctionItem.Head.SubCmd))] = m_NAtagCGQueryAuctionItem + + +#------------------------------------------------------ +# B5 12 拍卖行查询拍卖记录 #tagCGQueryAuctionRecord + +class tagCGQueryAuctionRecord(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB5 + 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 = 0xB5 + self.SubCmd = 0x12 + return + + def GetLength(self): + return sizeof(tagCGQueryAuctionRecord) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B5 12 拍卖行查询拍卖记录 //tagCGQueryAuctionRecord: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCGQueryAuctionRecord=tagCGQueryAuctionRecord() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryAuctionRecord.Cmd,m_NAtagCGQueryAuctionRecord.SubCmd))] = m_NAtagCGQueryAuctionRecord + + +#------------------------------------------------------ +# B5 15 拍卖行查询仙盟拍卖中的拍品 #tagCGQueryFamilyAuctionItem + +class tagCGQueryFamilyAuctionItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB5 + 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 = 0xB5 + self.SubCmd = 0x15 + return + + def GetLength(self): + return sizeof(tagCGQueryFamilyAuctionItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B5 15 拍卖行查询仙盟拍卖中的拍品 //tagCGQueryFamilyAuctionItem: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCGQueryFamilyAuctionItem=tagCGQueryFamilyAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryFamilyAuctionItem.Cmd,m_NAtagCGQueryFamilyAuctionItem.SubCmd))] = m_NAtagCGQueryFamilyAuctionItem + + +#------------------------------------------------------ +# B5 11 拍卖行查询个人拍卖中的物品 #tagCGQueryPlayerAuctionItem + +class tagCGQueryPlayerAuctionItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB5 + 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 = 0xB5 + self.SubCmd = 0x11 + return + + def GetLength(self): + return sizeof(tagCGQueryPlayerAuctionItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B5 11 拍卖行查询个人拍卖中的物品 //tagCGQueryPlayerAuctionItem: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCGQueryPlayerAuctionItem=tagCGQueryPlayerAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryPlayerAuctionItem.Cmd,m_NAtagCGQueryPlayerAuctionItem.SubCmd))] = m_NAtagCGQueryPlayerAuctionItem + + +#------------------------------------------------------ +# B5 17 拍卖行查询定位目标拍品 #tagCGQueryTagAuctionItem + +class tagCGQueryTagAuctionItem(Structure): + Head = tagHead() + ItemGUID = "" #(char ItemGUID[40]) + ItemID = 0 #(DWORD ItemID) + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x17 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x17 + self.ItemGUID = "" + self.ItemID = 0 + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 40 + length += 4 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteString(data, 40, self.ItemGUID) + data = CommFunc.WriteDWORD(data, self.ItemID) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + ItemGUID:%s, + ItemID:%d + '''\ + %( + self.Head.OutputString(), + self.ItemGUID, + self.ItemID + ) + return DumpString + + +m_NAtagCGQueryTagAuctionItem=tagCGQueryTagAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGQueryTagAuctionItem.Head.Cmd,m_NAtagCGQueryTagAuctionItem.Head.SubCmd))] = m_NAtagCGQueryTagAuctionItem + + +#------------------------------------------------------ # B9 07 自动匹配队伍或玩家 #tagCGAutoMatchTeam class tagCGAutoMatchTeam(Structure): @@ -2983,6 +3351,54 @@ #------------------------------------------------------ +# C0 03 强制退出跨服状态 #tagCGForceQuitCrossState + +class tagCGForceQuitCrossState(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC0 + self.SubCmd = 0x03 + 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 = 0x03 + return + + def GetLength(self): + return sizeof(tagCGForceQuitCrossState) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C0 03 强制退出跨服状态 //tagCGForceQuitCrossState: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCGForceQuitCrossState=tagCGForceQuitCrossState() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCGForceQuitCrossState.Cmd,m_NAtagCGForceQuitCrossState.SubCmd))] = m_NAtagCGForceQuitCrossState + + +#------------------------------------------------------ # C0 01 查看跨服竞技场赛季排行榜 #tagCGViewCrossPKBillboard class tagCGViewCrossPKBillboard(Structure): @@ -3208,6 +3624,54 @@ m_NAtagCMPCInfo=tagCMPCInfo() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMPCInfo.Head.Cmd,m_NAtagCMPCInfo.Head.SubCmd))] = m_NAtagCMPCInfo + + +#------------------------------------------------------ +# A1 08 刷新主服角色信息 #tagCMRefreshMainServerRole + +class tagCMRefreshMainServerRole(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA1 + self.SubCmd = 0x08 + 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 = 0x08 + return + + def GetLength(self): + return sizeof(tagCMRefreshMainServerRole) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A1 08 刷新主服角色信息 //tagCMRefreshMainServerRole: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMRefreshMainServerRole=tagCMRefreshMainServerRole() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshMainServerRole.Cmd,m_NAtagCMRefreshMainServerRole.SubCmd))] = m_NAtagCMRefreshMainServerRole #------------------------------------------------------ @@ -3673,6 +4137,54 @@ m_NAtagCMClearFBCD=tagCMClearFBCD() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMClearFBCD.Cmd,m_NAtagCMClearFBCD.SubCmd))] = m_NAtagCMClearFBCD + + +#------------------------------------------------------ +# A2 31 前端开始自定义场景 #tagCMClientStartCustomScene + +class tagCMClientStartCustomScene(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA2 + self.SubCmd = 0x31 + 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 = 0x31 + return + + def GetLength(self): + return sizeof(tagCMClientStartCustomScene) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A2 31 前端开始自定义场景 //tagCMClientStartCustomScene: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMClientStartCustomScene=tagCMClientStartCustomScene() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMClientStartCustomScene.Cmd,m_NAtagCMClientStartCustomScene.SubCmd))] = m_NAtagCMClientStartCustomScene #------------------------------------------------------ @@ -4663,6 +5175,54 @@ m_NAtagCMQuickFinishMission=tagCMQuickFinishMission() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQuickFinishMission.Cmd,m_NAtagCMQuickFinishMission.SubCmd))] = m_NAtagCMQuickFinishMission + + +#------------------------------------------------------ +# A2 32 神秘商店刷新 #tagCMRefreshMysticalShop + +class tagCMRefreshMysticalShop(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA2 + self.SubCmd = 0x32 + 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 = 0x32 + return + + def GetLength(self): + return sizeof(tagCMRefreshMysticalShop) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A2 32 神秘商店刷新 //tagCMRefreshMysticalShop: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMRefreshMysticalShop=tagCMRefreshMysticalShop() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMRefreshMysticalShop.Cmd,m_NAtagCMRefreshMysticalShop.SubCmd))] = m_NAtagCMRefreshMysticalShop #------------------------------------------------------ @@ -5993,6 +6553,62 @@ #------------------------------------------------------ +# A3 30 装备诛仙装备 #tagCMEquipZhuXianItem + +class tagCMEquipZhuXianItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("EquipIndex", c_ubyte), #装备在诛仙装备背包中的索引 + ("ItemIndex", c_ubyte), #装备在诛仙物品背包中的索引 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA3 + self.SubCmd = 0x30 + 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 = 0xA3 + self.SubCmd = 0x30 + self.EquipIndex = 0 + self.ItemIndex = 0 + return + + def GetLength(self): + return sizeof(tagCMEquipZhuXianItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 30 装备诛仙装备 //tagCMEquipZhuXianItem: + Cmd:%s, + SubCmd:%s, + EquipIndex:%d, + ItemIndex:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.EquipIndex, + self.ItemIndex + ) + return DumpString + + +m_NAtagCMEquipZhuXianItem=tagCMEquipZhuXianItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEquipZhuXianItem.Cmd,m_NAtagCMEquipZhuXianItem.SubCmd))] = m_NAtagCMEquipZhuXianItem + + +#------------------------------------------------------ # A3 12 守护拾取物品 #tagCMGuardPickupItem class tagCMGuardPickupItem(Structure): @@ -6753,6 +7369,58 @@ #------------------------------------------------------ +# A3 31 卸下诛仙装备 #tagCMUnEquipZhuXianItem + +class tagCMUnEquipZhuXianItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("EquipIndex", c_ubyte), #装备在诛仙装备背包中的索引 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA3 + self.SubCmd = 0x31 + 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 = 0xA3 + self.SubCmd = 0x31 + self.EquipIndex = 0 + return + + def GetLength(self): + return sizeof(tagCMUnEquipZhuXianItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A3 31 卸下诛仙装备 //tagCMUnEquipZhuXianItem: + Cmd:%s, + SubCmd:%s, + EquipIndex:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.EquipIndex + ) + return DumpString + + +m_NAtagCMUnEquipZhuXianItem=tagCMUnEquipZhuXianItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMUnEquipZhuXianItem.Cmd,m_NAtagCMUnEquipZhuXianItem.SubCmd))] = m_NAtagCMUnEquipZhuXianItem + + +#------------------------------------------------------ # A3 2B 一键使用属性果实 #tagCMUseAllAttrFruit class tagCMUseAllAttrFruit(Structure): @@ -6929,6 +7597,90 @@ m_NAtagCMWingUp=tagCMWingUp() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMWingUp.Head.Cmd,m_NAtagCMWingUp.Head.SubCmd))] = m_NAtagCMWingUp + + +#------------------------------------------------------ +# A3 32 诛仙装备分解 #tagCMZhuXianEquipDecompose + +class tagCMZhuXianEquipDecompose(Structure): + Head = tagHead() + Count = 0 #(BYTE Count)//材料所在背包索引的数量 + IndexList = list() #(vector<WORD> IndexList)//材料所在背包索引列表 + ItemIDList = list() #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表 + IsAuto = 0 #(BYTE IsAuto)//是否自动分解 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x32 + 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.ReadWORD(_lpData,_pos) + self.IndexList.append(value) + for i in range(self.Count): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.ItemIDList.append(value) + self.IsAuto,_pos = CommFunc.ReadBYTE(_lpData, _pos) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA3 + self.Head.SubCmd = 0x32 + self.Count = 0 + self.IndexList = list() + self.ItemIDList = list() + self.IsAuto = 0 + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 2 * self.Count + length += 4 * self.Count + length += 1 + + 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.WriteWORD(data, self.IndexList[i]) + for i in range(self.Count): + data = CommFunc.WriteDWORD(data, self.ItemIDList[i]) + data = CommFunc.WriteBYTE(data, self.IsAuto) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + IndexList:%s, + ItemIDList:%s, + IsAuto:%d + '''\ + %( + self.Head.OutputString(), + self.Count, + "...", + "...", + self.IsAuto + ) + return DumpString + + +m_NAtagCMZhuXianEquipDecompose=tagCMZhuXianEquipDecompose() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMZhuXianEquipDecompose.Head.Cmd,m_NAtagCMZhuXianEquipDecompose.Head.SubCmd))] = m_NAtagCMZhuXianEquipDecompose #------------------------------------------------------ @@ -8128,6 +8880,83 @@ #------------------------------------------------------ +# A5 20 时装分解 #tagCMCoatDecompose + +class tagCMCoatDecompose(Structure): + Head = tagHead() + Count = 0 #(BYTE Count)//材料所在背包索引的数量 + IndexList = list() #(vector<WORD> IndexList)//材料所在背包索引列表 + ItemIDList = list() #(vector<DWORD> ItemIDList)//材料所在背包物品ID列表 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xA5 + 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.ReadWORD(_lpData,_pos) + self.IndexList.append(value) + for i in range(self.Count): + value,_pos=CommFunc.ReadDWORD(_lpData,_pos) + self.ItemIDList.append(value) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xA5 + self.Head.SubCmd = 0x20 + self.Count = 0 + self.IndexList = list() + self.ItemIDList = list() + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 1 + length += 2 * self.Count + 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.WriteWORD(data, self.IndexList[i]) + for i in range(self.Count): + data = CommFunc.WriteDWORD(data, self.ItemIDList[i]) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + Count:%d, + IndexList:%s, + ItemIDList:%s + '''\ + %( + self.Head.OutputString(), + self.Count, + "...", + "..." + ) + return DumpString + + +m_NAtagCMCoatDecompose=tagCMCoatDecompose() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCoatDecompose.Head.Cmd,m_NAtagCMCoatDecompose.Head.SubCmd))] = m_NAtagCMCoatDecompose + + +#------------------------------------------------------ # A5 0B 玩家时装升级 #tagCMCoatUp class tagCMCoatUp(Structure): @@ -8135,7 +8964,7 @@ _fields_ = [ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), - ("CoatIndex", c_ubyte), # 时装索引 + ("CoatIndex", c_int), # 时装索引 ] def __init__(self): @@ -9435,62 +10264,6 @@ #------------------------------------------------------ -# A5 0D 升级法宝技能 #tagCMMagicWeaponSkillUp - -class tagCMMagicWeaponSkillUp(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("SkillTypeID", c_ushort), - ("CostIndex", c_ubyte), - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - self.SubCmd = 0x0D - 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 = 0x0D - self.SkillTypeID = 0 - self.CostIndex = 0 - return - - def GetLength(self): - return sizeof(tagCMMagicWeaponSkillUp) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 0D 升级法宝技能 //tagCMMagicWeaponSkillUp: - Cmd:%s, - SubCmd:%s, - SkillTypeID:%d, - CostIndex:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.SkillTypeID, - self.CostIndex - ) - return DumpString - - -m_NAtagCMMagicWeaponSkillUp=tagCMMagicWeaponSkillUp() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponSkillUp.Cmd,m_NAtagCMMagicWeaponSkillUp.SubCmd))] = m_NAtagCMMagicWeaponSkillUp - - -#------------------------------------------------------ # A5 16 法宝状态记录 #tagCMMagicWeaponState class tagCMMagicWeaponState(Structure): @@ -9592,62 +10365,6 @@ m_NAtagCMMagicWeaponUp=tagCMMagicWeaponUp() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMagicWeaponUp.Cmd,m_NAtagCMMagicWeaponUp.SubCmd))] = m_NAtagCMMagicWeaponUp - - -#------------------------------------------------------ -# A5 77 玩家精炼法宝 #tagCMMWRefine - -class tagCMMWRefine(Structure): - _pack_ = 1 - _fields_ = [ - ("Cmd", c_ubyte), - ("SubCmd", c_ubyte), - ("MWID", c_int), # 法宝ID - ("MaterialID", c_int), #材料ID - ] - - def __init__(self): - self.Clear() - self.Cmd = 0xA5 - self.SubCmd = 0x77 - 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 = 0x77 - self.MWID = 0 - self.MaterialID = 0 - return - - def GetLength(self): - return sizeof(tagCMMWRefine) - - def GetBuffer(self): - return string_at(addressof(self), self.GetLength()) - - def OutputString(self): - DumpString = '''// A5 77 玩家精炼法宝 //tagCMMWRefine: - Cmd:%s, - SubCmd:%s, - MWID:%d, - MaterialID:%d - '''\ - %( - self.Cmd, - self.SubCmd, - self.MWID, - self.MaterialID - ) - return DumpString - - -m_NAtagCMMWRefine=tagCMMWRefine() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMMWRefine.Cmd,m_NAtagCMMWRefine.SubCmd))] = m_NAtagCMMWRefine #------------------------------------------------------ @@ -11847,6 +12564,54 @@ #------------------------------------------------------ +# A8 06 查询充值结果 #tagCMQueryRecharge + +class tagCMQueryRecharge(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xA8 + 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 = 0xA8 + self.SubCmd = 0x06 + return + + def GetLength(self): + return sizeof(tagCMQueryRecharge) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// A8 06 查询充值结果 //tagCMQueryRecharge: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMQueryRecharge=tagCMQueryRecharge() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMQueryRecharge.Cmd,m_NAtagCMQueryRecharge.SubCmd))] = m_NAtagCMQueryRecharge + + +#------------------------------------------------------ # A8 05 VIP杀怪等级信息同步开关 #tagCMVIPKillNPCLVInfoSwitch class tagCMVIPKillNPCLVInfoSwitch(Structure): @@ -12291,6 +13056,54 @@ #------------------------------------------------------ +# AA 08 开始幸运鉴宝 #tagCMStartLuckyTreasure + +class tagCMStartLuckyTreasure(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xAA + self.SubCmd = 0x08 + 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 = 0x08 + return + + def GetLength(self): + return sizeof(tagCMStartLuckyTreasure) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// AA 08 开始幸运鉴宝 //tagCMStartLuckyTreasure: + Cmd:%s, + SubCmd:%s + '''\ + %( + self.Cmd, + self.SubCmd + ) + return DumpString + + +m_NAtagCMStartLuckyTreasure=tagCMStartLuckyTreasure() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMStartLuckyTreasure.Cmd,m_NAtagCMStartLuckyTreasure.SubCmd))] = m_NAtagCMStartLuckyTreasure + + +#------------------------------------------------------ # AB 0B 购买天神经验 #tagCMBuySkyGodExp class tagCMBuySkyGodExp(Structure): @@ -12347,6 +13160,7 @@ ("Cmd", c_ubyte), ("SubCmd", c_ubyte), ("RedPaketID", c_int), # 红包ID + ("GetWay", c_ubyte), #获得途径 ] def __init__(self): @@ -12364,6 +13178,7 @@ self.Cmd = 0xAB self.SubCmd = 0x12 self.RedPaketID = 0 + self.GetWay = 0 return def GetLength(self): @@ -12376,12 +13191,14 @@ DumpString = '''// AB 12 抢红包 //tagCMGrabFamilyRedPacket: Cmd:%s, SubCmd:%s, - RedPaketID:%d + RedPaketID:%d, + GetWay:%d '''\ %( self.Cmd, self.SubCmd, - self.RedPaketID + self.RedPaketID, + self.GetWay ) return DumpString @@ -14944,6 +15761,70 @@ #------------------------------------------------------ +# B5 14 拍卖行竞价物品 #tagCMBiddingAuctionItem + +class tagCMBiddingAuctionItem(Structure): + Head = tagHead() + ItemGUID = "" #(char ItemGUID[40]) + BiddingPrice = 0 #(WORD BiddingPrice)//竞价价格 + data = None + + def __init__(self): + self.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x14 + return + + def ReadData(self, _lpData, _pos=0, _Len=0): + self.Clear() + _pos = self.Head.ReadData(_lpData, _pos) + self.ItemGUID,_pos = CommFunc.ReadString(_lpData, _pos,40) + self.BiddingPrice,_pos = CommFunc.ReadWORD(_lpData, _pos) + return _pos + + def Clear(self): + self.Head = tagHead() + self.Head.Clear() + self.Head.Cmd = 0xB5 + self.Head.SubCmd = 0x14 + self.ItemGUID = "" + self.BiddingPrice = 0 + return + + def GetLength(self): + length = 0 + length += self.Head.GetLength() + length += 40 + length += 2 + + return length + + def GetBuffer(self): + data = '' + data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer()) + data = CommFunc.WriteString(data, 40, self.ItemGUID) + data = CommFunc.WriteWORD(data, self.BiddingPrice) + return data + + def OutputString(self): + DumpString = ''' + Head:%s, + ItemGUID:%s, + BiddingPrice:%d + '''\ + %( + self.Head.OutputString(), + self.ItemGUID, + self.BiddingPrice + ) + return DumpString + + +m_NAtagCMBiddingAuctionItem=tagCMBiddingAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMBiddingAuctionItem.Head.Cmd,m_NAtagCMBiddingAuctionItem.Head.SubCmd))] = m_NAtagCMBiddingAuctionItem + + +#------------------------------------------------------ # B5 02 交易所购买物品#tagCMPYBuyBourseItem class tagCMPYBuyBourseItem(Structure): @@ -15093,6 +15974,58 @@ #------------------------------------------------------ +# B5 13 拍卖行上架拍品 #tagCMSellAuctionItem + +class tagCMSellAuctionItem(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ItemIndex", c_ubyte), #物品在背包中索引 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xB5 + self.SubCmd = 0x13 + 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 = 0xB5 + self.SubCmd = 0x13 + self.ItemIndex = 0 + return + + def GetLength(self): + return sizeof(tagCMSellAuctionItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B5 13 拍卖行上架拍品 //tagCMSellAuctionItem: + Cmd:%s, + SubCmd:%s, + ItemIndex:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ItemIndex + ) + return DumpString + + +m_NAtagCMSellAuctionItem=tagCMSellAuctionItem() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMSellAuctionItem.Cmd,m_NAtagCMSellAuctionItem.SubCmd))] = m_NAtagCMSellAuctionItem + + +#------------------------------------------------------ # B9 04 修改队伍相关审核状态 #tagCMChangeTeamCheckState class tagCMChangeTeamCheckState(Structure): @@ -15146,6 +16079,70 @@ m_NAtagCMChangeTeamCheckState=tagCMChangeTeamCheckState() ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMChangeTeamCheckState.Cmd,m_NAtagCMChangeTeamCheckState.SubCmd))] = m_NAtagCMChangeTeamCheckState + + +#------------------------------------------------------ +# C1 06 跨服NPC对话 #tagCMCrossNPCTalk + +class tagCMCrossNPCTalk(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("ObjID", c_int), + ("NPCID", c_int), + ("PosX", c_ushort), + ("PosY", c_ushort), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC1 + 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 = 0xC1 + self.SubCmd = 0x06 + self.ObjID = 0 + self.NPCID = 0 + self.PosX = 0 + self.PosY = 0 + return + + def GetLength(self): + return sizeof(tagCMCrossNPCTalk) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C1 06 跨服NPC对话 //tagCMCrossNPCTalk: + Cmd:%s, + SubCmd:%s, + ObjID:%d, + NPCID:%d, + PosX:%d, + PosY:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.ObjID, + self.NPCID, + self.PosX, + self.PosY + ) + return DumpString + + +m_NAtagCMCrossNPCTalk=tagCMCrossNPCTalk() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCrossNPCTalk.Cmd,m_NAtagCMCrossNPCTalk.SubCmd))] = m_NAtagCMCrossNPCTalk #------------------------------------------------------ @@ -15305,6 +16302,110 @@ #------------------------------------------------------ +# C1 08 跨服PK挑战机器人结算 #tagCMCrossRealmPKRobotOver + +class tagCMCrossRealmPKRobotOver(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("IsWin", c_ubyte), #是否获胜 + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC1 + self.SubCmd = 0x08 + 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 = 0x08 + self.IsWin = 0 + return + + def GetLength(self): + return sizeof(tagCMCrossRealmPKRobotOver) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C1 08 跨服PK挑战机器人结算 //tagCMCrossRealmPKRobotOver: + Cmd:%s, + SubCmd:%s, + IsWin:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.IsWin + ) + return DumpString + + +m_NAtagCMCrossRealmPKRobotOver=tagCMCrossRealmPKRobotOver() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMCrossRealmPKRobotOver.Cmd,m_NAtagCMCrossRealmPKRobotOver.SubCmd))] = m_NAtagCMCrossRealmPKRobotOver + + +#------------------------------------------------------ +# C1 05 进入跨服地图 #tagCMEnterCrossServer + +class tagCMEnterCrossServer(Structure): + _pack_ = 1 + _fields_ = [ + ("Cmd", c_ubyte), + ("SubCmd", c_ubyte), + ("DataMapID", c_int), + ] + + def __init__(self): + self.Clear() + self.Cmd = 0xC1 + 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 = 0xC1 + self.SubCmd = 0x05 + self.DataMapID = 0 + return + + def GetLength(self): + return sizeof(tagCMEnterCrossServer) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// C1 05 进入跨服地图 //tagCMEnterCrossServer: + Cmd:%s, + SubCmd:%s, + DataMapID:%d + '''\ + %( + self.Cmd, + self.SubCmd, + self.DataMapID + ) + return DumpString + + +m_NAtagCMEnterCrossServer=tagCMEnterCrossServer() +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMEnterCrossServer.Cmd,m_NAtagCMEnterCrossServer.SubCmd))] = m_NAtagCMEnterCrossServer + + +#------------------------------------------------------ # C1 04 主动退出跨服 #tagCMExitCrossRealm class tagCMExitCrossRealm(Structure): -- Gitblit v1.8.0