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