| | |
| | | ("SubCmd", c_ubyte),
|
| | | ("PlayerID", c_int), #玩家ID
|
| | | ("FindPlayerID", c_int), #要查询的玩家ID
|
| | | ("EquipClassLV", c_ubyte), #大于0为查看指定境界阶装备信息, 0为查看默认信息
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | |
| | | self.SubCmd = 0x02
|
| | | self.PlayerID = 0
|
| | | self.FindPlayerID = 0
|
| | | self.EquipClassLV = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | PlayerID:%d,
|
| | | FindPlayerID:%d
|
| | | FindPlayerID:%d,
|
| | | EquipClassLV:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.PlayerID,
|
| | | self.FindPlayerID
|
| | | self.FindPlayerID,
|
| | | self.EquipClassLV
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | | Head = tagHead()
|
| | | PlayerID = 0 #(DWORD PlayerID)//玩家ID
|
| | | PlayerLV = 0 #(WORD PlayerLV)//玩家等级
|
| | | PropDataSize = 0 #(DWORD PropDataSize)
|
| | | PropData = "" #(String PropData)//属性记录
|
| | | ItemDataSize = 0 #(DWORD ItemDataSize)
|
| | | ItemData = "" #(String ItemData)//物品记录
|
| | | PlusDataSize = 0 #(DWORD PlusDataSize)
|
| | | PlusData = "" #(String PlusData)//扩展记录
|
| | | IsLogouting = 0 #(BYTE IsLogouting)//本次是否为下线同步
|
| | | OffTime = 0 #(DWORD OffTime)// 下线时间戳
|
| | | PropDataSize = 0 #(WORD PropDataSize)
|
| | | PropData = "" #(String PropData)//属性记录
|
| | | PlusDataSize = 0 #(WORD PlusDataSize)
|
| | | PlusData = "" #(String PlusData)//扩展记录
|
| | | ItemDataSize1 = 0 #(WORD ItemDataSize1)
|
| | | ItemData1 = "" #(String ItemData1)//1阶装备数据
|
| | | ItemDataSize2 = 0 #(WORD ItemDataSize2)
|
| | | ItemData2 = "" #(String ItemData2)
|
| | | ItemDataSize3 = 0 #(WORD ItemDataSize3)
|
| | | ItemData3 = "" #(String ItemData3)
|
| | | ItemDataSize4 = 0 #(WORD ItemDataSize4)
|
| | | ItemData4 = "" #(String ItemData4)
|
| | | ItemDataSize5 = 0 #(WORD ItemDataSize5)
|
| | | ItemData5 = "" #(String ItemData5)
|
| | | ItemDataSize6 = 0 #(WORD ItemDataSize6)
|
| | | ItemData6 = "" #(String ItemData6)
|
| | | ItemDataSize7 = 0 #(WORD ItemDataSize7)
|
| | | ItemData7 = "" #(String ItemData7)
|
| | | ItemDataSize8 = 0 #(WORD ItemDataSize8)
|
| | | ItemData8 = "" #(String ItemData8)
|
| | | ItemDataSize9 = 0 #(WORD ItemDataSize9)
|
| | | ItemData9 = "" #(String ItemData9)
|
| | | ItemDataSize10 = 0 #(WORD ItemDataSize10)
|
| | | ItemData10 = "" #(String ItemData10)
|
| | | ItemDataSize11 = 0 #(WORD ItemDataSize11)
|
| | | ItemData11 = "" #(String ItemData11)
|
| | | ItemDataSize12 = 0 #(WORD ItemDataSize12)
|
| | | ItemData12 = "" #(String ItemData12)
|
| | | ItemDataSize13 = 0 #(WORD ItemDataSize13)
|
| | | ItemData13 = "" #(String ItemData13)
|
| | | ItemDataSize14 = 0 #(WORD ItemDataSize14)
|
| | | ItemData14 = "" #(String ItemData14)
|
| | | ItemDataSize15 = 0 #(WORD ItemDataSize15)
|
| | | ItemData15 = "" #(String ItemData15)
|
| | | ItemDataSize16 = 0 #(WORD ItemDataSize16)
|
| | | ItemData16 = "" #(String ItemData16)
|
| | | ItemDataSize17 = 0 #(WORD ItemDataSize17)
|
| | | ItemData17 = "" #(String ItemData17)
|
| | | ItemDataSize18 = 0 #(WORD ItemDataSize18)
|
| | | ItemData18 = "" #(String ItemData18)
|
| | | ItemDataSize19 = 0 #(WORD ItemDataSize19)
|
| | | ItemData19 = "" #(String ItemData19)
|
| | | ItemDataSize20 = 0 #(WORD ItemDataSize20)
|
| | | ItemData20 = "" #(String ItemData20)
|
| | | PackDataSyncState = 0 #(BYTE PackDataSyncState)// 打包数据同步状态: 0-不同步;个位-是否同步本服;十位-是否同步跨服
|
| | | PackDataLen = 0 #(DWORD PackDataLen)
|
| | | PackData = "" #(String PackData)
|
| | | PackMsgLen = 0 #(WORD PackMsgLen)
|
| | | PackMsg = "" #(String PackMsg)
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | |
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.PropDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PropData,_pos = CommFunc.ReadString(_lpData, _pos,self.PropDataSize)
|
| | | self.ItemDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ItemData,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize)
|
| | | self.PlusDataSize,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize)
|
| | | self.IsLogouting,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.OffTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PropDataSize,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.PropData,_pos = CommFunc.ReadString(_lpData, _pos,self.PropDataSize)
|
| | | self.PlusDataSize,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.PlusData,_pos = CommFunc.ReadString(_lpData, _pos,self.PlusDataSize)
|
| | | self.ItemDataSize1,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData1,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize1)
|
| | | self.ItemDataSize2,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData2,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize2)
|
| | | self.ItemDataSize3,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData3,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize3)
|
| | | self.ItemDataSize4,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData4,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize4)
|
| | | self.ItemDataSize5,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData5,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize5)
|
| | | self.ItemDataSize6,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData6,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize6)
|
| | | self.ItemDataSize7,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData7,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize7)
|
| | | self.ItemDataSize8,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData8,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize8)
|
| | | self.ItemDataSize9,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData9,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize9)
|
| | | self.ItemDataSize10,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData10,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize10)
|
| | | self.ItemDataSize11,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData11,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize11)
|
| | | self.ItemDataSize12,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData12,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize12)
|
| | | self.ItemDataSize13,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData13,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize13)
|
| | | self.ItemDataSize14,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData14,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize14)
|
| | | self.ItemDataSize15,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData15,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize15)
|
| | | self.ItemDataSize16,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData16,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize16)
|
| | | self.ItemDataSize17,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData17,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize17)
|
| | | self.ItemDataSize18,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData18,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize18)
|
| | | self.ItemDataSize19,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData19,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize19)
|
| | | self.ItemDataSize20,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemData20,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemDataSize20)
|
| | | self.PackDataSyncState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.PackDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PackData,_pos = CommFunc.ReadString(_lpData, _pos,self.PackDataLen)
|
| | | self.PackMsgLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.PackMsg,_pos = CommFunc.ReadString(_lpData, _pos,self.PackMsgLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | |
| | | self.Head.SubCmd = 0x01
|
| | | self.PlayerID = 0
|
| | | self.PlayerLV = 0
|
| | | self.PropDataSize = 0
|
| | | self.PropData = ""
|
| | | self.ItemDataSize = 0
|
| | | self.ItemData = ""
|
| | | self.PlusDataSize = 0
|
| | | self.PlusData = ""
|
| | | self.IsLogouting = 0
|
| | | self.OffTime = 0
|
| | | self.PropDataSize = 0
|
| | | self.PropData = ""
|
| | | self.PlusDataSize = 0
|
| | | self.PlusData = ""
|
| | | self.ItemDataSize1 = 0
|
| | | self.ItemData1 = ""
|
| | | self.ItemDataSize2 = 0
|
| | | self.ItemData2 = ""
|
| | | self.ItemDataSize3 = 0
|
| | | self.ItemData3 = ""
|
| | | self.ItemDataSize4 = 0
|
| | | self.ItemData4 = ""
|
| | | self.ItemDataSize5 = 0
|
| | | self.ItemData5 = ""
|
| | | self.ItemDataSize6 = 0
|
| | | self.ItemData6 = ""
|
| | | self.ItemDataSize7 = 0
|
| | | self.ItemData7 = ""
|
| | | self.ItemDataSize8 = 0
|
| | | self.ItemData8 = ""
|
| | | self.ItemDataSize9 = 0
|
| | | self.ItemData9 = ""
|
| | | self.ItemDataSize10 = 0
|
| | | self.ItemData10 = ""
|
| | | self.ItemDataSize11 = 0
|
| | | self.ItemData11 = ""
|
| | | self.ItemDataSize12 = 0
|
| | | self.ItemData12 = ""
|
| | | self.ItemDataSize13 = 0
|
| | | self.ItemData13 = ""
|
| | | self.ItemDataSize14 = 0
|
| | | self.ItemData14 = ""
|
| | | self.ItemDataSize15 = 0
|
| | | self.ItemData15 = ""
|
| | | self.ItemDataSize16 = 0
|
| | | self.ItemData16 = ""
|
| | | self.ItemDataSize17 = 0
|
| | | self.ItemData17 = ""
|
| | | self.ItemDataSize18 = 0
|
| | | self.ItemData18 = ""
|
| | | self.ItemDataSize19 = 0
|
| | | self.ItemData19 = ""
|
| | | self.ItemDataSize20 = 0
|
| | | self.ItemData20 = ""
|
| | | self.PackDataSyncState = 0
|
| | | self.PackDataLen = 0
|
| | | self.PackData = ""
|
| | | self.PackMsgLen = 0
|
| | | self.PackMsg = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | |
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 2
|
| | | length += 4
|
| | | length += len(self.PropData)
|
| | | length += 4
|
| | | length += len(self.ItemData)
|
| | | length += 4
|
| | | length += len(self.PlusData)
|
| | | length += 1
|
| | | length += 4
|
| | | length += 2
|
| | | length += len(self.PropData)
|
| | | length += 2
|
| | | length += len(self.PlusData)
|
| | | length += 2
|
| | | length += len(self.ItemData1)
|
| | | length += 2
|
| | | length += len(self.ItemData2)
|
| | | length += 2
|
| | | length += len(self.ItemData3)
|
| | | length += 2
|
| | | length += len(self.ItemData4)
|
| | | length += 2
|
| | | length += len(self.ItemData5)
|
| | | length += 2
|
| | | length += len(self.ItemData6)
|
| | | length += 2
|
| | | length += len(self.ItemData7)
|
| | | length += 2
|
| | | length += len(self.ItemData8)
|
| | | length += 2
|
| | | length += len(self.ItemData9)
|
| | | length += 2
|
| | | length += len(self.ItemData10)
|
| | | length += 2
|
| | | length += len(self.ItemData11)
|
| | | length += 2
|
| | | length += len(self.ItemData12)
|
| | | length += 2
|
| | | length += len(self.ItemData13)
|
| | | length += 2
|
| | | length += len(self.ItemData14)
|
| | | length += 2
|
| | | length += len(self.ItemData15)
|
| | | length += 2
|
| | | length += len(self.ItemData16)
|
| | | length += 2
|
| | | length += len(self.ItemData17)
|
| | | length += 2
|
| | | length += len(self.ItemData18)
|
| | | length += 2
|
| | | length += len(self.ItemData19)
|
| | | length += 2
|
| | | length += len(self.ItemData20)
|
| | | length += 1
|
| | | length += 4
|
| | | length += len(self.PackData)
|
| | | length += 2
|
| | | length += len(self.PackMsg)
|
| | |
|
| | | return length
|
| | |
|
| | |
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.PlayerID)
|
| | | data = CommFunc.WriteWORD(data, self.PlayerLV)
|
| | | data = CommFunc.WriteDWORD(data, self.PropDataSize)
|
| | | data = CommFunc.WriteString(data, self.PropDataSize, self.PropData)
|
| | | data = CommFunc.WriteDWORD(data, self.ItemDataSize)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize, self.ItemData)
|
| | | data = CommFunc.WriteDWORD(data, self.PlusDataSize)
|
| | | data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData)
|
| | | data = CommFunc.WriteBYTE(data, self.IsLogouting)
|
| | | data = CommFunc.WriteDWORD(data, self.OffTime)
|
| | | data = CommFunc.WriteWORD(data, self.PropDataSize)
|
| | | data = CommFunc.WriteString(data, self.PropDataSize, self.PropData)
|
| | | data = CommFunc.WriteWORD(data, self.PlusDataSize)
|
| | | data = CommFunc.WriteString(data, self.PlusDataSize, self.PlusData)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize1)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize1, self.ItemData1)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize2)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize2, self.ItemData2)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize3)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize3, self.ItemData3)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize4)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize4, self.ItemData4)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize5)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize5, self.ItemData5)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize6)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize6, self.ItemData6)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize7)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize7, self.ItemData7)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize8)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize8, self.ItemData8)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize9)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize9, self.ItemData9)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize10)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize10, self.ItemData10)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize11)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize11, self.ItemData11)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize12)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize12, self.ItemData12)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize13)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize13, self.ItemData13)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize14)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize14, self.ItemData14)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize15)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize15, self.ItemData15)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize16)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize16, self.ItemData16)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize17)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize17, self.ItemData17)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize18)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize18, self.ItemData18)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize19)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize19, self.ItemData19)
|
| | | data = CommFunc.WriteWORD(data, self.ItemDataSize20)
|
| | | data = CommFunc.WriteString(data, self.ItemDataSize20, self.ItemData20)
|
| | | data = CommFunc.WriteBYTE(data, self.PackDataSyncState)
|
| | | data = CommFunc.WriteDWORD(data, self.PackDataLen)
|
| | | data = CommFunc.WriteString(data, self.PackDataLen, self.PackData)
|
| | | data = CommFunc.WriteWORD(data, self.PackMsgLen)
|
| | | data = CommFunc.WriteString(data, self.PackMsgLen, self.PackMsg)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | |
| | | Head:%s,
|
| | | PlayerID:%d,
|
| | | PlayerLV:%d,
|
| | | IsLogouting:%d,
|
| | | OffTime:%d,
|
| | | PropDataSize:%d,
|
| | | PropData:%s,
|
| | | ItemDataSize:%d,
|
| | | ItemData:%s,
|
| | | PlusDataSize:%d,
|
| | | PlusData:%s,
|
| | | IsLogouting:%d,
|
| | | OffTime:%d
|
| | | ItemDataSize1:%d,
|
| | | ItemData1:%s,
|
| | | ItemDataSize2:%d,
|
| | | ItemData2:%s,
|
| | | ItemDataSize3:%d,
|
| | | ItemData3:%s,
|
| | | ItemDataSize4:%d,
|
| | | ItemData4:%s,
|
| | | ItemDataSize5:%d,
|
| | | ItemData5:%s,
|
| | | ItemDataSize6:%d,
|
| | | ItemData6:%s,
|
| | | ItemDataSize7:%d,
|
| | | ItemData7:%s,
|
| | | ItemDataSize8:%d,
|
| | | ItemData8:%s,
|
| | | ItemDataSize9:%d,
|
| | | ItemData9:%s,
|
| | | ItemDataSize10:%d,
|
| | | ItemData10:%s,
|
| | | ItemDataSize11:%d,
|
| | | ItemData11:%s,
|
| | | ItemDataSize12:%d,
|
| | | ItemData12:%s,
|
| | | ItemDataSize13:%d,
|
| | | ItemData13:%s,
|
| | | ItemDataSize14:%d,
|
| | | ItemData14:%s,
|
| | | ItemDataSize15:%d,
|
| | | ItemData15:%s,
|
| | | ItemDataSize16:%d,
|
| | | ItemData16:%s,
|
| | | ItemDataSize17:%d,
|
| | | ItemData17:%s,
|
| | | ItemDataSize18:%d,
|
| | | ItemData18:%s,
|
| | | ItemDataSize19:%d,
|
| | | ItemData19:%s,
|
| | | ItemDataSize20:%d,
|
| | | ItemData20:%s,
|
| | | PackDataSyncState:%d,
|
| | | PackDataLen:%d,
|
| | | PackData:%s,
|
| | | PackMsgLen:%d,
|
| | | PackMsg:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.PlayerID,
|
| | | self.PlayerLV,
|
| | | self.IsLogouting,
|
| | | self.OffTime,
|
| | | self.PropDataSize,
|
| | | self.PropData,
|
| | | self.ItemDataSize,
|
| | | self.ItemData,
|
| | | self.PlusDataSize,
|
| | | self.PlusData,
|
| | | self.IsLogouting,
|
| | | self.OffTime
|
| | | self.ItemDataSize1,
|
| | | self.ItemData1,
|
| | | self.ItemDataSize2,
|
| | | self.ItemData2,
|
| | | self.ItemDataSize3,
|
| | | self.ItemData3,
|
| | | self.ItemDataSize4,
|
| | | self.ItemData4,
|
| | | self.ItemDataSize5,
|
| | | self.ItemData5,
|
| | | self.ItemDataSize6,
|
| | | self.ItemData6,
|
| | | self.ItemDataSize7,
|
| | | self.ItemData7,
|
| | | self.ItemDataSize8,
|
| | | self.ItemData8,
|
| | | self.ItemDataSize9,
|
| | | self.ItemData9,
|
| | | self.ItemDataSize10,
|
| | | self.ItemData10,
|
| | | self.ItemDataSize11,
|
| | | self.ItemData11,
|
| | | self.ItemDataSize12,
|
| | | self.ItemData12,
|
| | | self.ItemDataSize13,
|
| | | self.ItemData13,
|
| | | self.ItemDataSize14,
|
| | | self.ItemData14,
|
| | | self.ItemDataSize15,
|
| | | self.ItemData15,
|
| | | self.ItemDataSize16,
|
| | | self.ItemData16,
|
| | | self.ItemDataSize17,
|
| | | self.ItemData17,
|
| | | self.ItemDataSize18,
|
| | | self.ItemData18,
|
| | | self.ItemDataSize19,
|
| | | self.ItemData19,
|
| | | self.ItemDataSize20,
|
| | | self.ItemData20,
|
| | | self.PackDataSyncState,
|
| | | self.PackDataLen,
|
| | | self.PackData,
|
| | | self.PackMsgLen,
|
| | | self.PackMsg
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
| | |
|
| | | m_NAtagMGAddFamilyDetail=tagMGAddFamilyDetail()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMGAddFamilyDetail.Cmd,m_NAtagMGAddFamilyDetail.SubCmd))] = m_NAtagMGAddFamilyDetail
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #03 02 天梯竞技场玩家发起挑战#tagMGHighLadderChallenge
|
| | |
|
| | | class tagHightLadderItemInfo(Structure):
|
| | | ItemTypeID = 0 #(DWORD ItemTypeID)//物品ID
|
| | | ItemPlaceType = 0 #(BYTE ItemPlaceType)//物品位置的背包类型
|
| | | ItemPlaceIndex = 0 #(BYTE ItemPlaceIndex)//物品所在的索引
|
| | | Count = 0 #(WORD Count)//单组数量
|
| | | ItemStarLV = 0 #(BYTE ItemStarLV)//装备星级
|
| | | IdentifyPar = 0 #(BYTE IdentifyPar)//鉴定参数
|
| | | CurDurg = 0 #(DWORD CurDurg)//当前耐久
|
| | | MaxDurg = 0 #(DWORD MaxDurg)//最大耐久
|
| | | CanPlaceStoneCount = 0 #(BYTE CanPlaceStoneCount)//可镶嵌宝石数0表示不可以镶嵌宝石
|
| | | ItemProperty = 0 #(BYTE ItemProperty)//装备五行
|
| | | SoulProperty = 0 #(WORD SoulProperty)//灵魂属性属性
|
| | | Maker = 0 #(DWORD Maker)//制作者ID
|
| | | MakerName = "" #(char MakerName[33])//制造者名字
|
| | | Stone1 = 0 #(DWORD Stone1)//镶嵌宝石1
|
| | | Stone2 = 0 #(DWORD Stone2)//镶嵌宝石
|
| | | Stone3 = 0 #(DWORD Stone3)//镶嵌宝石
|
| | | Stone4 = 0 #(DWORD Stone4)//镶嵌宝石
|
| | | Stone5 = 0 #(DWORD Stone5)//镶嵌宝石
|
| | | Stone6 = 0 #(DWORD Stone6)//镶嵌宝石
|
| | | Stone7 = 0 #(DWORD Stone7)//镶嵌宝石
|
| | | Stone8 = 0 #(DWORD Stone8)//镶嵌宝石
|
| | | Stone9 = 0 #(DWORD Stone9)//镶嵌宝石
|
| | | IsRenZhu = 0 #(BYTE IsRenZhu)//是否认主
|
| | | EquipDefenseValue = 0 #(DWORD EquipDefenseValue)//用于记录装备的防御值
|
| | | EquipMinAtkValue = 0 #(DWORD EquipMinAtkValue)//用于记录装备的最小伤害值
|
| | | EquipMaxAtkValue = 0 #(DWORD EquipMaxAtkValue)//用于记录装备的最大伤害值
|
| | | UserDataLen = 0 #(DWORD UserDataLen)
|
| | | UserData = "" #(String UserData)//自定义数据
|
| | | FitLV = 0 #(BYTE FitLV)//物品契合等级
|
| | | Proficiency = 0 #(DWORD Proficiency)//熟练度
|
| | | IsSuite = 0 #(BYTE IsSuite)//是否已经套装化
|
| | | BaseHP = 0 #(DWORD BaseHP)// HP基础值
|
| | | BaseMagicDef = 0 #(DWORD BaseMagicDef)//内防基础值
|
| | | MaxAddSkillCnt = 0 #(BYTE MaxAddSkillCnt)// 最大附魔次数
|
| | | PetID = 0 #(DWORD PetID)//装备该装备的宠物ID,为0则未装备
|
| | | EquipMagicDefValue = 0 #(DWORD EquipMagicDefValue)//装备内防值
|
| | | EquipMinMagicAtkValue = 0 #(DWORD EquipMinMagicAtkValue)//装备最小内攻
|
| | | EquipMaxMagicAtkValue = 0 #(DWORD EquipMaxMagicAtkValue)//装备最大内攻
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.ItemTypeID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ItemPlaceType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ItemPlaceIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemStarLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.IdentifyPar,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.CurDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.MaxDurg,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.CanPlaceStoneCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ItemProperty,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.SoulProperty,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.Maker,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.MakerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.Stone1,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Stone2,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Stone3,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Stone4,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Stone5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Stone6,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Stone7,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Stone8,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Stone9,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.IsRenZhu,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.EquipDefenseValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.EquipMinAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.EquipMaxAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
|
| | | self.FitLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.Proficiency,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.BaseHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.BaseMagicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.MaxAddSkillCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.PetID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.EquipMagicDefValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.EquipMinMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.EquipMaxMagicAtkValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.ItemTypeID = 0
|
| | | self.ItemPlaceType = 0
|
| | | self.ItemPlaceIndex = 0
|
| | | self.Count = 0
|
| | | self.ItemStarLV = 0
|
| | | self.IdentifyPar = 0
|
| | | self.CurDurg = 0
|
| | | self.MaxDurg = 0
|
| | | self.CanPlaceStoneCount = 0
|
| | | self.ItemProperty = 0
|
| | | self.SoulProperty = 0
|
| | | self.Maker = 0
|
| | | self.MakerName = ""
|
| | | self.Stone1 = 0
|
| | | self.Stone2 = 0
|
| | | self.Stone3 = 0
|
| | | self.Stone4 = 0
|
| | | self.Stone5 = 0
|
| | | self.Stone6 = 0
|
| | | self.Stone7 = 0
|
| | | self.Stone8 = 0
|
| | | self.Stone9 = 0
|
| | | self.IsRenZhu = 0
|
| | | self.EquipDefenseValue = 0
|
| | | self.EquipMinAtkValue = 0
|
| | | self.EquipMaxAtkValue = 0
|
| | | self.UserDataLen = 0
|
| | | self.UserData = ""
|
| | | self.FitLV = 0
|
| | | self.Proficiency = 0
|
| | | self.IsSuite = 0
|
| | | self.BaseHP = 0
|
| | | self.BaseMagicDef = 0
|
| | | self.MaxAddSkillCnt = 0
|
| | | self.PetID = 0
|
| | | self.EquipMagicDefValue = 0
|
| | | self.EquipMinMagicAtkValue = 0
|
| | | self.EquipMaxMagicAtkValue = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2
|
| | | length += 4
|
| | | length += 33
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += len(self.UserData)
|
| | | length += 1
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | | length += 4
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.ItemTypeID)
|
| | | data = CommFunc.WriteBYTE(data, self.ItemPlaceType)
|
| | | data = CommFunc.WriteBYTE(data, self.ItemPlaceIndex)
|
| | | data = CommFunc.WriteWORD(data, self.Count)
|
| | | data = CommFunc.WriteBYTE(data, self.ItemStarLV)
|
| | | data = CommFunc.WriteBYTE(data, self.IdentifyPar)
|
| | | data = CommFunc.WriteDWORD(data, self.CurDurg)
|
| | | data = CommFunc.WriteDWORD(data, self.MaxDurg)
|
| | | data = CommFunc.WriteBYTE(data, self.CanPlaceStoneCount)
|
| | | data = CommFunc.WriteBYTE(data, self.ItemProperty)
|
| | | data = CommFunc.WriteWORD(data, self.SoulProperty)
|
| | | data = CommFunc.WriteDWORD(data, self.Maker)
|
| | | data = CommFunc.WriteString(data, 33, self.MakerName)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone1)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone2)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone3)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone4)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone5)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone6)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone7)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone8)
|
| | | data = CommFunc.WriteDWORD(data, self.Stone9)
|
| | | data = CommFunc.WriteBYTE(data, self.IsRenZhu)
|
| | | data = CommFunc.WriteDWORD(data, self.EquipDefenseValue)
|
| | | data = CommFunc.WriteDWORD(data, self.EquipMinAtkValue)
|
| | | data = CommFunc.WriteDWORD(data, self.EquipMaxAtkValue)
|
| | | data = CommFunc.WriteDWORD(data, self.UserDataLen)
|
| | | data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
|
| | | data = CommFunc.WriteBYTE(data, self.FitLV)
|
| | | data = CommFunc.WriteDWORD(data, self.Proficiency)
|
| | | data = CommFunc.WriteBYTE(data, self.IsSuite)
|
| | | data = CommFunc.WriteDWORD(data, self.BaseHP)
|
| | | data = CommFunc.WriteDWORD(data, self.BaseMagicDef)
|
| | | data = CommFunc.WriteBYTE(data, self.MaxAddSkillCnt)
|
| | | data = CommFunc.WriteDWORD(data, self.PetID)
|
| | | data = CommFunc.WriteDWORD(data, self.EquipMagicDefValue)
|
| | | data = CommFunc.WriteDWORD(data, self.EquipMinMagicAtkValue)
|
| | | data = CommFunc.WriteDWORD(data, self.EquipMaxMagicAtkValue)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ItemTypeID:%d,
|
| | | ItemPlaceType:%d,
|
| | | ItemPlaceIndex:%d,
|
| | | Count:%d,
|
| | | ItemStarLV:%d,
|
| | | IdentifyPar:%d,
|
| | | CurDurg:%d,
|
| | | MaxDurg:%d,
|
| | | CanPlaceStoneCount:%d,
|
| | | ItemProperty:%d,
|
| | | SoulProperty:%d,
|
| | | Maker:%d,
|
| | | MakerName:%s,
|
| | | Stone1:%d,
|
| | | Stone2:%d,
|
| | | Stone3:%d,
|
| | | Stone4:%d,
|
| | | Stone5:%d,
|
| | | Stone6:%d,
|
| | | Stone7:%d,
|
| | | Stone8:%d,
|
| | | Stone9:%d,
|
| | | IsRenZhu:%d,
|
| | | EquipDefenseValue:%d,
|
| | | EquipMinAtkValue:%d,
|
| | | EquipMaxAtkValue:%d,
|
| | | UserDataLen:%d,
|
| | | UserData:%s,
|
| | | FitLV:%d,
|
| | | Proficiency:%d,
|
| | | IsSuite:%d,
|
| | | BaseHP:%d,
|
| | | BaseMagicDef:%d,
|
| | | MaxAddSkillCnt:%d,
|
| | | PetID:%d,
|
| | | EquipMagicDefValue:%d,
|
| | | EquipMinMagicAtkValue:%d,
|
| | | EquipMaxMagicAtkValue:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemTypeID,
|
| | | self.ItemPlaceType,
|
| | | self.ItemPlaceIndex,
|
| | | self.Count,
|
| | | self.ItemStarLV,
|
| | | self.IdentifyPar,
|
| | | self.CurDurg,
|
| | | self.MaxDurg,
|
| | | self.CanPlaceStoneCount,
|
| | | self.ItemProperty,
|
| | | self.SoulProperty,
|
| | | self.Maker,
|
| | | self.MakerName,
|
| | | self.Stone1,
|
| | | self.Stone2,
|
| | | self.Stone3,
|
| | | self.Stone4,
|
| | | self.Stone5,
|
| | | self.Stone6,
|
| | | self.Stone7,
|
| | | self.Stone8,
|
| | | self.Stone9,
|
| | | self.IsRenZhu,
|
| | | self.EquipDefenseValue,
|
| | | self.EquipMinAtkValue,
|
| | | self.EquipMaxAtkValue,
|
| | | self.UserDataLen,
|
| | | self.UserData,
|
| | | self.FitLV,
|
| | | self.Proficiency,
|
| | | self.IsSuite,
|
| | | self.BaseHP,
|
| | | self.BaseMagicDef,
|
| | | self.MaxAddSkillCnt,
|
| | | self.PetID,
|
| | | self.EquipMagicDefValue,
|
| | | self.EquipMinMagicAtkValue,
|
| | | self.EquipMaxMagicAtkValue
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMGHighLadderChallenge(Structure):
|
| | | Head = tagHead()
|
| | | PlayerID = 0 #(DWORD PlayerID)//玩家ID
|
| | | PlayerName = "" #(char PlayerName[33])
|
| | | PlayerLV = 0 #(WORD PlayerLV)
|
| | | FightPower = 0 #(DWORD FightPower)
|
| | | FightPropertyDataLen = 0 #(DWORD FightPropertyDataLen)
|
| | | FightPropertyData = "" #(String FightPropertyData)//Python自定义数据
|
| | | EquipCount = 0 #(BYTE EquipCount)
|
| | | EquipList = list() #(vector<tagHightLadderItemInfo> EquipList)//装备信息列表
|
| | | VSOrder = 0 #(WORD VSOrder)//要挑战的排位
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0x03
|
| | | self.Head.SubCmd = 0x02
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.PlayerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
|
| | | self.PlayerLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.FightPower,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.FightPropertyDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.FightPropertyData,_pos = CommFunc.ReadString(_lpData, _pos,self.FightPropertyDataLen)
|
| | | self.EquipCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.EquipCount):
|
| | | temEquipList = tagHightLadderItemInfo()
|
| | | _pos = temEquipList.ReadData(_lpData, _pos)
|
| | | self.EquipList.append(temEquipList)
|
| | | self.VSOrder,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0x03
|
| | | self.Head.SubCmd = 0x02
|
| | | self.PlayerID = 0
|
| | | self.PlayerName = ""
|
| | | self.PlayerLV = 0
|
| | | self.FightPower = 0
|
| | | self.FightPropertyDataLen = 0
|
| | | self.FightPropertyData = ""
|
| | | self.EquipCount = 0
|
| | | self.EquipList = list()
|
| | | self.VSOrder = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 33
|
| | | length += 2
|
| | | length += 4
|
| | | length += 4
|
| | | length += len(self.FightPropertyData)
|
| | | length += 1
|
| | | for i in range(self.EquipCount):
|
| | | length += self.EquipList[i].GetLength()
|
| | | length += 2
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.PlayerID)
|
| | | data = CommFunc.WriteString(data, 33, self.PlayerName)
|
| | | data = CommFunc.WriteWORD(data, self.PlayerLV)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPower)
|
| | | data = CommFunc.WriteDWORD(data, self.FightPropertyDataLen)
|
| | | data = CommFunc.WriteString(data, self.FightPropertyDataLen, self.FightPropertyData)
|
| | | data = CommFunc.WriteBYTE(data, self.EquipCount)
|
| | | for i in range(self.EquipCount):
|
| | | data = CommFunc.WriteString(data, self.EquipList[i].GetLength(), self.EquipList[i].GetBuffer())
|
| | | data = CommFunc.WriteWORD(data, self.VSOrder)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | PlayerID:%d,
|
| | | PlayerName:%s,
|
| | | PlayerLV:%d,
|
| | | FightPower:%d,
|
| | | FightPropertyDataLen:%d,
|
| | | FightPropertyData:%s,
|
| | | EquipCount:%d,
|
| | | EquipList:%s,
|
| | | VSOrder:%d
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.PlayerID,
|
| | | self.PlayerName,
|
| | | self.PlayerLV,
|
| | | self.FightPower,
|
| | | self.FightPropertyDataLen,
|
| | | self.FightPropertyData,
|
| | | self.EquipCount,
|
| | | "...",
|
| | | self.VSOrder
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMGHighLadderChallenge=tagMGHighLadderChallenge()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMGHighLadderChallenge.Head.Cmd,m_NAtagMGHighLadderChallenge.Head.SubCmd))] = m_NAtagMGHighLadderChallenge
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|