From 1a0ad714b01722f0a1c9bc4777b8e0d11ed15e01 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 04 五月 2021 23:11:13 +0800
Subject: [PATCH] 0312 同步脚本

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ChinNPC.py |    1 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py |   13 ++-
 ServerPython/CoreServerGroup/GameServer/Script/IPY_Player.py                       |    1 
 ServerPython/CoreServerGroup/GameServer/Script/IPY_MapServerToGameServer.py        |    1 
 Tool/数据库/ChangeAccount/Collections/DataServerPlayerData.py                         |  203 +++++++++++++++++++++++++++++++++++++++++++++++---
 5 files changed, 200 insertions(+), 19 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IPY_MapServerToGameServer.py b/ServerPython/CoreServerGroup/GameServer/Script/IPY_MapServerToGameServer.py
index 3e1a87a..81a6849 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IPY_MapServerToGameServer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IPY_MapServerToGameServer.py
@@ -366,6 +366,7 @@
     __repr__ = _swig_repr
     def GetType(self): return _IPY_MapServerToGameServer.IPY_GRefreshPlayerProperty_GetType(self)
     def GetValue(self): return _IPY_MapServerToGameServer.IPY_GRefreshPlayerProperty_GetValue(self)
+    def GetValueEx(self): return _IPY_MapServerToGameServer.IPY_GRefreshPlayerProperty_GetValueEx(self)
     def __init__(self): 
         this = _IPY_MapServerToGameServer.new_IPY_GRefreshPlayerProperty()
         try: self.this.append(this)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IPY_Player.py b/ServerPython/CoreServerGroup/GameServer/Script/IPY_Player.py
index 27410b2..355c36d 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/IPY_Player.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/IPY_Player.py
@@ -287,6 +287,7 @@
     def GetLVEx(self): return _IPY_Player.IPY_Player_GetLVEx(self)
     def GetLV2(self): return _IPY_Player.IPY_Player_GetLV2(self)
     def GetFightPower(self): return _IPY_Player.IPY_Player_GetFightPower(self)
+    def GetFightPowerEx(self): return _IPY_Player.IPY_Player_GetFightPowerEx(self)
     def GetOfficialRank(self): return _IPY_Player.IPY_Player_GetOfficialRank(self)
     def GetCountry(self): return _IPY_Player.IPY_Player_GetCountry(self)
     def GetCreateRoleTime(self): return _IPY_Player.IPY_Player_GetCreateRoleTime(self)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ChinNPC.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ChinNPC.py
index 9a7e3f9..8fe5dba 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ChinNPC.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_ChinNPC.py
@@ -323,7 +323,6 @@
     def SetMoveArea(self, *args): return _IPY_ChinNPC.IPY_NPCData_SetMoveArea(self, *args)
     def SetAttentionRefreshID(self, *args): return _IPY_ChinNPC.IPY_NPCData_SetAttentionRefreshID(self, *args)
     def SetHP(self, *args): return _IPY_ChinNPC.IPY_NPCData_SetHP(self, *args)
-    def SetHPEx(self, *args): return _IPY_ChinNPC.IPY_NPCData_SetHPEx(self, *args)
     def SetHPRestore(self, *args): return _IPY_ChinNPC.IPY_NPCData_SetHPRestore(self, *args)
     def SetEventArea(self, *args): return _IPY_ChinNPC.IPY_NPCData_SetEventArea(self, *args)
     def SetIsBoss(self, *args): return _IPY_ChinNPC.IPY_NPCData_SetIsBoss(self, *args)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py
index 5a2e429..4b47e32 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IPY_GameObj.py
@@ -288,6 +288,7 @@
     def GetObjID(self): return _IPY_GameObj.IPY_HurtObj_GetObjID(self)
     def GetAttackType(self): return _IPY_GameObj.IPY_HurtObj_GetAttackType(self)
     def GetHurtHP(self): return _IPY_GameObj.IPY_HurtObj_GetHurtHP(self)
+    def GetHurtHPEx(self): return _IPY_GameObj.IPY_HurtObj_GetHurtHPEx(self)
     def GetCurHP(self): return _IPY_GameObj.IPY_HurtObj_GetCurHP(self)
     def GetCurHPEx(self): return _IPY_GameObj.IPY_HurtObj_GetCurHPEx(self)
     def SetObjType(self, *args): return _IPY_GameObj.IPY_HurtObj_SetObjType(self, *args)
@@ -295,7 +296,6 @@
     def SetAttackType(self, *args): return _IPY_GameObj.IPY_HurtObj_SetAttackType(self, *args)
     def SetHurtHP(self, *args): return _IPY_GameObj.IPY_HurtObj_SetHurtHP(self, *args)
     def SetCurHP(self, *args): return _IPY_GameObj.IPY_HurtObj_SetCurHP(self, *args)
-    def SetCurHPEx(self, *args): return _IPY_GameObj.IPY_HurtObj_SetCurHPEx(self, *args)
     def Clear(self): return _IPY_GameObj.IPY_HurtObj_Clear(self)
 IPY_HurtObj_swigregister = _IPY_GameObj.IPY_HurtObj_swigregister
 IPY_HurtObj_swigregister(IPY_HurtObj)
@@ -423,6 +423,7 @@
     def GetID(self): return _IPY_GameObj.IPY_GameObj_GetID(self)
     def GetIndex(self): return _IPY_GameObj.IPY_GameObj_GetIndex(self)
     def GetHP(self): return _IPY_GameObj.IPY_GameObj_GetHP(self)
+    def GetHPEx(self): return _IPY_GameObj.IPY_GameObj_GetHPEx(self)
     def Move(self, *args): return _IPY_GameObj.IPY_GameObj_Move(self, *args)
     def ChangePos(self, *args): return _IPY_GameObj.IPY_GameObj_ChangePos(self, *args)
     def StopMove(self): return _IPY_GameObj.IPY_GameObj_StopMove(self)
@@ -963,7 +964,9 @@
     def GetPosY(self): return _IPY_GameObj.IPY_Player_GetPosY(self)
     def GetState(self): return _IPY_GameObj.IPY_Player_GetState(self)
     def GetMaxHP(self): return _IPY_GameObj.IPY_Player_GetMaxHP(self)
+    def GetMaxHPEx(self): return _IPY_GameObj.IPY_Player_GetMaxHPEx(self)
     def GetHP(self): return _IPY_GameObj.IPY_Player_GetHP(self)
+    def GetHPEx(self): return _IPY_GameObj.IPY_Player_GetHPEx(self)
     def GetMaxMP(self): return _IPY_GameObj.IPY_Player_GetMaxMP(self)
     def GetMP(self): return _IPY_GameObj.IPY_Player_GetMP(self)
     def GetXP(self): return _IPY_GameObj.IPY_Player_GetXP(self)
@@ -1532,6 +1535,7 @@
     def GetTotalSoulPropretyLV(self): return _IPY_GameObj.IPY_Player_GetTotalSoulPropretyLV(self)
     def SetTotalSoulPropretyLV(self, *args): return _IPY_GameObj.IPY_Player_SetTotalSoulPropretyLV(self, *args)
     def GetFightPower(self): return _IPY_GameObj.IPY_Player_GetFightPower(self)
+    def GetFightPowerEx(self): return _IPY_GameObj.IPY_Player_GetFightPowerEx(self)
     def SetFightPower(self, *args): return _IPY_GameObj.IPY_Player_SetFightPower(self, *args)
     def GetSlashRate(self): return _IPY_GameObj.IPY_Player_GetSlashRate(self)
     def SetSlashRate(self, *args): return _IPY_GameObj.IPY_Player_SetSlashRate(self, *args)
@@ -1979,6 +1983,7 @@
     def GetObjID(self): return _IPY_GameObj.IPY_NPCAngrityValue_GetObjID(self)
     def GetObjType(self): return _IPY_GameObj.IPY_NPCAngrityValue_GetObjType(self)
     def GetAngryValue(self): return _IPY_GameObj.IPY_NPCAngrityValue_GetAngryValue(self)
+    def GetAngryValueEx(self): return _IPY_GameObj.IPY_NPCAngrityValue_GetAngryValueEx(self)
     def GetIsDisable(self): return _IPY_GameObj.IPY_NPCAngrityValue_GetIsDisable(self)
     def SetObjID(self, *args): return _IPY_GameObj.IPY_NPCAngrityValue_SetObjID(self, *args)
     def SetObjType(self, *args): return _IPY_GameObj.IPY_NPCAngrityValue_SetObjType(self, *args)
@@ -2126,7 +2131,6 @@
     def GetCurPatrolIndex(self): return _IPY_GameObj.IPY_NPC_GetCurPatrolIndex(self)
     def SetCurLV(self, *args): return _IPY_GameObj.IPY_NPC_SetCurLV(self, *args)
     def SetHP(self, *args): return _IPY_GameObj.IPY_NPC_SetHP(self, *args)
-    def SetHPEx(self, *args): return _IPY_GameObj.IPY_NPC_SetHPEx(self, *args)
     def SetCurAction(self, *args): return _IPY_GameObj.IPY_NPC_SetCurAction(self, *args)
     def SetActionTick(self, *args): return _IPY_GameObj.IPY_NPC_SetActionTick(self, *args)
     def SetAttackTick(self, *args): return _IPY_GameObj.IPY_NPC_SetAttackTick(self, *args)
@@ -2226,7 +2230,6 @@
     def SetThunderDef(self, *args): return _IPY_GameObj.IPY_NPC_SetThunderDef(self, *args)
     def SetWindDef(self, *args): return _IPY_GameObj.IPY_NPC_SetWindDef(self, *args)
     def SetMaxHP(self, *args): return _IPY_GameObj.IPY_NPC_SetMaxHP(self, *args)
-    def SetMaxHPEx(self, *args): return _IPY_GameObj.IPY_NPC_SetMaxHPEx(self, *args)
     def SetMaxMP(self, *args): return _IPY_GameObj.IPY_NPC_SetMaxMP(self, *args)
     def SetMiss(self, *args): return _IPY_GameObj.IPY_NPC_SetMiss(self, *args)
     def SetSuperHit(self, *args): return _IPY_GameObj.IPY_NPC_SetSuperHit(self, *args)
@@ -2260,9 +2263,7 @@
     def GetAttentionPlayersCount(self): return _IPY_GameObj.IPY_NPC_GetAttentionPlayersCount(self)
     def GetAttentionPlayerByIndex(self, *args): return _IPY_GameObj.IPY_NPC_GetAttentionPlayerByIndex(self, *args)
     def Notify_HP(self): return _IPY_GameObj.IPY_NPC_Notify_HP(self)
-    def Notify_HPEx(self): return _IPY_GameObj.IPY_NPC_Notify_HPEx(self)
     def Notify_MaxHP(self): return _IPY_GameObj.IPY_NPC_Notify_MaxHP(self)
-    def Notify_MaxHPEx(self): return _IPY_GameObj.IPY_NPC_Notify_MaxHPEx(self)
     def GetAngryNPCCount(self): return _IPY_GameObj.IPY_NPC_GetAngryNPCCount(self)
     def GetAngryNPCByIndex(self, *args): return _IPY_GameObj.IPY_NPC_GetAngryNPCByIndex(self, *args)
     def GetDamReduce(self): return _IPY_GameObj.IPY_NPC_GetDamReduce(self)
@@ -2528,6 +2529,7 @@
     def GetBaseMissRate(self): return _IPY_GameObj.IPY_SummonNPC_GetBaseMissRate(self)
     def GetBaseSuperHiteRate(self): return _IPY_GameObj.IPY_SummonNPC_GetBaseSuperHiteRate(self)
     def GetBaseMaxHP(self): return _IPY_GameObj.IPY_SummonNPC_GetBaseMaxHP(self)
+    def GetBaseMaxHPEx(self): return _IPY_GameObj.IPY_SummonNPC_GetBaseMaxHPEx(self)
     def GetBaseHPRestore(self): return _IPY_GameObj.IPY_SummonNPC_GetBaseHPRestore(self)
     def GetBaseOrgSpeed(self): return _IPY_GameObj.IPY_SummonNPC_GetBaseOrgSpeed(self)
     def GetMoveType(self): return _IPY_GameObj.IPY_SummonNPC_GetMoveType(self)
@@ -2788,6 +2790,7 @@
     def Sync_PetTrainingEnd(self): return _IPY_GameObj.IPY_RolePet_Sync_PetTrainingEnd(self)
     def SetMaxHP(self, *args): return _IPY_GameObj.IPY_RolePet_SetMaxHP(self, *args)
     def GetMaxHP(self): return _IPY_GameObj.IPY_RolePet_GetMaxHP(self)
+    def GetMaxHPEx(self): return _IPY_GameObj.IPY_RolePet_GetMaxHPEx(self)
     def GetGrade(self): return _IPY_GameObj.IPY_RolePet_GetGrade(self)
     def GetLeftPoints(self): return _IPY_GameObj.IPY_RolePet_GetLeftPoints(self)
     def SetGrade(self, *args): return _IPY_GameObj.IPY_RolePet_SetGrade(self, *args)
diff --git "a/Tool/\346\225\260\346\215\256\345\272\223/ChangeAccount/Collections/DataServerPlayerData.py" "b/Tool/\346\225\260\346\215\256\345\272\223/ChangeAccount/Collections/DataServerPlayerData.py"
index fe20c6a..6a28c34 100644
--- "a/Tool/\346\225\260\346\215\256\345\272\223/ChangeAccount/Collections/DataServerPlayerData.py"
+++ "b/Tool/\346\225\260\346\215\256\345\272\223/ChangeAccount/Collections/DataServerPlayerData.py"
@@ -162,6 +162,8 @@
         ('ExAttr18', ctypes.c_ulong),
         ('ExAttr19', ctypes.c_ulong),
         ('ExAttr20', ctypes.c_ulong),
+        ('HPEx', ctypes.c_ulong),
+        ('FightPowerEx', ctypes.c_ulong),
         ('ADOResult', ctypes.c_ulong),
         ('SID', ctypes.c_int),    #用于校验
         ('VerNO', ctypes.c_ulong)   #用于SID校验时比较版本号
@@ -175,18 +177,149 @@
     def clear(self):
         memset(addressof(self), 0, self.getLength())
 
-
     def readData(self, buf, pos = 0, length = 0):
         if not pos <= length:
-            msg = error.formatMsg('error', error.ERROR_NO_150, '(pos = %s)> (length = %s)'%(pos, length))
+            msg = error.formatMsg('error', error.ERROR_NO_148, '(pos = %s) > (length = %s)'%(pos, length))
             mylog.error(msg)
             return -1
         if len(buf) < pos + self.getLength():
-            msg = error.formatMsg('error', error.ERROR_NO_151, 'len = %s while %s expected!'%(len(buf) - pos, self.getLength()))
+            msg = error.formatMsg('error', error.ERROR_NO_149, 'len = %s while %s expected!'%(len(buf) - pos, self.getLength()))
             mylog.error(msg)
-            return -1
         self.clear()
-        memmove(addressof(self), buf[pos:], self.getLength())
+        self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.AccID, pos = CommFunc.ReadString(buf, pos, 65)
+        self.PlayerName, pos = CommFunc.ReadString(buf, pos, 33)
+        self.AccState, pos = CommFunc.ReadBYTE(buf, pos)
+        self.IsDeleted, pos = CommFunc.ReadBYTE(buf, pos)
+        self.GMLevel, pos = CommFunc.ReadBYTE(buf, pos)
+        self.Sex, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Hair, pos = CommFunc.ReadDWORD(buf, pos)
+        self.HairColor, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Face, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FacePic, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Job, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ReincarnationLv, pos = CommFunc.ReadWORD(buf, pos)
+        self.LV, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TotalExp, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FamilyID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FamilyName, pos = CommFunc.ReadString(buf, pos, 33)
+        self.Country, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TeamHornor, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FamilyHornor, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FamilyActiveValue, pos = CommFunc.ReadDWORD(buf, pos)
+        self.LastWeekFamilyActiveValue, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CountryHornor, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CountryLastWeekHornor, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Mate, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Gold, pos = CommFunc.ReadDWORD(buf, pos)
+        self.GoldPaper, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Silver, pos = CommFunc.ReadDWORD(buf, pos)
+        self.SilverPaper, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FightPoint, pos = CommFunc.ReadDWORD(buf, pos)
+        self.HappyPoint, pos = CommFunc.ReadDWORD(buf, pos)
+        self.MapID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.DataMapID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CopyMapID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.PosX, pos = CommFunc.ReadWORD(buf, pos)
+        self.PosY, pos = CommFunc.ReadWORD(buf, pos)
+        self.FromMapID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FromCopyMapID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FromPosX, pos = CommFunc.ReadWORD(buf, pos)
+        self.FromPosY, pos = CommFunc.ReadWORD(buf, pos)
+        self.State, pos = CommFunc.ReadDWORD(buf, pos)
+        self.HP, pos = CommFunc.ReadDWORD(buf, pos)
+        self.MP, pos = CommFunc.ReadDWORD(buf, pos)
+        self.XP, pos = CommFunc.ReadDWORD(buf, pos)
+        self.HPRestoreSetting, pos = CommFunc.ReadWORD(buf, pos)
+        self.MPRestoreSetting, pos = CommFunc.ReadWORD(buf, pos)
+        self.FreePoint, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FreeSkillPoint, pos = CommFunc.ReadDWORD(buf, pos)
+        self.STR, pos = CommFunc.ReadDWORD(buf, pos)
+        self.PNE, pos = CommFunc.ReadDWORD(buf, pos)
+        self.PHY, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CON, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TotalSTR, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TotalPNE, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TotalPHY, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TotalCON, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Setting, pos = CommFunc.ReadString(buf, pos, 100)
+        self.PKValue, pos = CommFunc.ReadWORD(buf, pos)
+        self.FightPower, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ActiveValue, pos = CommFunc.ReadWORD(buf, pos)
+        self.PlayerType, pos = CommFunc.ReadBYTE(buf, pos)
+        self.BackpackLV, pos = CommFunc.ReadBYTE(buf, pos)
+        self.WarehouseLV, pos = CommFunc.ReadBYTE(buf, pos)
+        self.HaveWarehousePsw, pos = CommFunc.ReadBYTE(buf, pos)
+        self.WarehousePsw, pos = CommFunc.ReadString(buf, pos, 15)
+        self.WarehouseLocked, pos = CommFunc.ReadBYTE(buf, pos)
+        self.WarehouseGold, pos = CommFunc.ReadDWORD(buf, pos)
+        self.WarehouseSilver, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TeamID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.UseGoldType, pos = CommFunc.ReadBYTE(buf, pos)
+        self.UseSilverType, pos = CommFunc.ReadBYTE(buf, pos)
+        self.AttackMode, pos = CommFunc.ReadBYTE(buf, pos)
+        self.RebornMapID, pos = CommFunc.ReadWORD(buf, pos)
+        self.RebornPosX, pos = CommFunc.ReadWORD(buf, pos)
+        self.RebornPosY, pos = CommFunc.ReadWORD(buf, pos)
+        self.WeekOnlineTime, pos = CommFunc.ReadDWORD(buf, pos)
+        self.LastWeekOnlineTime, pos = CommFunc.ReadDWORD(buf, pos)
+        self.LogoffTime, pos = CommFunc.ReadString(buf, pos, 30)
+        self.IsHideMask, pos = CommFunc.ReadBYTE(buf, pos)
+        self.DayProcessGameEventCount, pos = CommFunc.ReadDWORD(buf, pos)
+        self.LoginIP, pos = CommFunc.ReadString(buf, pos, 20)
+        self.LoginTime, pos = CommFunc.ReadString(buf, pos, 30)
+        self.OnlineTime, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FriendFavor, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TeamPrivity, pos = CommFunc.ReadDWORD(buf, pos)
+        self.OfflineMinutes, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Energy, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ReceivedSalary, pos = CommFunc.ReadDWORD(buf, pos)
+        self.EquipShowSwitch, pos = CommFunc.ReadDWORD(buf, pos)
+        self.LuckValue, pos = CommFunc.ReadWORD(buf, pos)
+        self.ExAttr1, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr2, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr3, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr4, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr5, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Faction, pos = CommFunc.ReadDWORD(buf, pos)
+        self.InfamyValue, pos = CommFunc.ReadDWORD(buf, pos)
+        self.OfficialRank, pos = CommFunc.ReadBYTE(buf, pos)
+        self.IsFindByLabel, pos = CommFunc.ReadBYTE(buf, pos)
+        self.IsCloseFriendLabel, pos = CommFunc.ReadBYTE(buf, pos)
+        self.ChangeCoinPointTotal, pos = CommFunc.ReadDWORD(buf, pos)
+        self.VIPLv, pos = CommFunc.ReadBYTE(buf, pos)
+        self.VIPLvForPhone, pos = CommFunc.ReadBYTE(buf, pos)
+        self.PhoneVIPStartTime, pos = CommFunc.ReadDouble(buf, pos)
+        self.PhoneVIPEndTime, pos = CommFunc.ReadDouble(buf, pos)
+        self.VsRoomId, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr6, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr7, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr8, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr9, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr10, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ModelMark, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FromDataMapID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.LastOrderId, pos = CommFunc.ReadString(buf, pos, 40)
+        self.PrizeCoin, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr11, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr12, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr13, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr14, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CreateRoleTime, pos = CommFunc.ReadString(buf, pos, 30)
+        self.LVEx, pos = CommFunc.ReadWORD(buf, pos)
+        self.LV2, pos = CommFunc.ReadWORD(buf, pos)
+        self.ExpPoint, pos = CommFunc.ReadDWORD(buf, pos)
+        self.OperateInfo, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Operate, pos = CommFunc.ReadString(buf, pos, 15)
+        self.ServerID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr15, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr16, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr17, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr18, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr19, pos = CommFunc.ReadDWORD(buf, pos)
+        self.ExAttr20, pos = CommFunc.ReadDWORD(buf, pos)
+        self.HPEx, pos = CommFunc.ReadDWORD(buf, pos)
+        self.FightPowerEx, pos = CommFunc.ReadDWORD(buf, pos)
         return self.getLength()
 
 
@@ -337,6 +470,8 @@
         rec[u'ExAttr18'] = self.ExAttr18
         rec[u'ExAttr19'] = self.ExAttr19
         rec[u'ExAttr20'] = self.ExAttr20
+        rec[u'HPEx'] = self.HPEx
+        rec[u'FightPowerEx'] = self.FightPowerEx
         rec[u'SID'] = self.SID
         rec[u'VerNO'] = self.VerNO
         return rec
@@ -475,6 +610,8 @@
         self.ExAttr18 = rec.get(u'ExAttr18', 0)
         self.ExAttr19 = rec.get(u'ExAttr19', 0)
         self.ExAttr20 = rec.get(u'ExAttr20', 0)
+        self.HPEx = rec.get(u'HPEx', 0)
+        self.FightPowerEx = rec.get(u'FightPowerEx', 0)
         self.SID = rec['SID']
         self.VerNO = rec.get(u'VerNO', 0)
 
@@ -828,6 +965,8 @@
             ExAttr18 = %s,
             ExAttr19 = %s,
             ExAttr20 = %s,
+            HPEx = %s,
+            FightPowerEx = %s,
             ADOResult = %s,
             SID = %s,
             VerNO = %s,
@@ -964,6 +1103,8 @@
                 self.ExAttr18,
                 self.ExAttr19,
                 self.ExAttr20,
+                self.HPEx,
+                self.FightPowerEx,
                 self.ADOResult,
                 self.SID,
                 self.VerNO
@@ -971,7 +1112,7 @@
         return output
 
     def dumpString(self):
-        output = '''%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s'''%(
+        output = '''%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s'''%(
                 self.PlayerID,
                 self.AccID,
                 self.PlayerName,
@@ -1104,6 +1245,8 @@
                 self.ExAttr18,
                 self.ExAttr19,
                 self.ExAttr20,
+                self.HPEx,
+                self.FightPowerEx,
             )
         return output
 
@@ -15337,6 +15480,7 @@
         ('Name', ctypes.c_char * 24),
         ('Friendliness', ctypes.c_ushort),
         ('HP', ctypes.c_ulong),
+        ('HPEx', ctypes.c_ulong),
         ('MP', ctypes.c_ulong),
         ('Lv', ctypes.c_ushort),
         ('Exp', ctypes.c_ulong),
@@ -15373,18 +15517,47 @@
     def clear(self):
         memset(addressof(self), 0, self.getLength())
 
-
     def readData(self, buf, pos = 0, length = 0):
         if not pos <= length:
-            msg = error.formatMsg('error', error.ERROR_NO_150, '(pos = %s)> (length = %s)'%(pos, length))
+            msg = error.formatMsg('error', error.ERROR_NO_148, '(pos = %s) > (length = %s)'%(pos, length))
             mylog.error(msg)
             return -1
         if len(buf) < pos + self.getLength():
-            msg = error.formatMsg('error', error.ERROR_NO_151, 'len = %s while %s expected!'%(len(buf) - pos, self.getLength()))
+            msg = error.formatMsg('error', error.ERROR_NO_149, 'len = %s while %s expected!'%(len(buf) - pos, self.getLength()))
             mylog.error(msg)
-            return -1
         self.clear()
-        memmove(addressof(self), buf[pos:], self.getLength())
+        self.PetID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.NPCID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Name, pos = CommFunc.ReadString(buf, pos, 24)
+        self.Friendliness, pos = CommFunc.ReadWORD(buf, pos)
+        self.HP, pos = CommFunc.ReadDWORD(buf, pos)
+        self.HPEx, pos = CommFunc.ReadDWORD(buf, pos)
+        self.MP, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Lv, pos = CommFunc.ReadWORD(buf, pos)
+        self.Exp, pos = CommFunc.ReadDWORD(buf, pos)
+        self.HPTalent, pos = CommFunc.ReadWORD(buf, pos)
+        self.MPTalent, pos = CommFunc.ReadWORD(buf, pos)
+        self.PhysicAtkTalent, pos = CommFunc.ReadWORD(buf, pos)
+        self.MagicAtkTalent, pos = CommFunc.ReadWORD(buf, pos)
+        self.PhysicDefTalent, pos = CommFunc.ReadWORD(buf, pos)
+        self.MagicDefTalent, pos = CommFunc.ReadWORD(buf, pos)
+        self.BindType, pos = CommFunc.ReadBYTE(buf, pos)
+        self.STR, pos = CommFunc.ReadDWORD(buf, pos)
+        self.PNE, pos = CommFunc.ReadDWORD(buf, pos)
+        self.PHY, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CON, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Pos, pos = CommFunc.ReadBYTE(buf, pos)
+        self.DailyTrainCnt, pos = CommFunc.ReadBYTE(buf, pos)
+        self.RemainTrainTime, pos = CommFunc.ReadDWORD(buf, pos)
+        self.UseCreatorDrugCnt, pos = CommFunc.ReadBYTE(buf, pos)
+        self.LeftPoints, pos = CommFunc.ReadWORD(buf, pos)
+        self.AIMode, pos = CommFunc.ReadBYTE(buf, pos)
+        self.IsBattle, pos = CommFunc.ReadBYTE(buf, pos)
+        self.BattlePower, pos = CommFunc.ReadDWORD(buf, pos)
+        self.IncreateSkillCnt, pos = CommFunc.ReadBYTE(buf, pos)
+        self.TrainType, pos = CommFunc.ReadBYTE(buf, pos)
+        self.PetIndex, pos = CommFunc.ReadBYTE(buf, pos)
         return self.getLength()
 
 
@@ -15405,6 +15578,7 @@
         rec[u'Name'] = fix_incomingText(self.Name)
         rec[u'Friendliness'] = self.Friendliness
         rec[u'HP'] = self.HP
+        rec[u'HPEx'] = self.HPEx
         rec[u'MP'] = self.MP
         rec[u'Lv'] = self.Lv
         rec[u'Exp'] = self.Exp
@@ -15440,6 +15614,7 @@
         self.Name = fix_outgoingText(rec.get(u'Name', u''))
         self.Friendliness = rec.get(u'Friendliness', 0)
         self.HP = rec.get(u'HP', 0)
+        self.HPEx = rec.get(u'HPEx', 0)
         self.MP = rec.get(u'MP', 0)
         self.Lv = rec.get(u'Lv', 0)
         self.Exp = rec.get(u'Exp', 0)
@@ -15622,6 +15797,7 @@
             Name = %s,
             Friendliness = %s,
             HP = %s,
+            HPEx = %s,
             MP = %s,
             Lv = %s,
             Exp = %s,
@@ -15655,6 +15831,7 @@
                 self.Name,
                 self.Friendliness,
                 self.HP,
+                self.HPEx,
                 self.MP,
                 self.Lv,
                 self.Exp,
@@ -15685,13 +15862,14 @@
         return output
 
     def dumpString(self):
-        output = '''%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s'''%(
+        output = '''%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s\t%1s'''%(
                 self.PetID,
                 self.PlayerID,
                 self.NPCID,
                 self.Name,
                 self.Friendliness,
                 self.HP,
+                self.HPEx,
                 self.MP,
                 self.Lv,
                 self.Exp,
@@ -15727,7 +15905,6 @@
         else:
             self.Name = Str[:24]
             
-
 
 #------------------------------------------------------
 #玩家重复事件表#tagRoleRepeatTime

--
Gitblit v1.8.0