From d2d8ca57a661abb973550f35b8112b5078c1defb Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 16 十二月 2024 15:27:39 +0800
Subject: [PATCH] 10297 【越南】【英语】【砍树】【tqxbqy】轮回殿-服务端(奖励类型增加类型3 - 消耗物品,目前支持坐骑经验丹、灵宠经验丹)
---
Tool/RobotTest/Protocol/PacketsReceived.py | 638 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 432 insertions(+), 206 deletions(-)
diff --git a/Tool/RobotTest/Protocol/PacketsReceived.py b/Tool/RobotTest/Protocol/PacketsReceived.py
index 94eb581..f67e2b9 100644
--- a/Tool/RobotTest/Protocol/PacketsReceived.py
+++ b/Tool/RobotTest/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])//家族名称
@@ -1028,7 +1028,7 @@
BackpackLV = 0 #(BYTE BackpackLV)//背包等级
WarehouseLV = 0 #(BYTE WarehouseLV)//仓库等级
TeamID = 0 #(DWORD TeamID)//队伍ID
- UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
+ UseGoldType = 0 #(BYTE UseGoldType)//默认用金子/金票 类型为MoneyType
UseSilverType = 0 #(BYTE UseSilverType)//默认用的银子/银票
AttackMode = 0 #(BYTE AttackMode)//攻击模式
LastWeekOnlineTime = 0 #(DWORD LastWeekOnlineTime)//上周在线时间
@@ -1062,6 +1062,15 @@
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)//预留的扩展属性字段,用来存放项目特定的属性
+ HPEx = 0 #(DWORD HPEx)//当前血量 超过E的记录
+ Face = 0 #(DWORD Face)//基本脸型
+ RoleType = 0 #(DWORD RoleType)//角色类型(各项目可自定义含义,如种族,与职业区分)
data = None
def __init__(self):
@@ -1084,7 +1093,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 +1172,15 @@
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)
+ self.HPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.RoleType,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -1260,6 +1278,15 @@
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
+ self.HPEx = 0
+ self.Face = 0
+ self.RoleType = 0
return
def GetLength(self):
@@ -1276,7 +1303,7 @@
length += 2
length += 2
length += 2
- length += 2
+ length += 4
length += 4
length += 4
length += 33
@@ -1355,6 +1382,15 @@
length += 4
length += 15
length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
return length
@@ -1372,7 +1408,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 +1487,15 @@
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)
+ data = CommFunc.WriteDWORD(data, self.HPEx)
+ data = CommFunc.WriteDWORD(data, self.Face)
+ data = CommFunc.WriteDWORD(data, self.RoleType)
return data
def OutputString(self):
@@ -1545,7 +1590,16 @@
ExAttr14:%d,
OperateInfo:%d,
Operate:%s,
- ServerID:%d
+ ServerID:%d,
+ ExAttr15:%d,
+ ExAttr16:%d,
+ ExAttr17:%d,
+ ExAttr18:%d,
+ ExAttr19:%d,
+ ExAttr20:%d,
+ HPEx:%d,
+ Face:%d,
+ RoleType:%d
'''\
%(
self.Head.OutputString(),
@@ -1638,7 +1692,16 @@
self.ExAttr14,
self.OperateInfo,
self.Operate,
- self.ServerID
+ self.ServerID,
+ self.ExAttr15,
+ self.ExAttr16,
+ self.ExAttr17,
+ self.ExAttr18,
+ self.ExAttr19,
+ self.ExAttr20,
+ self.HPEx,
+ self.Face,
+ self.RoleType
)
return DumpString
@@ -2549,6 +2612,70 @@
m_NAtagCheckSecurityCardResult=tagCheckSecurityCardResult()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCheckSecurityCardResult.Cmd,m_NAtagCheckSecurityCardResult.SubCmd))] = m_NAtagCheckSecurityCardResult
+
+
+#------------------------------------------------------
+#01 32 创角成功 #tagCreateRoleSucess
+
+class tagCreateRoleSucess(Structure):
+ Head = tagHead()
+ PlayerID = 0 #(DWORD PlayerID)
+ PlayerName = "" #(char PlayerName[33])
+ data = None
+
+ def __init__(self):
+ self.Clear()
+ self.Head.Cmd = 0x01
+ self.Head.SubCmd = 0x32
+ 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)
+ return _pos
+
+ def Clear(self):
+ self.Head = tagHead()
+ self.Head.Clear()
+ self.Head.Cmd = 0x01
+ self.Head.SubCmd = 0x32
+ self.PlayerID = 0
+ self.PlayerName = ""
+ return
+
+ def GetLength(self):
+ length = 0
+ length += self.Head.GetLength()
+ length += 4
+ length += 33
+
+ 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)
+ return data
+
+ def OutputString(self):
+ DumpString = '''
+ Head:%s,
+ PlayerID:%d,
+ PlayerName:%s
+ '''\
+ %(
+ self.Head.OutputString(),
+ self.PlayerID,
+ self.PlayerName
+ )
+ return DumpString
+
+
+m_NAtagCreateRoleSucess=tagCreateRoleSucess()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCreateRoleSucess.Head.Cmd,m_NAtagCreateRoleSucess.Head.SubCmd))] = m_NAtagCreateRoleSucess
#------------------------------------------------------
@@ -5783,7 +5910,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("StartYear", c_ushort), #年, 如果填写0, 就隐藏此窗口
+ ("StartYear", c_ushort), #年, 如果填写0, 就隐藏此窗口
("StartMonth", c_ushort), #月
("StartDate", c_ubyte), #日
("EndYear", c_ushort),
@@ -5915,7 +6042,7 @@
PlayerID = 0 #(DWORD PlayerID)
FamilyNameLen = 0 #(BYTE FamilyNameLen)
FamilyName = "" #(String FamilyName)//size = FamilyNameLen
- FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//玩家在家族中的职位
+ FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//玩家在家族中的职位
data = None
def __init__(self):
@@ -6543,6 +6670,7 @@
GradID = 0 #(DWORD GradID)//头衔ID
State = 0 #(BYTE State)//装备和使用状态 按位判定,第一位0未装备1已装备 第二位0未使用 1使用
CreateTime = "" #(char CreateTime[30])//获得时间
+ ExpireTime = 0 #(DWORD ExpireTime)// 持续时间,0为配表固定时间
data = None
def __init__(self):
@@ -6554,12 +6682,14 @@
self.GradID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.State,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30)
+ self.ExpireTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
self.GradID = 0
self.State = 0
self.CreateTime = ""
+ self.ExpireTime = 0
return
def GetLength(self):
@@ -6567,6 +6697,7 @@
length += 4
length += 1
length += 30
+ length += 4
return length
@@ -6575,18 +6706,21 @@
data = CommFunc.WriteDWORD(data, self.GradID)
data = CommFunc.WriteBYTE(data, self.State)
data = CommFunc.WriteString(data, 30, self.CreateTime)
+ data = CommFunc.WriteDWORD(data, self.ExpireTime)
return data
def OutputString(self):
DumpString = '''
GradID:%d,
State:%d,
- CreateTime:%s
+ CreateTime:%s,
+ ExpireTime:%d
'''\
%(
self.GradID,
self.State,
- self.CreateTime
+ self.CreateTime,
+ self.ExpireTime
)
return DumpString
@@ -6664,6 +6798,7 @@
Head = tagHead()
GradID = 0 #(DWORD GradID)//头衔ID
CreateTime = "" #(char CreateTime[30])//获得时间
+ ExpireTime = 0 #(DWORD ExpireTime)// 持续时间,0为配表固定时间
data = None
def __init__(self):
@@ -6677,6 +6812,7 @@
_pos = self.Head.ReadData(_lpData, _pos)
self.GradID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.CreateTime,_pos = CommFunc.ReadString(_lpData, _pos,30)
+ self.ExpireTime,_pos = CommFunc.ReadDWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -6686,6 +6822,7 @@
self.Head.SubCmd = 0x36
self.GradID = 0
self.CreateTime = ""
+ self.ExpireTime = 0
return
def GetLength(self):
@@ -6693,6 +6830,7 @@
length += self.Head.GetLength()
length += 4
length += 30
+ length += 4
return length
@@ -6701,18 +6839,21 @@
data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
data = CommFunc.WriteDWORD(data, self.GradID)
data = CommFunc.WriteString(data, 30, self.CreateTime)
+ data = CommFunc.WriteDWORD(data, self.ExpireTime)
return data
def OutputString(self):
DumpString = '''
Head:%s,
GradID:%d,
- CreateTime:%s
+ CreateTime:%s,
+ ExpireTime:%d
'''\
%(
self.Head.OutputString(),
self.GradID,
- self.CreateTime
+ self.CreateTime,
+ self.ExpireTime
)
return DumpString
@@ -6941,67 +7082,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
@@ -7017,6 +7127,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):
@@ -7040,6 +7160,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):
@@ -7056,6 +7186,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):
@@ -7071,6 +7211,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
@@ -7087,6 +7237,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):
@@ -7100,7 +7260,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(),
@@ -7112,7 +7282,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
@@ -7864,7 +8044,7 @@
class tagFBEventList(Structure):
Head = tagHead()
EventCount = 0 #(BYTE EventCount)//副本活动数
- EventList = list() #(vector<tagFBEventDetail> EventList)//副本活动列表
+ EventList = list() #(vector<tagFBEventDetail> EventList)//副本活动列表
data = None
def __init__(self):
@@ -8403,67 +8583,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
@@ -8530,11 +8679,14 @@
ReincarnationLv = 0 #(WORD ReincarnationLv)
LV = 0 #(WORD LV)//等级
Job = 0 #(BYTE Job)
+ Face = 0 #(DWORD Face)
TeamLV = 0 #(BYTE TeamLV)//组队等级
TeamID = 0 #(DWORD TeamID)//组队ID
HP = 0 #(DWORD HP)
+ HPEx = 0 #(DWORD HPEx)
MaxHP = 0 #(DWORD MaxHP)
- PlayerState = 0 #(BYTE PlayerState)//TClientPlayerState 玩家状态 打坐/马上/人镖合一
+ MaxHPEx = 0 #(DWORD MaxHPEx)
+ PlayerState = 0 #(BYTE PlayerState)//TClientPlayerState 玩家状态 打坐/马上/人镖合一
IsHideMask = 0 #(BYTE IsHideMask)
Country = 0 #(BYTE Country)//玩家国家
FamilyID = 0 #(DWORD FamilyID)//家族ID
@@ -8561,6 +8713,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):
@@ -8581,10 +8739,13 @@
self.ReincarnationLv,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.LV,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.Job,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+ self.Face,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.TeamLV,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.TeamID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.HPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.MaxHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlayerState,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.IsHideMask,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.Country,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -8618,6 +8779,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):
@@ -8634,10 +8801,13 @@
self.ReincarnationLv = 0
self.LV = 0
self.Job = 0
+ self.Face = 0
self.TeamLV = 0
self.TeamID = 0
self.HP = 0
+ self.HPEx = 0
self.MaxHP = 0
+ self.MaxHPEx = 0
self.PlayerState = 0
self.IsHideMask = 0
self.Country = 0
@@ -8665,6 +8835,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):
@@ -8679,7 +8855,10 @@
length += 2
length += 2
length += 1
+ length += 4
length += 1
+ length += 4
+ length += 4
length += 4
length += 4
length += 4
@@ -8712,6 +8891,12 @@
length += 4
length += 4
length += 1
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
+ length += 4
return length
@@ -8727,10 +8912,13 @@
data = CommFunc.WriteWORD(data, self.ReincarnationLv)
data = CommFunc.WriteWORD(data, self.LV)
data = CommFunc.WriteBYTE(data, self.Job)
+ data = CommFunc.WriteDWORD(data, self.Face)
data = CommFunc.WriteBYTE(data, self.TeamLV)
data = CommFunc.WriteDWORD(data, self.TeamID)
data = CommFunc.WriteDWORD(data, self.HP)
+ data = CommFunc.WriteDWORD(data, self.HPEx)
data = CommFunc.WriteDWORD(data, self.MaxHP)
+ data = CommFunc.WriteDWORD(data, self.MaxHPEx)
data = CommFunc.WriteBYTE(data, self.PlayerState)
data = CommFunc.WriteBYTE(data, self.IsHideMask)
data = CommFunc.WriteBYTE(data, self.Country)
@@ -8760,6 +8948,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):
@@ -8774,10 +8968,13 @@
ReincarnationLv:%d,
LV:%d,
Job:%d,
+ Face:%d,
TeamLV:%d,
TeamID:%d,
HP:%d,
+ HPEx:%d,
MaxHP:%d,
+ MaxHPEx:%d,
PlayerState:%d,
IsHideMask:%d,
Country:%d,
@@ -8804,7 +9001,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(),
@@ -8817,10 +9020,13 @@
self.ReincarnationLv,
self.LV,
self.Job,
+ self.Face,
self.TeamLV,
self.TeamID,
self.HP,
+ self.HPEx,
self.MaxHP,
+ self.MaxHPEx,
self.PlayerState,
self.IsHideMask,
self.Country,
@@ -8847,7 +9053,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
@@ -9554,6 +9766,7 @@
("PlayerID", c_int), # 主人ID
("PosX", c_int), # X坐标
("PosY", c_int), # Y坐标
+ ("Rank", c_ubyte), #阶段
]
def __init__(self):
@@ -9575,6 +9788,7 @@
self.PlayerID = 0
self.PosX = 0
self.PosY = 0
+ self.Rank = 0
return
def GetLength(self):
@@ -9591,7 +9805,8 @@
NPCID:%d,
PlayerID:%d,
PosX:%d,
- PosY:%d
+ PosY:%d,
+ Rank:%d
'''\
%(
self.Cmd,
@@ -9600,7 +9815,8 @@
self.NPCID,
self.PlayerID,
self.PosX,
- self.PosY
+ self.PosY,
+ self.Rank
)
return DumpString
@@ -9619,8 +9835,9 @@
("SubCmd", c_ubyte),
("ObjID", c_int),
("ObjType", c_ubyte),
- ("RefreshType", c_ubyte),
+ ("RefreshType", c_ushort),
("Value", c_int),
+ ("ValueEx", c_int),
]
def __init__(self):
@@ -9641,6 +9858,7 @@
self.ObjType = 0
self.RefreshType = 0
self.Value = 0
+ self.ValueEx = 0
return
def GetLength(self):
@@ -9656,7 +9874,8 @@
ObjID:%d,
ObjType:%d,
RefreshType:%d,
- Value:%d
+ Value:%d,
+ ValueEx:%d
'''\
%(
self.Cmd,
@@ -9664,7 +9883,8 @@
self.ObjID,
self.ObjType,
self.RefreshType,
- self.Value
+ self.Value,
+ self.ValueEx
)
return DumpString
@@ -9900,7 +10120,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
- ("FamilyMemberLV", c_ubyte), #玩家在家族中的职位
+ ("FamilyMemberLV", c_ubyte), #玩家在家族中的职位
]
def __init__(self):
@@ -9948,7 +10168,7 @@
#------------------------------------------------------
-#04 36 周围玩家家族名刷新#tagPlayerFamilyNameRefresh
+#04 36 周围玩家家族名刷新#tagPlayerFamilyNameRefresh
class tagPlayerFamilyNameRefresh(Structure):
Head = tagHead()
@@ -10026,7 +10246,7 @@
PlayerID = 0 #(DWORD PlayerID)
FamilyNameLen = 0 #(BYTE FamilyNameLen)
FamilyName = "" #(String FamilyName)//size = FamilyNameLen
- FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//玩家在家族中的职位
+ FamilyMemberLV = 0 #(BYTE FamilyMemberLV)//玩家在家族中的职位
data = None
def __init__(self):
@@ -10456,6 +10676,7 @@
("ObjType", c_ubyte), #对象类型
("SkillID", c_int), #技能ID
("DiffValue", c_int), #值
+ ("DiffValueEx", c_int), #超亿值
("AttackType", c_ubyte), #攻击类型
("SrcObjID", c_int), #飘血来源
("SrcObjType", c_ubyte),
@@ -10481,6 +10702,7 @@
self.ObjType = 0
self.SkillID = 0
self.DiffValue = 0
+ self.DiffValueEx = 0
self.AttackType = 0
self.SrcObjID = 0
self.SrcObjType = 0
@@ -10502,6 +10724,7 @@
ObjType:%d,
SkillID:%d,
DiffValue:%d,
+ DiffValueEx:%d,
AttackType:%d,
SrcObjID:%d,
SrcObjType:%d,
@@ -10515,6 +10738,7 @@
self.ObjType,
self.SkillID,
self.DiffValue,
+ self.DiffValueEx,
self.AttackType,
self.SrcObjID,
self.SrcObjType,
@@ -10656,7 +10880,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
@@ -10681,7 +10905,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
@@ -10721,7 +10945,7 @@
length += 4
length += 4
length += 2
- length += 1
+ length += 2
length += 1
length += len(self.OwnerName)
@@ -10741,7 +10965,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
@@ -10786,74 +11010,6 @@
m_NAtagPlayerSummonNPCAppear=tagPlayerSummonNPCAppear()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagPlayerSummonNPCAppear.Head.Cmd,m_NAtagPlayerSummonNPCAppear.Head.SubCmd))] = m_NAtagPlayerSummonNPCAppear
-
-
-#------------------------------------------------------
-#04 40 周围对象刷新(支持大数值) #tagObjInfoRefreshEx
-
-class tagObjInfoRefreshEx(Structure):
- _pack_ = 1
- _fields_ = [
- ("Cmd", c_ubyte),
- ("SubCmd", c_ubyte),
- ("ObjID", c_int),
- ("ObjType", c_ubyte),
- ("RefreshType", c_ubyte),
- ("Value", c_int),
- ("ValueEx", c_int),
- ]
-
- def __init__(self):
- self.Clear()
- self.Cmd = 0x04
- self.SubCmd = 0x40
- return
-
- def ReadData(self, stringData, _pos=0, _len=0):
- self.Clear()
- memmove(addressof(self), stringData[_pos:], self.GetLength())
- return _pos + self.GetLength()
-
- def Clear(self):
- self.Cmd = 0x04
- self.SubCmd = 0x40
- self.ObjID = 0
- self.ObjType = 0
- self.RefreshType = 0
- self.Value = 0
- self.ValueEx = 0
- return
-
- def GetLength(self):
- return sizeof(tagObjInfoRefreshEx)
-
- def GetBuffer(self):
- return string_at(addressof(self), self.GetLength())
-
- def OutputString(self):
- DumpString = '''//04 40 周围对象刷新(支持大数值) //tagObjInfoRefreshEx:
- Cmd:%s,
- SubCmd:%s,
- ObjID:%d,
- ObjType:%d,
- RefreshType:%d,
- Value:%d,
- ValueEx:%d
- '''\
- %(
- self.Cmd,
- self.SubCmd,
- self.ObjID,
- self.ObjType,
- self.RefreshType,
- self.Value,
- self.ValueEx
- )
- return DumpString
-
-
-m_NAtagObjInfoRefreshEx=tagObjInfoRefreshEx()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagObjInfoRefreshEx.Cmd,m_NAtagObjInfoRefreshEx.SubCmd))] = m_NAtagObjInfoRefreshEx
#------------------------------------------------------
@@ -10993,6 +11149,7 @@
NPCID = 0 #(DWORD NPCID)
NPCFaceDir = 0 #(WORD NPCFaceDir)//NPC的面向
NPCHP = 0 #(DWORD NPCHP)
+ NPCHPEx = 0 #(DWORD NPCHPEx)
NPCEventType = 0 #(WORD NPCEventType)//0 攻击 1 事件
IsActive = 0 #(BYTE IsActive)//这个NPC是否活着
PosX = 0 #(WORD PosX)
@@ -11017,6 +11174,7 @@
self.NPCID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.NPCFaceDir,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.NPCHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.NPCHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.NPCEventType,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.IsActive,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.PosX,_pos = CommFunc.ReadWORD(_lpData, _pos)
@@ -11037,6 +11195,7 @@
self.NPCID = 0
self.NPCFaceDir = 0
self.NPCHP = 0
+ self.NPCHPEx = 0
self.NPCEventType = 0
self.IsActive = 0
self.PosX = 0
@@ -11054,6 +11213,7 @@
length += 4
length += 4
length += 2
+ length += 4
length += 4
length += 2
length += 1
@@ -11074,6 +11234,7 @@
data = CommFunc.WriteDWORD(data, self.NPCID)
data = CommFunc.WriteWORD(data, self.NPCFaceDir)
data = CommFunc.WriteDWORD(data, self.NPCHP)
+ data = CommFunc.WriteDWORD(data, self.NPCHPEx)
data = CommFunc.WriteWORD(data, self.NPCEventType)
data = CommFunc.WriteBYTE(data, self.IsActive)
data = CommFunc.WriteWORD(data, self.PosX)
@@ -11092,6 +11253,7 @@
NPCID:%d,
NPCFaceDir:%d,
NPCHP:%d,
+ NPCHPEx:%d,
NPCEventType:%d,
IsActive:%d,
PosX:%d,
@@ -11108,6 +11270,7 @@
self.NPCID,
self.NPCFaceDir,
self.NPCHP,
+ self.NPCHPEx,
self.NPCEventType,
self.IsActive,
self.PosX,
@@ -12350,6 +12513,7 @@
("ObjType", c_ubyte), #对象类型
("AttackType", c_ubyte), #普攻, 闪躲, 致命 类型
("Value", c_int),
+ ("ValueEx", c_int),
("RemainHP", c_int), #对方剩余的血
("RemainHPEx", c_int), #对方剩余的血, 超亿支持
]
@@ -12375,6 +12539,7 @@
self.ObjType = 0
self.AttackType = 0
self.Value = 0
+ self.ValueEx = 0
self.RemainHP = 0
self.RemainHPEx = 0
return
@@ -12396,6 +12561,7 @@
ObjType:%d,
AttackType:%d,
Value:%d,
+ ValueEx:%d,
RemainHP:%d,
RemainHPEx:%d
'''\
@@ -12409,6 +12575,7 @@
self.ObjType,
self.AttackType,
self.Value,
+ self.ValueEx,
self.RemainHP,
self.RemainHPEx
)
@@ -12428,6 +12595,8 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
+ ("KillerID", c_int),
+ ("KillerType", c_ubyte),
]
def __init__(self):
@@ -12445,6 +12614,8 @@
self.Cmd = 0x06
self.SubCmd = 0x09
self.PlayerID = 0
+ self.KillerID = 0
+ self.KillerType = 0
return
def GetLength(self):
@@ -12457,12 +12628,16 @@
DumpString = '''//06 09 玩家死亡//tagPlayerDie:
Cmd:%s,
SubCmd:%s,
- PlayerID:%d
+ PlayerID:%d,
+ KillerID:%d,
+ KillerType:%d
'''\
%(
self.Cmd,
self.SubCmd,
- self.PlayerID
+ self.PlayerID,
+ self.KillerID,
+ self.KillerType
)
return DumpString
@@ -12545,6 +12720,7 @@
("ObjID", c_int),
("AttackType", c_ubyte), #爆击, miss
("HurtHP", c_int),
+ ("HurtHPEx", c_int),
("CurHP", c_int),
("CurHPEx", c_int),
]
@@ -12563,6 +12739,7 @@
self.ObjID = 0
self.AttackType = 0
self.HurtHP = 0
+ self.HurtHPEx = 0
self.CurHP = 0
self.CurHPEx = 0
return
@@ -12579,6 +12756,7 @@
ObjID:%d,
AttackType:%d,
HurtHP:%d,
+ HurtHPEx:%d,
CurHP:%d,
CurHPEx:%d
'''\
@@ -12587,6 +12765,7 @@
self.ObjID,
self.AttackType,
self.HurtHP,
+ self.HurtHPEx,
self.CurHP,
self.CurHPEx
)
@@ -12711,6 +12890,7 @@
("ObjID", c_int),
("AttackType", c_ubyte), #爆击, miss
("HurtHP", c_int),
+ ("HurtHPEx", c_int),
("CurHP", c_int),
("CurHPEx", c_int),
]
@@ -12729,6 +12909,7 @@
self.ObjID = 0
self.AttackType = 0
self.HurtHP = 0
+ self.HurtHPEx = 0
self.CurHP = 0
self.CurHPEx = 0
return
@@ -12745,6 +12926,7 @@
ObjID:%d,
AttackType:%d,
HurtHP:%d,
+ HurtHPEx:%d,
CurHP:%d,
CurHPEx:%d
'''\
@@ -12753,6 +12935,7 @@
self.ObjID,
self.AttackType,
self.HurtHP,
+ self.HurtHPEx,
self.CurHP,
self.CurHPEx
)
@@ -12769,6 +12952,7 @@
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):
@@ -12791,6 +12975,7 @@
temHurtList = tagSkillPosHurtObj()
_pos = temHurtList.ReadData(_lpData, _pos)
self.HurtList.append(temHurtList)
+ self.SkillElementID,_pos = CommFunc.ReadWORD(_lpData, _pos)
return _pos
def Clear(self):
@@ -12806,6 +12991,7 @@
self.PosY = 0
self.HurtCount = 0
self.HurtList = list()
+ self.SkillElementID = 0
return
def GetLength(self):
@@ -12820,6 +13006,7 @@
length += 2
for i in range(self.HurtCount):
length += self.HurtList[i].GetLength()
+ length += 2
return length
@@ -12835,6 +13022,7 @@
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):
@@ -12847,7 +13035,8 @@
PosX:%d,
PosY:%d,
HurtCount:%d,
- HurtList:%s
+ HurtList:%s,
+ SkillElementID:%d
'''\
%(
self.Head.OutputString(),
@@ -12858,7 +13047,8 @@
self.PosX,
self.PosY,
self.HurtCount,
- "..."
+ "...",
+ self.SkillElementID
)
return DumpString
@@ -13362,7 +13552,7 @@
ByObjID = 0 #(DWORD ByObjID)//物品原本在哪个对象身上
DropTick = 0 #(DWORD DropTick)//物品掉落Tick
UserDataLen = 0 #(WORD UserDataLen)//附加属性长度
- UserData = "" #(String UserData)//附加属性 size = UserDataLen
+ UserData = "" #(String UserData)//附加属性 size = UserDataLen
data = None
def __init__(self):
@@ -13780,7 +13970,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("MakeType", c_ubyte), #类型 TMakeItemType
+ ("MakeType", c_ubyte), #类型 TMakeItemType
("Result", c_ubyte), #是否成功
]
@@ -14868,7 +15058,7 @@
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
("PlayerID", c_int),
- ("PrepareState", c_ubyte), #准备类型, TPreparingState
+ ("PrepareState", c_ubyte), #准备类型, TPreparingState
("MaxTime", c_int), #最大时间
("PrepareID", c_int), #准备ID, 如果是技能, 则是技能ID
]
@@ -18409,7 +18599,9 @@
LVEx = 0 #(WORD LVEx)//玩家等级副本,用于转生
LV2 = 0 #(WORD LV2)//大师等级
HP = 0 #(DWORD HP)
+ HPEx = 0 #(DWORD HPEx)
MaxHP = 0 #(DWORD MaxHP)
+ MaxHPEx = 0 #(DWORD MaxHPEx)
MP = 0 #(DWORD MP)
MaxMP = 0 #(DWORD MaxMP)
PlayerType = 0 #(BYTE PlayerType)//五行
@@ -18442,7 +18634,9 @@
self.LVEx,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.LV2,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.HPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.MaxHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.MP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.MaxMP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PlayerType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
@@ -18471,7 +18665,9 @@
self.LVEx = 0
self.LV2 = 0
self.HP = 0
+ self.HPEx = 0
self.MaxHP = 0
+ self.MaxHPEx = 0
self.MP = 0
self.MaxMP = 0
self.PlayerType = 0
@@ -18501,6 +18697,8 @@
length += 4
length += 4
length += 4
+ length += 4
+ length += 4
length += 1
length += 1
length += 1
@@ -18526,7 +18724,9 @@
data = CommFunc.WriteWORD(data, self.LVEx)
data = CommFunc.WriteWORD(data, self.LV2)
data = CommFunc.WriteDWORD(data, self.HP)
+ data = CommFunc.WriteDWORD(data, self.HPEx)
data = CommFunc.WriteDWORD(data, self.MaxHP)
+ data = CommFunc.WriteDWORD(data, self.MaxHPEx)
data = CommFunc.WriteDWORD(data, self.MP)
data = CommFunc.WriteDWORD(data, self.MaxMP)
data = CommFunc.WriteBYTE(data, self.PlayerType)
@@ -18553,7 +18753,9 @@
LVEx:%d,
LV2:%d,
HP:%d,
+ HPEx:%d,
MaxHP:%d,
+ MaxHPEx:%d,
MP:%d,
MaxMP:%d,
PlayerType:%d,
@@ -18578,7 +18780,9 @@
self.LVEx,
self.LV2,
self.HP,
+ self.HPEx,
self.MaxHP,
+ self.MaxHPEx,
self.MP,
self.MaxMP,
self.PlayerType,
@@ -18605,7 +18809,9 @@
("PlayerID", c_int),
("LV", c_ushort),
("HP", c_int),
+ ("HPEx", c_int),
("MaxHP", c_int),
+ ("MaxHPEx", c_int),
("MP", c_int),
("MaxMP", c_int),
]
@@ -18627,7 +18833,9 @@
self.PlayerID = 0
self.LV = 0
self.HP = 0
+ self.HPEx = 0
self.MaxHP = 0
+ self.MaxHPEx = 0
self.MP = 0
self.MaxMP = 0
return
@@ -18645,7 +18853,9 @@
PlayerID:%d,
LV:%d,
HP:%d,
+ HPEx:%d,
MaxHP:%d,
+ MaxHPEx:%d,
MP:%d,
MaxMP:%d
'''\
@@ -18655,7 +18865,9 @@
self.PlayerID,
self.LV,
self.HP,
+ self.HPEx,
self.MaxHP,
+ self.MaxHPEx,
self.MP,
self.MaxMP
)
@@ -20387,7 +20599,7 @@
FamilyName = "" #(String FamilyName)//size = FamilyNameLen
Job = 0 #(BYTE Job)//职业
FamilyActiveValue = 0 #(DWORD FamilyActiveValue)//本周家族活跃度
- LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//上周家族活跃度
+ LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//上周家族活跃度
OfficialRank = 0 #(BYTE OfficialRank)//境界
Exattr1 = 0 #(DWORD Exattr1)//扩展属性
Exattr2 = 0 #(DWORD Exattr2)//扩展属性
@@ -20551,7 +20763,7 @@
Point = 0 #(DWORD Point)//家族战积分
Broadcast = "" #(String Broadcast)//size = BroadcastLen
FamilyActiveValue = 0 #(DWORD FamilyActiveValue)//本周家族活跃度
- LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//上周家族活跃度
+ LastWeekFamilyActiveValue = 0 #(DWORD LastWeekFamilyActiveValue)//上周家族活跃度
Member = list() #(vector<tagRoleFamilyMember> Member)//size = MemberCount
Extra1 = 0 #(DWORD Extra1)//附加字段1
Extra2 = 0 #(DWORD Extra2)//附加字段2
@@ -21728,7 +21940,7 @@
class tagFamilyTechInfo(Structure):
Head = tagHead()
TechCount = 0 #(WORD TechCount)//帮会科技数量
- TechInfoList = list() #(vector<tagTechInfo> TechInfoList)//科技信息列表
+ TechInfoList = list() #(vector<tagTechInfo> TechInfoList)//科技信息列表
data = None
def __init__(self):
@@ -22059,7 +22271,7 @@
#10 01 排行榜信息#tagBillboard 对性能影响比较大, 需要限制tick
class tagBillboardList(Structure):
- ID = 0 #(DWORD ID)// 不一定都能用上,目前用于保存宠物NPCID
+ ID = 0 #(DWORD ID)// 不一定都能用上,目前用于保存宠物NPCID
Name1 = "" #(char Name1[33])//名字1,用来显示排序对象名字
Name2 = "" #(char Name2[33])//名字2
Type2 = 0 #(BYTE Type2)//附加类型,用来表示排序对象的类型,比如,玩家所属职业门派,宠物类型等
@@ -23525,7 +23737,7 @@
MakerNameLen = 0 #(BYTE MakerNameLen)//制造者名字
MakerName = "" #(String MakerName)//size = MakerNameLen
UserDataLen = 0 #(DWORD UserDataLen)
- UserData = "" #(String UserData)//自定义数据
+ UserData = "" #(String UserData)//自定义数据
data = None
def __init__(self):
@@ -24125,7 +24337,7 @@
("SubCmd", c_ubyte),
("Type", c_ubyte), #答题类型
("QuestionNO", c_ushort), # 答题号
- ("FunctionNO", c_ubyte), # 功能号
+ ("FunctionNO", c_ubyte), # 功能号
("FunctionOpt1", c_ubyte), #功能选项1
("FunctionOpt2", c_ubyte), #功能选项2
("FunctionOpt3", c_ubyte), #功能选项3
@@ -25822,7 +26034,9 @@
CON = 0 #(DWORD CON)//体魄
LeftPoints = 0 #(WORD LeftPoints)//潜力,即剩余点数
HP = 0 #(DWORD HP)// 当前气血
+ HPEx = 0 #(DWORD HPEx)// 当前气血 超亿
MaxHP = 0 #(DWORD MaxHP)// 最大气血
+ MaxHPEx = 0 #(DWORD MaxHPEx)// 最大气血 超亿
PhysicAtk = 0 #(DWORD PhysicAtk)// 外功
PhysicDef = 0 #(DWORD PhysicDef)// 外防
MagicAtk = 0 #(DWORD MagicAtk)// 内攻
@@ -25892,7 +26106,9 @@
self.CON,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.LeftPoints,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.HP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.HPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.MaxHP,_pos = CommFunc.ReadDWORD(_lpData, _pos)
+ self.MaxHPEx,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PhysicAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.PhysicDef,_pos = CommFunc.ReadDWORD(_lpData, _pos)
self.MagicAtk,_pos = CommFunc.ReadDWORD(_lpData, _pos)
@@ -25960,7 +26176,9 @@
self.CON = 0
self.LeftPoints = 0
self.HP = 0
+ self.HPEx = 0
self.MaxHP = 0
+ self.MaxHPEx = 0
self.PhysicAtk = 0
self.PhysicDef = 0
self.MagicAtk = 0
@@ -26031,6 +26249,8 @@
length += 4
length += 4
length += 4
+ length += 4
+ length += 4
length += 1
for i in range(self.SkillListCnt):
length += self.SkillList[i].GetLength()
@@ -26094,7 +26314,9 @@
data = CommFunc.WriteDWORD(data, self.CON)
data = CommFunc.WriteWORD(data, self.LeftPoints)
data = CommFunc.WriteDWORD(data, self.HP)
+ data = CommFunc.WriteDWORD(data, self.HPEx)
data = CommFunc.WriteDWORD(data, self.MaxHP)
+ data = CommFunc.WriteDWORD(data, self.MaxHPEx)
data = CommFunc.WriteDWORD(data, self.PhysicAtk)
data = CommFunc.WriteDWORD(data, self.PhysicDef)
data = CommFunc.WriteDWORD(data, self.MagicAtk)
@@ -26161,7 +26383,9 @@
CON:%d,
LeftPoints:%d,
HP:%d,
+ HPEx:%d,
MaxHP:%d,
+ MaxHPEx:%d,
PhysicAtk:%d,
PhysicDef:%d,
MagicAtk:%d,
@@ -26225,7 +26449,9 @@
self.CON,
self.LeftPoints,
self.HP,
+ self.HPEx,
self.MaxHP,
+ self.MaxHPEx,
self.PhysicAtk,
self.PhysicDef,
self.MagicAtk,
@@ -26814,8 +27040,8 @@
("PlayerID", c_int), #挂单玩家的id
("FormID", c_int), # 挂单ID
("UnitPrice", c_int), #该单购买元宝的银两单价(每组)
- ("LefGold", c_int), #该单的剩余购买元宝组数
- ("LeftTime", c_ushort), #该单的剩余在架时间
+ ("LefGold", c_int), #该单的剩余购买元宝组数
+ ("LeftTime", c_ushort), #该单的剩余在架时间
]
def __init__(self):
@@ -26949,7 +27175,7 @@
("SubCmd", c_ubyte),
("FormID", c_int), # 挂单ID
("UnitPrice", c_int), #该单购买元宝的银两单价(每组)
- ("LefGold", c_int), #该单的剩余购买元宝组数
+ ("LefGold", c_int), #该单的剩余购买元宝组数
("LeftTime", c_ushort), #该单的剩余在架时间
]
@@ -27238,7 +27464,7 @@
_fields_ = [
("Cmd", c_ubyte),
("SubCmd", c_ubyte),
- ("LabelID", c_int), # 删除标签
+ ("LabelID", c_int), # 删除标签
]
def __init__(self):
@@ -28479,7 +28705,7 @@
class tagHightLadderTopPlayerList(Structure):
Head = tagHead()
Size = 0 #(BYTE Size)
- PlayerList = list() #(vector<tagHightLadderPlayerInfo> PlayerList)//玩家信息列表
+ PlayerList = list() #(vector<tagHightLadderPlayerInfo> PlayerList)//玩家信息列表
data = None
def __init__(self):
@@ -28741,7 +28967,7 @@
class tagVsTeam(Structure):
TeamIndex = 0 #(BYTE TeamIndex)// 竞技队Index
MemberCount = 0 #(WORD MemberCount)// 成员人数
- Members = list() #(vector<tagVsMemberInfo> Members)// 成员列表
+ Members = list() #(vector<tagVsMemberInfo> Members)// 成员列表
data = None
def __init__(self):
@@ -28868,7 +29094,7 @@
Head = tagHead()
MyOrder = 0 #(WORD MyOrder)//自身排名
Size = 0 #(BYTE Size)
- PlayerList = list() #(vector<tagHightLadderPlayerInfo> PlayerList)//玩家信息列表
+ PlayerList = list() #(vector<tagHightLadderPlayerInfo> PlayerList)//玩家信息列表
data = None
def __init__(self):
@@ -29041,7 +29267,7 @@
class tagBourseItem(Structure):
ItemGUID = "" #(char ItemGUID[40])
- PlayerID = 0 #(DWORD PlayerID)//挂单玩家ID
+ PlayerID = 0 #(DWORD PlayerID)//挂单玩家ID
ItemTypeID = 0 #(DWORD ItemTypeID)//物品ID
PriceType = 0 #(BYTE PriceType)//出售价格类型
PriceCount = 0 #(DWORD PriceCount)//出售价格
--
Gitblit v1.8.0