|  |  | 
 |  |  |                   ("PlayerID", c_int),    # 主人ID
 | 
 |  |  |                   ("PosX", c_int),    # X坐标
 | 
 |  |  |                   ("PosY", c_int),    # Y坐标
 | 
 |  |  |                   ("Rank", c_ubyte),    #阶段
 | 
 |  |  |                   ]
 | 
 |  |  | 
 | 
 |  |  |     def __init__(self):
 | 
 |  |  | 
 |  |  |         self.PlayerID = 0
 | 
 |  |  |         self.PosX = 0
 | 
 |  |  |         self.PosY = 0
 | 
 |  |  |         self.Rank = 0
 | 
 |  |  |         return
 | 
 |  |  | 
 | 
 |  |  |     def GetLength(self):
 | 
 |  |  | 
 |  |  |                                 NPCID:%d,
 | 
 |  |  |                                 PlayerID:%d,
 | 
 |  |  |                                 PosX:%d,
 | 
 |  |  |                                 PosY:%d
 | 
 |  |  |                                 PosY:%d,
 | 
 |  |  |                                 Rank:%d
 | 
 |  |  |                                 '''\
 | 
 |  |  |                                 %(
 | 
 |  |  |                                 self.Cmd,
 | 
 |  |  | 
 |  |  |                                 self.NPCID,
 | 
 |  |  |                                 self.PlayerID,
 | 
 |  |  |                                 self.PosX,
 | 
 |  |  |                                 self.PosY
 | 
 |  |  |                                 self.PosY,
 | 
 |  |  |                                 self.Rank
 | 
 |  |  |                                 )
 | 
 |  |  |         return DumpString
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |     MaxHP = 0    #(DWORD MaxHP)
 | 
 |  |  |     MaxHPEx = 0    #(DWORD MaxHPEx)
 | 
 |  |  |     Speed = 0    #(WORD Speed)
 | 
 |  |  |     LV = 0    #(BYTE LV)
 | 
 |  |  |     LV = 0    #(WORD LV)
 | 
 |  |  |     OwnerNameLen = 0    #(BYTE OwnerNameLen)
 | 
 |  |  |     OwnerName = ""    #(String OwnerName)//size = OwnerNameLen
 | 
 |  |  |     data = None
 | 
 |  |  | 
 |  |  |         self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
 | 
 |  |  |         self.MaxHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
 | 
 |  |  |         self.Speed,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.LV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.OwnerNameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.OwnerName,_pos = CommFunc.ReadString(_lpData, _pos,self.OwnerNameLen)
 | 
 |  |  |         return _pos
 | 
 |  |  | 
 |  |  |         length += 4
 | 
 |  |  |         length += 4
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += 1
 | 
 |  |  |         length += len(self.OwnerName)
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.MaxHP)
 | 
 |  |  |         data = CommFunc.WriteDWORD(data, self.MaxHPEx)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.Speed)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.LV)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.LV)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.OwnerNameLen)
 | 
 |  |  |         data = CommFunc.WriteString(data, self.OwnerNameLen, self.OwnerName)
 | 
 |  |  |         return data
 | 
 |  |  | 
 |  |  |     ObjType = 0    #(BYTE ObjType)
 | 
 |  |  |     BattleType = 0    #(BYTE BattleType)//物理/魔法
 | 
 |  |  |     SkillID = 0    #(WORD SkillID)
 | 
 |  |  |     SkillIDEx = 0    #(WORD SkillIDEx)
 | 
 |  |  |     PosX = 0    #(WORD PosX)
 | 
 |  |  |     PosY = 0    #(WORD PosY)
 | 
 |  |  |     HurtCount = 0    #(WORD HurtCount)//伤害数目
 | 
 |  |  |     HurtList = list()    #(vector<tagSkillPosHurtObj> HurtList)//size = HurtCount
 | 
 |  |  |     SkillElementID = 0    #(WORD SkillElementID)//专精技能ID     | 
 |  |  |     data = None
 | 
 |  |  | 
 | 
 |  |  |     def __init__(self):
 | 
 |  |  | 
 |  |  |         self.ObjType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.BattleType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
 | 
 |  |  |         self.SkillID,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.SkillIDEx,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.PosY,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         self.HurtCount,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  | 
 |  |  |             temHurtList = tagSkillPosHurtObj()
 | 
 |  |  |             _pos = temHurtList.ReadData(_lpData, _pos)
 | 
 |  |  |             self.HurtList.append(temHurtList)
 | 
 |  |  |         self.SkillElementID,_pos = CommFunc.ReadWORD(_lpData, _pos)
 | 
 |  |  |         return _pos
 | 
 |  |  | 
 | 
 |  |  |     def Clear(self):
 | 
 |  |  | 
 |  |  |         self.ObjType = 0
 | 
 |  |  |         self.BattleType = 0
 | 
 |  |  |         self.SkillID = 0
 | 
 |  |  |         self.SkillIDEx = 0
 | 
 |  |  |         self.PosX = 0
 | 
 |  |  |         self.PosY = 0
 | 
 |  |  |         self.HurtCount = 0
 | 
 |  |  |         self.HurtList = list()
 | 
 |  |  |         self.SkillElementID = 0
 | 
 |  |  |         return
 | 
 |  |  | 
 | 
 |  |  |     def GetLength(self):
 | 
 |  |  | 
 |  |  |         length += 2
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += 2
 | 
 |  |  |         length += 2
 | 
 |  |  |         for i in range(self.HurtCount):
 | 
 |  |  |             length += self.HurtList[i].GetLength()
 | 
 |  |  |         length += 2
 | 
 |  |  | 
 | 
 |  |  |         return length
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.ObjType)
 | 
 |  |  |         data = CommFunc.WriteBYTE(data, self.BattleType)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.SkillID)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.SkillIDEx)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.PosX)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.PosY)
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.HurtCount)
 | 
 |  |  |         for i in range(self.HurtCount):
 | 
 |  |  |             data = CommFunc.WriteString(data, self.HurtList[i].GetLength(), self.HurtList[i].GetBuffer())
 | 
 |  |  |         data = CommFunc.WriteWORD(data, self.SkillElementID)
 | 
 |  |  |         return data
 | 
 |  |  | 
 | 
 |  |  |     def OutputString(self):
 | 
 |  |  | 
 |  |  |                                 ObjType:%d,
 | 
 |  |  |                                 BattleType:%d,
 | 
 |  |  |                                 SkillID:%d,
 | 
 |  |  |                                 SkillIDEx:%d,
 | 
 |  |  |                                 PosX:%d,
 | 
 |  |  |                                 PosY:%d,
 | 
 |  |  |                                 HurtCount:%d,
 | 
 |  |  |                                 HurtList:%s
 | 
 |  |  |                                 HurtList:%s,
 | 
 |  |  |                                 SkillElementID:%d
 | 
 |  |  |                                 '''\
 | 
 |  |  |                                 %(
 | 
 |  |  |                                 self.Head.OutputString(),
 | 
 |  |  | 
 |  |  |                                 self.ObjType,
 | 
 |  |  |                                 self.BattleType,
 | 
 |  |  |                                 self.SkillID,
 | 
 |  |  |                                 self.SkillIDEx,
 | 
 |  |  |                                 self.PosX,
 | 
 |  |  |                                 self.PosY,
 | 
 |  |  |                                 self.HurtCount,
 | 
 |  |  |                                 "..."
 | 
 |  |  |                                 "...",
 | 
 |  |  |                                 self.SkillElementID
 | 
 |  |  |                                 )
 | 
 |  |  |         return DumpString
 | 
 |  |  | 
 |