|  |  | 
 |  |  |                   ("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)
 | 
 |  |  |     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)
 | 
 |  |  |         return _pos
 | 
 |  |  | 
 | 
 |  |  |     def Clear(self):
 | 
 |  |  | 
 |  |  |         self.Head.SubCmd = 0x01
 | 
 |  |  |         self.PlayerID = 0
 | 
 |  |  |         self.PlayerLV = 0
 | 
 |  |  |         self.IsLogouting = 0
 | 
 |  |  |         self.OffTime = 0
 | 
 |  |  |         self.PropDataSize = 0
 | 
 |  |  |         self.PropData = ""
 | 
 |  |  |         self.ItemDataSize = 0
 | 
 |  |  |         self.ItemData = ""
 | 
 |  |  |         self.PlusDataSize = 0
 | 
 |  |  |         self.PlusData = ""
 | 
 |  |  |         self.IsLogouting = 0
 | 
 |  |  |         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 = ""
 | 
 |  |  |         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)
 | 
 |  |  | 
 | 
 |  |  |         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)
 | 
 |  |  |         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
 | 
 |  |  |                                 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
 | 
 |  |  |                                 '''\
 | 
 |  |  |                                 %(
 | 
 |  |  |                                 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.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
 | 
 |  |  |                                 )
 | 
 |  |  |         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
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | #------------------------------------------------------
 |