From 5f6d12a0c40e018be2516b4e81e7a43c16145b9d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 28 十二月 2023 17:05:02 +0800
Subject: [PATCH] 10033 【后端】仙树升级系统及砍树产出规则(仙桃货币类型改为41)

---
 ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py |  358 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 331 insertions(+), 27 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
index a04b939..13a6dfa 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/PyGameDataStruct.py
@@ -636,6 +636,16 @@
         ('ItemData14', ctypes.c_char_p),
         ('ItemDataSize15', ctypes.c_ushort),
         ('ItemData15', ctypes.c_char_p),
+        ('ItemDataSize16', ctypes.c_ushort),
+        ('ItemData16', ctypes.c_char_p),
+        ('ItemDataSize17', ctypes.c_ushort),
+        ('ItemData17', ctypes.c_char_p),
+        ('ItemDataSize18', ctypes.c_ushort),
+        ('ItemData18', ctypes.c_char_p),
+        ('ItemDataSize19', ctypes.c_ushort),
+        ('ItemData19', ctypes.c_char_p),
+        ('ItemDataSize20', ctypes.c_ushort),
+        ('ItemData20', ctypes.c_char_p),
         ('ADOResult', ctypes.c_ulong),
     ]
 
@@ -683,6 +693,16 @@
         self.ItemData14 = ''
         self.ItemDataSize15 = 0
         self.ItemData15 = ''
+        self.ItemDataSize16 = 0
+        self.ItemData16 = ''
+        self.ItemDataSize17 = 0
+        self.ItemData17 = ''
+        self.ItemDataSize18 = 0
+        self.ItemData18 = ''
+        self.ItemDataSize19 = 0
+        self.ItemData19 = ''
+        self.ItemDataSize20 = 0
+        self.ItemData20 = ''
 
     def readData(self, buf, pos = 0, length = 0):
         if not pos <= length:
@@ -747,6 +767,21 @@
         self.ItemDataSize15, pos = CommFunc.ReadWORD(buf, pos)
         tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize15)
         self.ItemData15 = ctypes.c_char_p(tmp)
+        self.ItemDataSize16, pos = CommFunc.ReadWORD(buf, pos)
+        tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize16)
+        self.ItemData16 = ctypes.c_char_p(tmp)
+        self.ItemDataSize17, pos = CommFunc.ReadWORD(buf, pos)
+        tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize17)
+        self.ItemData17 = ctypes.c_char_p(tmp)
+        self.ItemDataSize18, pos = CommFunc.ReadWORD(buf, pos)
+        tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize18)
+        self.ItemData18 = ctypes.c_char_p(tmp)
+        self.ItemDataSize19, pos = CommFunc.ReadWORD(buf, pos)
+        tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize19)
+        self.ItemData19 = ctypes.c_char_p(tmp)
+        self.ItemDataSize20, pos = CommFunc.ReadWORD(buf, pos)
+        tmp, pos = CommFunc.ReadString(buf, pos, self.ItemDataSize20)
+        self.ItemData20 = ctypes.c_char_p(tmp)
         return self.getLength()
 
     def getBuffer(self):
@@ -790,6 +825,16 @@
         buf = CommFunc.WriteString(buf, self.ItemDataSize14, self.ItemData14)
         buf = CommFunc.WriteWORD(buf, self.ItemDataSize15)
         buf = CommFunc.WriteString(buf, self.ItemDataSize15, self.ItemData15)
+        buf = CommFunc.WriteWORD(buf, self.ItemDataSize16)
+        buf = CommFunc.WriteString(buf, self.ItemDataSize16, self.ItemData16)
+        buf = CommFunc.WriteWORD(buf, self.ItemDataSize17)
+        buf = CommFunc.WriteString(buf, self.ItemDataSize17, self.ItemData17)
+        buf = CommFunc.WriteWORD(buf, self.ItemDataSize18)
+        buf = CommFunc.WriteString(buf, self.ItemDataSize18, self.ItemData18)
+        buf = CommFunc.WriteWORD(buf, self.ItemDataSize19)
+        buf = CommFunc.WriteString(buf, self.ItemDataSize19, self.ItemData19)
+        buf = CommFunc.WriteWORD(buf, self.ItemDataSize20)
+        buf = CommFunc.WriteString(buf, self.ItemDataSize20, self.ItemData20)
         return buf
 
     def getLength(self):
@@ -833,6 +878,16 @@
         length += self.ItemDataSize14
         length += sizeof(ctypes.c_ushort)
         length += self.ItemDataSize15
+        length += sizeof(ctypes.c_ushort)
+        length += self.ItemDataSize16
+        length += sizeof(ctypes.c_ushort)
+        length += self.ItemDataSize17
+        length += sizeof(ctypes.c_ushort)
+        length += self.ItemDataSize18
+        length += sizeof(ctypes.c_ushort)
+        length += self.ItemDataSize19
+        length += sizeof(ctypes.c_ushort)
+        length += self.ItemDataSize20
         return length
 
     def outputString(self):
@@ -876,6 +931,16 @@
             ItemData14 = %s,
             ItemDataSize15 = %s,
             ItemData15 = %s,
+            ItemDataSize16 = %s,
+            ItemData16 = %s,
+            ItemDataSize17 = %s,
+            ItemData17 = %s,
+            ItemDataSize18 = %s,
+            ItemData18 = %s,
+            ItemDataSize19 = %s,
+            ItemData19 = %s,
+            ItemDataSize20 = %s,
+            ItemData20 = %s,
             ADOResult = %s,
             '''%(
                 self.PlayerID,
@@ -917,6 +982,16 @@
                 self.ItemData14,
                 self.ItemDataSize15,
                 self.ItemData15,
+                self.ItemDataSize16,
+                self.ItemData16,
+                self.ItemDataSize17,
+                self.ItemData17,
+                self.ItemDataSize18,
+                self.ItemData18,
+                self.ItemDataSize19,
+                self.ItemData19,
+                self.ItemDataSize20,
+                self.ItemData20,
                 self.ADOResult,
             )
         return output
@@ -2121,7 +2196,6 @@
     _fields_ = [
         ('PlayerID', ctypes.c_ulong),
         ('TagID', ctypes.c_ulong),
-        ('Intimacy', ctypes.c_ulong),
         ('ADOResult', ctypes.c_ulong),
     ]
 
@@ -2141,7 +2215,6 @@
         self.clear()
         self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
         self.TagID, pos = CommFunc.ReadDWORD(buf, pos)
-        self.Intimacy, pos = CommFunc.ReadDWORD(buf, pos)
         return self.getLength()
 
 
@@ -2157,12 +2230,10 @@
         output = '''//玩家好友表#tagDBPyPlayerFriend:
             PlayerID = %s,
             TagID = %s,
-            Intimacy = %s,
             ADOResult = %s,
             '''%(
                 self.PlayerID,
                 self.TagID,
-                self.Intimacy,
                 self.ADOResult,
             )
         return output
@@ -2232,10 +2303,7 @@
         ('RealmLV', ctypes.c_ushort),
         ('OnlineType', ctypes.c_ubyte),
         ('RefCount', ctypes.c_ulong),
-        ('CoupleID', ctypes.c_ulong),
-        ('CoupleName', ctypes.c_char * 33),
-        ('CouplePriceMaxID', ctypes.c_ubyte),
-        ('CoupleBreakOffline', ctypes.c_ubyte),
+        ('Face', ctypes.c_ulong),
         ('ADOResult', ctypes.c_ulong),
     ]
 
@@ -2260,10 +2328,7 @@
         self.RealmLV, pos = CommFunc.ReadWORD(buf, pos)
         self.OnlineType, pos = CommFunc.ReadBYTE(buf, pos)
         self.RefCount, pos = CommFunc.ReadDWORD(buf, pos)
-        self.CoupleID, pos = CommFunc.ReadDWORD(buf, pos)
-        self.CoupleName, pos = CommFunc.ReadString(buf, pos, 33)
-        self.CouplePriceMaxID, pos = CommFunc.ReadBYTE(buf, pos)
-        self.CoupleBreakOffline, pos = CommFunc.ReadBYTE(buf, pos)
+        self.Face, pos = CommFunc.ReadDWORD(buf, pos)
         return self.getLength()
 
 
@@ -2284,10 +2349,7 @@
             RealmLV = %s,
             OnlineType = %s,
             RefCount = %s,
-            CoupleID = %s,
-            CoupleName = %s,
-            CouplePriceMaxID = %s,
-            CoupleBreakOffline = %s,
+            Face = %s,
             ADOResult = %s,
             '''%(
                 self.PlayerID,
@@ -2297,10 +2359,7 @@
                 self.RealmLV,
                 self.OnlineType,
                 self.RefCount,
-                self.CoupleID,
-                self.CoupleName,
-                self.CouplePriceMaxID,
-                self.CoupleBreakOffline,
+                self.Face,
                 self.ADOResult,
             )
         return output
@@ -2311,11 +2370,256 @@
             self.PlayerName = Str
         else:
             self.PlayerName = Str[:33]
-            
-    def SetCoupleName(self,Str):
-        if len(Str)<=33:
-            self.CoupleName = Str
-        else:
-            self.CoupleName = Str[:33]
-            
 
+
+# 玩家亲密表 #tagDBPyPlayerIntimacy
+class tagDBPyPlayerIntimacy(Structure):
+    _pack_ = 1
+    _fields_ = [
+        ('PlayerID', ctypes.c_ulong),
+        ('TagID', ctypes.c_ulong),
+        ('Intimacy', ctypes.c_ulong),
+        ('ADOResult', ctypes.c_ulong),
+    ]
+
+    def __init__(self):
+        Structure.__init__(self)
+        self.clear()
+
+
+    def clear(self):
+        memset(addressof(self), 0, self.getLength())
+
+    def readData(self, buf, pos = 0, length = 0):
+        if not pos <= length:
+            return -1
+        if len(buf) < pos + self.getLength():
+            return -1
+        self.clear()
+        self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.TagID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Intimacy, pos = CommFunc.ReadDWORD(buf, pos)
+        return self.getLength()
+
+
+    def getBuffer(self):
+        buf = create_string_buffer(self.getLength())
+        memmove(addressof(buf), addressof(self), self.getLength())
+        return string_at(addressof(buf), self.getLength())
+
+    def getLength(self):
+        return sizeof(tagDBPyPlayerIntimacy)
+
+    def outputString(self):
+        output = '''// 玩家亲密表 #tagDBPyPlayerIntimacy:
+            PlayerID = %s,
+            TagID = %s,
+            Intimacy = %s,
+            ADOResult = %s,
+            '''%(
+                self.PlayerID,
+                self.TagID,
+                self.Intimacy,
+                self.ADOResult,
+            )
+        return output
+
+
+# 魅力贡献值记录表 #tagDBPyCharmValueRec
+class tagDBPyCharmValueRec(Structure):
+    _pack_ = 1
+    _fields_ = [
+        ('PlayerID', ctypes.c_ulong),
+        ('Type', ctypes.c_ubyte),
+        ('OfferPlayerID', ctypes.c_ulong),
+        ('CharmValue', ctypes.c_ulong),
+        ('UpdTime', ctypes.c_ulong),
+        ('ADOResult', ctypes.c_ulong),
+    ]
+
+    def __init__(self):
+        Structure.__init__(self)
+        self.clear()
+
+
+    def clear(self):
+        memset(addressof(self), 0, self.getLength())
+
+    def readData(self, buf, pos = 0, length = 0):
+        if not pos <= length:
+            return -1
+        if len(buf) < pos + self.getLength():
+            return -1
+        self.clear()
+        self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.Type, pos = CommFunc.ReadBYTE(buf, pos)
+        self.OfferPlayerID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.CharmValue, pos = CommFunc.ReadDWORD(buf, pos)
+        self.UpdTime, pos = CommFunc.ReadDWORD(buf, pos)
+        return self.getLength()
+
+
+    def getBuffer(self):
+        buf = create_string_buffer(self.getLength())
+        memmove(addressof(buf), addressof(self), self.getLength())
+        return string_at(addressof(buf), self.getLength())
+
+    def getLength(self):
+        return sizeof(tagDBPyCharmValueRec)
+
+    def outputString(self):
+        output = '''// 魅力贡献值记录表 #tagDBPyCharmValueRec:
+            PlayerID = %s,
+            Type = %s,
+            OfferPlayerID = %s,
+            CharmValue = %s,
+            UpdTime = %s,
+            ADOResult = %s,
+            '''%(
+                self.PlayerID,
+                self.Type,
+                self.OfferPlayerID,
+                self.CharmValue,
+                self.UpdTime,
+                self.ADOResult,
+            )
+        return output
+
+
+# 未通知的情缘送礼记录 #tagDBPyUnNotifyLoveGiftRec
+class tagDBPyUnNotifyLoveGiftRec(Structure):
+    _pack_ = 1
+    _fields_ = [
+        ('PlayerID', ctypes.c_ulong),
+        ('GivePlayerID', ctypes.c_ulong),
+        ('GiftNum', ctypes.c_ushort),
+        ('GiftCount', ctypes.c_ulong),
+        ('SendTime', ctypes.c_ulong),
+        ('ADOResult', ctypes.c_ulong),
+    ]
+
+    def __init__(self):
+        Structure.__init__(self)
+        self.clear()
+
+
+    def clear(self):
+        memset(addressof(self), 0, self.getLength())
+
+    def readData(self, buf, pos = 0, length = 0):
+        if not pos <= length:
+            return -1
+        if len(buf) < pos + self.getLength():
+            return -1
+        self.clear()
+        self.PlayerID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.GivePlayerID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.GiftNum, pos = CommFunc.ReadWORD(buf, pos)
+        self.GiftCount, pos = CommFunc.ReadDWORD(buf, pos)
+        self.SendTime, pos = CommFunc.ReadDWORD(buf, pos)
+        return self.getLength()
+
+
+    def getBuffer(self):
+        buf = create_string_buffer(self.getLength())
+        memmove(addressof(buf), addressof(self), self.getLength())
+        return string_at(addressof(buf), self.getLength())
+
+    def getLength(self):
+        return sizeof(tagDBPyUnNotifyLoveGiftRec)
+
+    def outputString(self):
+        output = '''// 未通知的情缘送礼记录 #tagDBPyUnNotifyLoveGiftRec:
+            PlayerID = %s,
+            GivePlayerID = %s,
+            GiftNum = %s,
+            GiftCount = %s,
+            SendTime = %s,
+            ADOResult = %s,
+            '''%(
+                self.PlayerID,
+                self.GivePlayerID,
+                self.GiftNum,
+                self.GiftCount,
+                self.SendTime,
+                self.ADOResult,
+            )
+        return output
+
+
+# 伴侣表 #tagDBPyCouple
+class tagDBPyCouple(Structure):
+    _pack_ = 1
+    _fields_ = [
+        ('PlayerIDA', ctypes.c_ulong),
+        ('PlayerIDB', ctypes.c_ulong),
+        ('NewMarryTime', ctypes.c_ulong),
+        ('MarryTime', ctypes.c_ulong),
+        ('BridePriceState', ctypes.c_ulong),
+        ('BreakRequestID', ctypes.c_ulong),
+        ('BreakRequestTime', ctypes.c_ulong),
+        ('BreakRequestTimeA', ctypes.c_ulong),
+        ('BreakRequestTimeB', ctypes.c_ulong),
+        ('ADOResult', ctypes.c_ulong),
+    ]
+
+    def __init__(self):
+        Structure.__init__(self)
+        self.clear()
+
+
+    def clear(self):
+        memset(addressof(self), 0, self.getLength())
+
+    def readData(self, buf, pos = 0, length = 0):
+        if not pos <= length:
+            return -1
+        if len(buf) < pos + self.getLength():
+            return -1
+        self.clear()
+        self.PlayerIDA, pos = CommFunc.ReadDWORD(buf, pos)
+        self.PlayerIDB, pos = CommFunc.ReadDWORD(buf, pos)
+        self.NewMarryTime, pos = CommFunc.ReadDWORD(buf, pos)
+        self.MarryTime, pos = CommFunc.ReadDWORD(buf, pos)
+        self.BridePriceState, pos = CommFunc.ReadDWORD(buf, pos)
+        self.BreakRequestID, pos = CommFunc.ReadDWORD(buf, pos)
+        self.BreakRequestTime, pos = CommFunc.ReadDWORD(buf, pos)
+        self.BreakRequestTimeA, pos = CommFunc.ReadDWORD(buf, pos)
+        self.BreakRequestTimeB, pos = CommFunc.ReadDWORD(buf, pos)
+        return self.getLength()
+
+
+    def getBuffer(self):
+        buf = create_string_buffer(self.getLength())
+        memmove(addressof(buf), addressof(self), self.getLength())
+        return string_at(addressof(buf), self.getLength())
+
+    def getLength(self):
+        return sizeof(tagDBPyCouple)
+
+    def outputString(self):
+        output = '''// 伴侣表 #tagDBPyCouple:
+            PlayerIDA = %s,
+            PlayerIDB = %s,
+            NewMarryTime = %s,
+            MarryTime = %s,
+            BridePriceState = %s,
+            BreakRequestID = %s,
+            BreakRequestTime = %s,
+            BreakRequestTimeA = %s,
+            BreakRequestTimeB = %s,
+            ADOResult = %s,
+            '''%(
+                self.PlayerIDA,
+                self.PlayerIDB,
+                self.NewMarryTime,
+                self.MarryTime,
+                self.BridePriceState,
+                self.BreakRequestID,
+                self.BreakRequestTime,
+                self.BreakRequestTimeA,
+                self.BreakRequestTimeB,
+                self.ADOResult,
+            )
+        return output
+            

--
Gitblit v1.8.0