From 40f2e314ff6df3d45e643419c6f155bb665b78dc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 14 九月 2024 13:34:19 +0800
Subject: [PATCH] 10249 【越南】【砍树】【英文】仙宫(增加获得气运提示;)

---
 Tool/Robot/Protocol/PacketsReceived.py |  144 ++++++++++++++++-------------------------------
 1 files changed, 50 insertions(+), 94 deletions(-)

diff --git a/Tool/Robot/Protocol/PacketsReceived.py b/Tool/Robot/Protocol/PacketsReceived.py
index d1edd16..350658f 100644
--- a/Tool/Robot/Protocol/PacketsReceived.py
+++ b/Tool/Robot/Protocol/PacketsReceived.py
@@ -7061,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
 
@@ -8593,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
 
@@ -9786,6 +9724,7 @@
                   ("PlayerID", c_int),    # 主人ID
                   ("PosX", c_int),    # X坐标
                   ("PosY", c_int),    # Y坐标
+                  ("Rank", c_ubyte),    #阶段
                   ]
 
     def __init__(self):
@@ -9807,6 +9746,7 @@
         self.PlayerID = 0
         self.PosX = 0
         self.PosY = 0
+        self.Rank = 0
         return
 
     def GetLength(self):
@@ -9823,7 +9763,8 @@
                                 NPCID:%d,
                                 PlayerID:%d,
                                 PosX:%d,
-                                PosY:%d
+                                PosY:%d,
+                                Rank:%d
                                 '''\
                                 %(
                                 self.Cmd,
@@ -9832,7 +9773,8 @@
                                 self.NPCID,
                                 self.PlayerID,
                                 self.PosX,
-                                self.PosY
+                                self.PosY,
+                                self.Rank
                                 )
         return DumpString
 
@@ -10888,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
@@ -10913,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
@@ -10953,7 +10895,7 @@
         length += 4
         length += 4
         length += 2
-        length += 1
+        length += 2
         length += 1
         length += len(self.OwnerName)
 
@@ -10973,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
@@ -13005,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):
@@ -13024,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)
@@ -13031,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):
@@ -13042,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):
@@ -13058,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
 
@@ -13070,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):
@@ -13084,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(),
@@ -13095,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