From 07404bf456b40111afa9f46e67236b4ef1b76e5d Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期一, 20 五月 2024 15:54:50 +0800 Subject: [PATCH] 0312 封包同步 --- Tool/RobotTest/Protocol/PacketsReceived.py | 212 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 130 insertions(+), 82 deletions(-) diff --git a/Tool/RobotTest/Protocol/PacketsReceived.py b/Tool/RobotTest/Protocol/PacketsReceived.py index 4a6de90..f67e2b9 100644 --- a/Tool/RobotTest/Protocol/PacketsReceived.py +++ b/Tool/RobotTest/Protocol/PacketsReceived.py @@ -1068,6 +1068,9 @@ 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): @@ -1175,6 +1178,9 @@ 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): @@ -1278,6 +1284,9 @@ self.ExAttr18 = 0 self.ExAttr19 = 0 self.ExAttr20 = 0 + self.HPEx = 0 + self.Face = 0 + self.RoleType = 0 return def GetLength(self): @@ -1372,6 +1381,9 @@ length += 4 length += 4 length += 15 + length += 4 + length += 4 + length += 4 length += 4 length += 4 length += 4 @@ -1481,6 +1493,9 @@ 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): @@ -1581,7 +1596,10 @@ ExAttr17:%d, ExAttr18:%d, ExAttr19:%d, - ExAttr20:%d + ExAttr20:%d, + HPEx:%d, + Face:%d, + RoleType:%d '''\ %( self.Head.OutputString(), @@ -1680,7 +1698,10 @@ self.ExAttr17, self.ExAttr18, self.ExAttr19, - self.ExAttr20 + self.ExAttr20, + self.HPEx, + self.Face, + self.RoleType ) return DumpString @@ -8658,10 +8679,13 @@ 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) + MaxHPEx = 0 #(DWORD MaxHPEx) PlayerState = 0 #(BYTE PlayerState)//TClientPlayerState 玩家状态 打坐/马上/人镖合一 IsHideMask = 0 #(BYTE IsHideMask) Country = 0 #(BYTE Country)//玩家国家 @@ -8715,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) @@ -8774,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 @@ -8825,7 +8855,10 @@ length += 2 length += 2 length += 1 + length += 4 length += 1 + length += 4 + length += 4 length += 4 length += 4 length += 4 @@ -8879,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) @@ -8932,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, @@ -8981,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, @@ -9724,6 +9766,7 @@ ("PlayerID", c_int), # 主人ID ("PosX", c_int), # X坐标 ("PosY", c_int), # Y坐标 + ("Rank", c_ubyte), #阶段 ] def __init__(self): @@ -9745,6 +9788,7 @@ self.PlayerID = 0 self.PosX = 0 self.PosY = 0 + self.Rank = 0 return def GetLength(self): @@ -9761,7 +9805,8 @@ NPCID:%d, PlayerID:%d, PosX:%d, - PosY:%d + PosY:%d, + Rank:%d '''\ %( self.Cmd, @@ -9770,7 +9815,8 @@ self.NPCID, self.PlayerID, self.PosX, - self.PosY + self.PosY, + self.Rank ) return DumpString @@ -9789,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): @@ -9811,6 +9858,7 @@ self.ObjType = 0 self.RefreshType = 0 self.Value = 0 + self.ValueEx = 0 return def GetLength(self): @@ -9826,7 +9874,8 @@ ObjID:%d, ObjType:%d, RefreshType:%d, - Value:%d + Value:%d, + ValueEx:%d '''\ %( self.Cmd, @@ -9834,7 +9883,8 @@ self.ObjID, self.ObjType, self.RefreshType, - self.Value + self.Value, + self.ValueEx ) return DumpString @@ -10626,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), @@ -10651,6 +10702,7 @@ self.ObjType = 0 self.SkillID = 0 self.DiffValue = 0 + self.DiffValueEx = 0 self.AttackType = 0 self.SrcObjID = 0 self.SrcObjType = 0 @@ -10672,6 +10724,7 @@ ObjType:%d, SkillID:%d, DiffValue:%d, + DiffValueEx:%d, AttackType:%d, SrcObjID:%d, SrcObjType:%d, @@ -10685,6 +10738,7 @@ self.ObjType, self.SkillID, self.DiffValue, + self.DiffValueEx, self.AttackType, self.SrcObjID, self.SrcObjType, @@ -10826,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 @@ -10851,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 @@ -10891,7 +10945,7 @@ length += 4 length += 4 length += 2 - length += 1 + length += 2 length += 1 length += len(self.OwnerName) @@ -10911,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 @@ -10956,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 #------------------------------------------------------ @@ -11163,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) @@ -11187,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) @@ -11207,6 +11195,7 @@ self.NPCID = 0 self.NPCFaceDir = 0 self.NPCHP = 0 + self.NPCHPEx = 0 self.NPCEventType = 0 self.IsActive = 0 self.PosX = 0 @@ -11224,6 +11213,7 @@ length += 4 length += 4 length += 2 + length += 4 length += 4 length += 2 length += 1 @@ -11244,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) @@ -11262,6 +11253,7 @@ NPCID:%d, NPCFaceDir:%d, NPCHP:%d, + NPCHPEx:%d, NPCEventType:%d, IsActive:%d, PosX:%d, @@ -11278,6 +11270,7 @@ self.NPCID, self.NPCFaceDir, self.NPCHP, + self.NPCHPEx, self.NPCEventType, self.IsActive, self.PosX, @@ -12520,6 +12513,7 @@ ("ObjType", c_ubyte), #对象类型 ("AttackType", c_ubyte), #普攻, 闪躲, 致命 类型 ("Value", c_int), + ("ValueEx", c_int), ("RemainHP", c_int), #对方剩余的血 ("RemainHPEx", c_int), #对方剩余的血, 超亿支持 ] @@ -12545,6 +12539,7 @@ self.ObjType = 0 self.AttackType = 0 self.Value = 0 + self.ValueEx = 0 self.RemainHP = 0 self.RemainHPEx = 0 return @@ -12566,6 +12561,7 @@ ObjType:%d, AttackType:%d, Value:%d, + ValueEx:%d, RemainHP:%d, RemainHPEx:%d '''\ @@ -12579,6 +12575,7 @@ self.ObjType, self.AttackType, self.Value, + self.ValueEx, self.RemainHP, self.RemainHPEx ) @@ -12723,6 +12720,7 @@ ("ObjID", c_int), ("AttackType", c_ubyte), #爆击, miss ("HurtHP", c_int), + ("HurtHPEx", c_int), ("CurHP", c_int), ("CurHPEx", c_int), ] @@ -12741,6 +12739,7 @@ self.ObjID = 0 self.AttackType = 0 self.HurtHP = 0 + self.HurtHPEx = 0 self.CurHP = 0 self.CurHPEx = 0 return @@ -12757,6 +12756,7 @@ ObjID:%d, AttackType:%d, HurtHP:%d, + HurtHPEx:%d, CurHP:%d, CurHPEx:%d '''\ @@ -12765,6 +12765,7 @@ self.ObjID, self.AttackType, self.HurtHP, + self.HurtHPEx, self.CurHP, self.CurHPEx ) @@ -12889,6 +12890,7 @@ ("ObjID", c_int), ("AttackType", c_ubyte), #爆击, miss ("HurtHP", c_int), + ("HurtHPEx", c_int), ("CurHP", c_int), ("CurHPEx", c_int), ] @@ -12907,6 +12909,7 @@ self.ObjID = 0 self.AttackType = 0 self.HurtHP = 0 + self.HurtHPEx = 0 self.CurHP = 0 self.CurHPEx = 0 return @@ -12923,6 +12926,7 @@ ObjID:%d, AttackType:%d, HurtHP:%d, + HurtHPEx:%d, CurHP:%d, CurHPEx:%d '''\ @@ -12931,6 +12935,7 @@ self.ObjID, self.AttackType, self.HurtHP, + self.HurtHPEx, self.CurHP, self.CurHPEx ) @@ -12947,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): @@ -12969,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): @@ -12984,6 +12991,7 @@ self.PosY = 0 self.HurtCount = 0 self.HurtList = list() + self.SkillElementID = 0 return def GetLength(self): @@ -12998,6 +13006,7 @@ length += 2 for i in range(self.HurtCount): length += self.HurtList[i].GetLength() + length += 2 return length @@ -13013,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): @@ -13025,7 +13035,8 @@ PosX:%d, PosY:%d, HurtCount:%d, - HurtList:%s + HurtList:%s, + SkillElementID:%d '''\ %( self.Head.OutputString(), @@ -13036,7 +13047,8 @@ self.PosX, self.PosY, self.HurtCount, - "..." + "...", + self.SkillElementID ) return DumpString @@ -18587,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)//五行 @@ -18620,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) @@ -18649,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 @@ -18679,6 +18697,8 @@ length += 4 length += 4 length += 4 + length += 4 + length += 4 length += 1 length += 1 length += 1 @@ -18704,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) @@ -18731,7 +18753,9 @@ LVEx:%d, LV2:%d, HP:%d, + HPEx:%d, MaxHP:%d, + MaxHPEx:%d, MP:%d, MaxMP:%d, PlayerType:%d, @@ -18756,7 +18780,9 @@ self.LVEx, self.LV2, self.HP, + self.HPEx, self.MaxHP, + self.MaxHPEx, self.MP, self.MaxMP, self.PlayerType, @@ -18783,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), ] @@ -18805,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 @@ -18823,7 +18853,9 @@ PlayerID:%d, LV:%d, HP:%d, + HPEx:%d, MaxHP:%d, + MaxHPEx:%d, MP:%d, MaxMP:%d '''\ @@ -18833,7 +18865,9 @@ self.PlayerID, self.LV, self.HP, + self.HPEx, self.MaxHP, + self.MaxHPEx, self.MP, self.MaxMP ) @@ -26000,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)// 内攻 @@ -26070,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) @@ -26138,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 @@ -26209,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() @@ -26272,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) @@ -26339,7 +26383,9 @@ CON:%d, LeftPoints:%d, HP:%d, + HPEx:%d, MaxHP:%d, + MaxHPEx:%d, PhysicAtk:%d, PhysicDef:%d, MagicAtk:%d, @@ -26403,7 +26449,9 @@ self.CON, self.LeftPoints, self.HP, + self.HPEx, self.MaxHP, + self.MaxHPEx, self.PhysicAtk, self.PhysicDef, self.MagicAtk, @@ -29606,4 +29654,4 @@ m_NAtagGMCmdAnswer=tagGMCmdAnswer() -ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMCmdAnswer.Head.Cmd,m_NAtagGMCmdAnswer.Head.SubCmd))] = m_NAtagGMCmdAnswer +ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGMCmdAnswer.Head.Cmd,m_NAtagGMCmdAnswer.Head.SubCmd))] = m_NAtagGMCmdAnswer \ No newline at end of file -- Gitblit v1.8.0