From 23876f36a929f7e8f1fe94ae543b03bc24a61f1e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 25 二月 2025 20:24:08 +0800
Subject: [PATCH] 10263 【越南】【英文】【BT】【GM】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(镜像回收时同步清除地图中缓存的镜像被动buff效果;)
---
Tool/Robot/Protocol/PacketsReceived.py | 318 +++++++++++++++++++++++++++++++++++-----------------
1 files changed, 214 insertions(+), 104 deletions(-)
diff --git a/Tool/Robot/Protocol/PacketsReceived.py b/Tool/Robot/Protocol/PacketsReceived.py
index fe93a7f..350658f 100644
--- a/Tool/Robot/Protocol/PacketsReceived.py
+++ b/Tool/Robot/Protocol/PacketsReceived.py
@@ -983,7 +983,7 @@
LV = 0 #(WORD LV)//等级
LVEx = 0 #(WORD LVEx)//玩家等级副本,用于转生
LV2 = 0 #(WORD LV2)//大师等级
- ExpPoint = 0 #(WORD ExpPoint)//扩充经验点数
+ ExpPoint = 0 #(DWORD ExpPoint)//扩充经验点数
TotalExp = 0 #(DWORD TotalExp)//总经验
Family = 0 #(DWORD Family)//家族
FamilyName = "" #(char FamilyName[33])//家族名称
@@ -1062,6 +1062,12 @@
OperateInfo = 0 #(DWORD OperateInfo)//玩家附加运营商信息
Operate = "" #(char Operate[15])//所属运营商平台名
ServerID = 0 #(DWORD ServerID)//所属区服ID
+ ExAttr15 = 0 #(DWORD ExAttr15)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr16 = 0 #(DWORD ExAttr16)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr17 = 0 #(DWORD ExAttr17)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr18 = 0 #(DWORD ExAttr18)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr19 = 0 #(DWORD ExAttr19)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr20 = 0 #(DWORD ExAttr20)//预留的扩展属性字段,用来存放项目特定的属性
data = None
def __init__(self):
@@ -1084,7 +1090,7 @@
self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.LVEx,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.LV2,_pos = CommFunc.ReadWORD(_lpData, _pos)
- self.ExpPoint,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.ExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.TotalExp,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.Family,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.FamilyName,_pos = CommFunc.ReadString(_lpData, _pos,33)
@@ -1163,6 +1169,12 @@
self.OperateInfo,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.Operate,_pos = CommFunc.ReadString(_lpData, _pos,15)
self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr15,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr16,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr17,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr18,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr19,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr20,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -1260,6 +1272,12 @@
self.OperateInfo = 0
self.Operate = ""
self.ServerID = 0
+ self.ExAttr15 = 0
+ self.ExAttr16 = 0
+ self.ExAttr17 = 0
+ self.ExAttr18 = 0
+ self.ExAttr19 = 0
+ self.ExAttr20 = 0
return
def GetLength(self):
@@ -1276,7 +1294,7 @@
length += 2
length += 2
length += 2
- length += 2
+ length += 4
length += 4
length += 4
length += 33
@@ -1355,6 +1373,12 @@
length += 4
length += 15
length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
return length
@@ -1372,7 +1396,7 @@
data = CommFunc.WriteWORD(data, self.LV)
data = CommFunc.WriteWORD(data, self.LVEx)
data = CommFunc.WriteWORD(data, self.LV2)
- data = CommFunc.WriteWORD(data, self.ExpPoint)
+ data = CommFunc.WriteDWORD(data, self.ExpPoint)
data = CommFunc.WriteDWORD(data, self.TotalExp)
data = CommFunc.WriteDWORD(data, self.Family)
data = CommFunc.WriteString(data, 33, self.FamilyName)
@@ -1451,6 +1475,12 @@
data = CommFunc.WriteDWORD(data, self.OperateInfo)
data = CommFunc.WriteString(data, 15, self.Operate)
data = CommFunc.WriteDWORD(data, self.ServerID)
+ data = CommFunc.WriteDWORD(data, self.ExAttr15)
+ data = CommFunc.WriteDWORD(data, self.ExAttr16)
+ data = CommFunc.WriteDWORD(data, self.ExAttr17)
+ data = CommFunc.WriteDWORD(data, self.ExAttr18)
+ data = CommFunc.WriteDWORD(data, self.ExAttr19)
+ data = CommFunc.WriteDWORD(data, self.ExAttr20)
return data
def OutputString(self):
@@ -1545,7 +1575,13 @@
ExAttr14:%d,
OperateInfo:%d,
Operate:%s,
- ServerID:%d
+ ServerID:%d,
+ ExAttr15:%d,
+ ExAttr16:%d,
+ ExAttr17:%d,
+ ExAttr18:%d,
+ ExAttr19:%d,
+ ExAttr20:%d
'''\
%(
self.Head.OutputString(),
@@ -1638,7 +1674,13 @@
self.ExAttr14,
self.OperateInfo,
self.Operate,
- self.ServerID
+ self.ServerID,
+ self.ExAttr15,
+ self.ExAttr16,
+ self.ExAttr17,
+ self.ExAttr18,
+ self.ExAttr19,
+ self.ExAttr20
)
return DumpString
@@ -7019,67 +7061,36 @@
#03 09 主角登录时候的简短信息#tagPlayerLoginInfo
class tagLoginInfoEquip(Structure):
- ItemPlace = 0 #(BYTE ItemPlace)
- ItemID = 0 #(DWORD ItemID)
- IsSuite = 0 #(BYTE IsSuite)//是否已经套装化
- UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)//size = UserDataLen
- data = None
+ _pack_ = 1
+ _fields_ = [
+ ("ItemID", c_int),
+ ]
def __init__(self):
self.Clear()
return
- def ReadData(self, _lpData, _pos=0, _Len=0):
+ def ReadData(self, stringData, _pos=0, _len=0):
self.Clear()
- self.ItemPlace,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- return _pos
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
def Clear(self):
- self.ItemPlace = 0
self.ItemID = 0
- self.IsSuite = 0
- self.UserDataLen = 0
- self.UserData = ""
return
def GetLength(self):
- length = 0
- length += 1
- length += 4
- length += 1
- length += 4
- length += len(self.UserData)
-
- return length
+ return sizeof(tagLoginInfoEquip)
def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.ItemPlace)
- data = CommFunc.WriteDWORD(data, self.ItemID)
- data = CommFunc.WriteBYTE(data, self.IsSuite)
- data = CommFunc.WriteDWORD(data, self.UserDataLen)
- data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- return data
+ return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''
- ItemPlace:%d,
- ItemID:%d,
- IsSuite:%d,
- UserDataLen:%d,
- UserData:%s
+ DumpString = '''//03 09 主角登录时候的简短信息//tagPlayerLoginInfo:
+ ItemID:%d
'''\
%(
- self.ItemPlace,
- self.ItemID,
- self.IsSuite,
- self.UserDataLen,
- self.UserData
+ self.ItemID
)
return DumpString
@@ -7095,6 +7106,16 @@
EquipCount = 0 #(BYTE EquipCount)
EquipInfo = list() #(vector<tagLoginInfoEquip> EquipInfo)//size = EquipCount
EquipShowSwitch = 0 #(DWORD EquipShowSwitch)//玩家装备显示开关
+ ExAttr15 = 0 #(DWORD ExAttr15)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr16 = 0 #(DWORD ExAttr16)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr17 = 0 #(DWORD ExAttr17)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr18 = 0 #(DWORD ExAttr18)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr19 = 0 #(DWORD ExAttr19)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr20 = 0 #(DWORD ExAttr20)//预留的扩展属性字段,用来存放项目特定的属性
+ IPLen = 0 #(BYTE IPLen)
+ IP = "" #(String IP)// 跨服IP
+ Port = 0 #(WORD Port)// 跨服端口
+ CrossState = 0 #(BYTE CrossState)// 跨服状态0-非跨服状态,1-跨服状态,2-跨服状态异常
data = None
def __init__(self):
@@ -7118,6 +7139,16 @@
_pos = temEquipInfo.ReadData(_lpData, _pos)
self.EquipInfo.append(temEquipInfo)
self.EquipShowSwitch,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr15,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr16,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr17,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr18,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr19,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr20,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.IPLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.IP,_pos = CommFunc.ReadString(_lpData, _pos,self.IPLen)
+ self.Port,_pos = CommFunc.ReadWORD(_lpData, _pos)
+ self.CrossState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
return _pos
def Clear(self):
@@ -7134,6 +7165,16 @@
self.EquipCount = 0
self.EquipInfo = list()
self.EquipShowSwitch = 0
+ self.ExAttr15 = 0
+ self.ExAttr16 = 0
+ self.ExAttr17 = 0
+ self.ExAttr18 = 0
+ self.ExAttr19 = 0
+ self.ExAttr20 = 0
+ self.IPLen = 0
+ self.IP = ""
+ self.Port = 0
+ self.CrossState = 0
return
def GetLength(self):
@@ -7149,6 +7190,16 @@
for i in range(self.EquipCount):
length += self.EquipInfo[i].GetLength()
length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 1
+ length += len(self.IP)
+ length += 2
+ length += 1
return length
@@ -7165,6 +7216,16 @@
for i in range(self.EquipCount):
data = CommFunc.WriteString(data, self.EquipInfo[i].GetLength(), self.EquipInfo[i].GetBuffer())
data = CommFunc.WriteDWORD(data, self.EquipShowSwitch)
+ data = CommFunc.WriteDWORD(data, self.ExAttr15)
+ data = CommFunc.WriteDWORD(data, self.ExAttr16)
+ data = CommFunc.WriteDWORD(data, self.ExAttr17)
+ data = CommFunc.WriteDWORD(data, self.ExAttr18)
+ data = CommFunc.WriteDWORD(data, self.ExAttr19)
+ data = CommFunc.WriteDWORD(data, self.ExAttr20)
+ data = CommFunc.WriteBYTE(data, self.IPLen)
+ data = CommFunc.WriteString(data, self.IPLen, self.IP)
+ data = CommFunc.WriteWORD(data, self.Port)
+ data = CommFunc.WriteBYTE(data, self.CrossState)
return data
def OutputString(self):
@@ -7178,7 +7239,17 @@
HavePswLV2:%d,
EquipCount:%d,
EquipInfo:%s,
- EquipShowSwitch:%d
+ EquipShowSwitch:%d,
+ ExAttr15:%d,
+ ExAttr16:%d,
+ ExAttr17:%d,
+ ExAttr18:%d,
+ ExAttr19:%d,
+ ExAttr20:%d,
+ IPLen:%d,
+ IP:%s,
+ Port:%d,
+ CrossState:%d
'''\
%(
self.Head.OutputString(),
@@ -7190,7 +7261,17 @@
self.HavePswLV2,
self.EquipCount,
"...",
- self.EquipShowSwitch
+ self.EquipShowSwitch,
+ self.ExAttr15,
+ self.ExAttr16,
+ self.ExAttr17,
+ self.ExAttr18,
+ self.ExAttr19,
+ self.ExAttr20,
+ self.IPLen,
+ self.IP,
+ self.Port,
+ self.CrossState
)
return DumpString
@@ -8481,67 +8562,36 @@
#04 34 周围玩家出现合并封包#tagAreaPlayerAppearEx
class tagEquipInfo(Structure):
- Place = 0 #(BYTE Place)//装备位置
- ItemID = 0 #(DWORD ItemID)//物品ID
- IsSuite = 0 #(BYTE IsSuite)//是否已经套装化
- UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)// 附加数据
- data = None
+ _pack_ = 1
+ _fields_ = [
+ ("ItemID", c_int), #物品ID
+ ]
def __init__(self):
self.Clear()
return
- def ReadData(self, _lpData, _pos=0, _Len=0):
+ def ReadData(self, stringData, _pos=0, _len=0):
self.Clear()
- self.Place,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.ItemID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.IsSuite,_pos = CommFunc.ReadBYTE(_lpData, _pos)
- self.UserDataLen,_pos = CommFunc.ReadDWORD(_lpData, _pos)
- self.UserData,_pos = CommFunc.ReadString(_lpData, _pos,self.UserDataLen)
- return _pos
+ memmove(addressof(self), stringData[_pos:], self.GetLength())
+ return _pos + self.GetLength()
def Clear(self):
- self.Place = 0
self.ItemID = 0
- self.IsSuite = 0
- self.UserDataLen = 0
- self.UserData = ""
return
def GetLength(self):
- length = 0
- length += 1
- length += 4
- length += 1
- length += 4
- length += len(self.UserData)
-
- return length
+ return sizeof(tagEquipInfo)
def GetBuffer(self):
- data = ''
- data = CommFunc.WriteBYTE(data, self.Place)
- data = CommFunc.WriteDWORD(data, self.ItemID)
- data = CommFunc.WriteBYTE(data, self.IsSuite)
- data = CommFunc.WriteDWORD(data, self.UserDataLen)
- data = CommFunc.WriteString(data, self.UserDataLen, self.UserData)
- return data
+ return string_at(addressof(self), self.GetLength())
def OutputString(self):
- DumpString = '''
- Place:%d,
- ItemID:%d,
- IsSuite:%d,
- UserDataLen:%d,
- UserData:%s
+ DumpString = '''//04 34 周围玩家出现合并封包//tagAreaPlayerAppearEx:
+ ItemID:%d
'''\
%(
- self.Place,
- self.ItemID,
- self.IsSuite,
- self.UserDataLen,
- self.UserData
+ self.ItemID
)
return DumpString
@@ -8639,6 +8689,12 @@
ExAttr5 = 0 #(DWORD ExAttr5)//预留的扩展属性字段,用来存放项目特定的属性
ServerID = 0 #(DWORD ServerID)//所属区服ID
State = 0 #(BYTE State)// 0.正常在线1.脱机挂在线 2脱机挂死亡
+ ExAttr15 = 0 #(DWORD ExAttr15)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr16 = 0 #(DWORD ExAttr16)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr17 = 0 #(DWORD ExAttr17)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr18 = 0 #(DWORD ExAttr18)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr19 = 0 #(DWORD ExAttr19)//预留的扩展属性字段,用来存放项目特定的属性
+ ExAttr20 = 0 #(DWORD ExAttr20)//预留的扩展属性字段,用来存放项目特定的属性
data = None
def __init__(self):
@@ -8696,6 +8752,12 @@
self.ExAttr5,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.ServerID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.ExAttr15,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr16,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr17,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr18,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr19,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.ExAttr20,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -8743,6 +8805,12 @@
self.ExAttr5 = 0
self.ServerID = 0
self.State = 0
+ self.ExAttr15 = 0
+ self.ExAttr16 = 0
+ self.ExAttr17 = 0
+ self.ExAttr18 = 0
+ self.ExAttr19 = 0
+ self.ExAttr20 = 0
return
def GetLength(self):
@@ -8790,6 +8858,12 @@
length += 4
length += 4
length += 1
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
return length
@@ -8838,6 +8912,12 @@
data = CommFunc.WriteDWORD(data, self.ExAttr5)
data = CommFunc.WriteDWORD(data, self.ServerID)
data = CommFunc.WriteBYTE(data, self.State)
+ data = CommFunc.WriteDWORD(data, self.ExAttr15)
+ data = CommFunc.WriteDWORD(data, self.ExAttr16)
+ data = CommFunc.WriteDWORD(data, self.ExAttr17)
+ data = CommFunc.WriteDWORD(data, self.ExAttr18)
+ data = CommFunc.WriteDWORD(data, self.ExAttr19)
+ data = CommFunc.WriteDWORD(data, self.ExAttr20)
return data
def OutputString(self):
@@ -8882,7 +8962,13 @@
ExAttr4:%d,
ExAttr5:%d,
ServerID:%d,
- State:%d
+ State:%d,
+ ExAttr15:%d,
+ ExAttr16:%d,
+ ExAttr17:%d,
+ ExAttr18:%d,
+ ExAttr19:%d,
+ ExAttr20:%d
'''\
%(
self.Head.OutputString(),
@@ -8925,7 +9011,13 @@
self.ExAttr4,
self.ExAttr5,
self.ServerID,
- self.State
+ self.State,
+ self.ExAttr15,
+ self.ExAttr16,
+ self.ExAttr17,
+ self.ExAttr18,
+ self.ExAttr19,
+ self.ExAttr20
)
return DumpString
@@ -9632,6 +9724,7 @@
("PlayerID", c_int), # 主人ID
("PosX", c_int), # X坐标
("PosY", c_int), # Y坐标
+ ("Rank", c_ubyte), #阶段
]
def __init__(self):
@@ -9653,6 +9746,7 @@
self.PlayerID = 0
self.PosX = 0
self.PosY = 0
+ self.Rank = 0
return
def GetLength(self):
@@ -9669,7 +9763,8 @@
NPCID:%d,
PlayerID:%d,
PosX:%d,
- PosY:%d
+ PosY:%d,
+ Rank:%d
'''\
%(
self.Cmd,
@@ -9678,7 +9773,8 @@
self.NPCID,
self.PlayerID,
self.PosX,
- self.PosY
+ self.PosY,
+ self.Rank
)
return DumpString
@@ -10734,7 +10830,7 @@
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
@@ -10759,7 +10855,7 @@
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
@@ -10799,7 +10895,7 @@
length += 4
length += 4
length += 2
- length += 1
+ length += 2
length += 1
length += len(self.OwnerName)
@@ -10819,7 +10915,7 @@
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
@@ -12851,10 +12947,12 @@
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):
@@ -12870,6 +12968,7 @@
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)
@@ -12877,6 +12976,7 @@
temHurtList = tagSkillPosHurtObj()
_pos = temHurtList.ReadData(_lpData, _pos)
self.HurtList.append(temHurtList)
+ self.SkillElementID,_pos = CommFunc.ReadWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -12888,10 +12988,12 @@
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):
@@ -12904,8 +13006,10 @@
length += 2
length += 2
length += 2
+ length += 2
for i in range(self.HurtCount):
length += self.HurtList[i].GetLength()
+ length += 2
return length
@@ -12916,11 +13020,13 @@
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):
@@ -12930,10 +13036,12 @@
ObjType:%d,
BattleType:%d,
SkillID:%d,
+ SkillIDEx:%d,
PosX:%d,
PosY:%d,
HurtCount:%d,
- HurtList:%s
+ HurtList:%s,
+ SkillElementID:%d
'''\
%(
self.Head.OutputString(),
@@ -12941,10 +13049,12 @@
self.ObjType,
self.BattleType,
self.SkillID,
+ self.SkillIDEx,
self.PosX,
self.PosY,
self.HurtCount,
- "..."
+ "...",
+ self.SkillElementID
)
return DumpString
--
Gitblit v1.8.0