From da731f6c88057f8b5ab7c5f8888a7545f8c977e1 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 13 六月 2024 17:28:12 +0800 Subject: [PATCH] 10178 【越南】【香港】【主干】挂机奖励(B109封包修改) --- ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 142 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 115 insertions(+), 27 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py index eb80339..3d7a6f8 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py @@ -45187,6 +45187,84 @@ #------------------------------------------------------ # B1 09 玩家挂机系统信息 #tagMCGuajiInfo +class tagMCGuajiMoney(Structure): + _pack_ = 1 + _fields_ = [ + ("MoneyType", c_ubyte), + ("MoneyValue", c_int), + ] + + def __init__(self): + self.Clear() + 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.MoneyType = 0 + self.MoneyValue = 0 + return + + def GetLength(self): + return sizeof(tagMCGuajiMoney) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B1 09 玩家挂机系统信息 //tagMCGuajiInfo: + MoneyType:%d, + MoneyValue:%d + '''\ + %( + self.MoneyType, + self.MoneyValue + ) + return DumpString + + +class tagMCGuajiItem(Structure): + _pack_ = 1 + _fields_ = [ + ("ItemID", c_int), + ("Count", c_ushort), + ] + + def __init__(self): + self.Clear() + 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.ItemID = 0 + self.Count = 0 + return + + def GetLength(self): + return sizeof(tagMCGuajiItem) + + def GetBuffer(self): + return string_at(addressof(self), self.GetLength()) + + def OutputString(self): + DumpString = '''// B1 09 玩家挂机系统信息 //tagMCGuajiInfo: + ItemID:%d, + Count:%d + '''\ + %( + self.ItemID, + self.Count + ) + return DumpString + + class tagMCGuajiInfo(Structure): Head = tagHead() QuickAwardCount = 0 #(BYTE QuickAwardCount)// 今日已快速挂机收益次数 @@ -45194,10 +45272,10 @@ AwardSeconds = 0 #(DWORD AwardSeconds)// 已累计收益时长,秒 Exp = 0 #(DWORD Exp)// 已累计经验,求余亿部分 ExpPoint = 0 #(DWORD ExpPoint)// 已累计经验,整除亿部分 - MoneyInfoLen = 0 #(BYTE MoneyInfoLen) - MoneyInfo = "" #(String MoneyInfo)// 已累计货币 [[货币类型, 货币值], ...] - ItemInfoLen = 0 #(WORD ItemInfoLen) - ItemInfo = "" #(String ItemInfo)// 已累计物品 [[物品ID, 个数], ...] + MoneyLen = 0 #(BYTE MoneyLen) + MoneyList = list() #(vector<tagMCGuajiMoney> MoneyList)// 已累计货币 + ItemLen = 0 #(BYTE ItemLen) + ItemList = list() #(vector<tagMCGuajiItem> ItemList)// 已累计物品 data = None def __init__(self): @@ -45214,10 +45292,16 @@ self.AwardSeconds,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.Exp,_pos = CommFunc.ReadDWORD(_lpData, _pos) self.ExpPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos) - self.MoneyInfoLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) - self.MoneyInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.MoneyInfoLen) - self.ItemInfoLen,_pos = CommFunc.ReadWORD(_lpData, _pos) - self.ItemInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.ItemInfoLen) + self.MoneyLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.MoneyLen): + temMoneyList = tagMCGuajiMoney() + _pos = temMoneyList.ReadData(_lpData, _pos) + self.MoneyList.append(temMoneyList) + self.ItemLen,_pos = CommFunc.ReadBYTE(_lpData, _pos) + for i in range(self.ItemLen): + temItemList = tagMCGuajiItem() + _pos = temItemList.ReadData(_lpData, _pos) + self.ItemList.append(temItemList) return _pos def Clear(self): @@ -45230,10 +45314,10 @@ self.AwardSeconds = 0 self.Exp = 0 self.ExpPoint = 0 - self.MoneyInfoLen = 0 - self.MoneyInfo = "" - self.ItemInfoLen = 0 - self.ItemInfo = "" + self.MoneyLen = 0 + self.MoneyList = list() + self.ItemLen = 0 + self.ItemList = list() return def GetLength(self): @@ -45245,9 +45329,11 @@ length += 4 length += 4 length += 1 - length += len(self.MoneyInfo) - length += 2 - length += len(self.ItemInfo) + for i in range(self.MoneyLen): + length += self.MoneyList[i].GetLength() + length += 1 + for i in range(self.ItemLen): + length += self.ItemList[i].GetLength() return length @@ -45259,10 +45345,12 @@ data = CommFunc.WriteDWORD(data, self.AwardSeconds) data = CommFunc.WriteDWORD(data, self.Exp) data = CommFunc.WriteDWORD(data, self.ExpPoint) - data = CommFunc.WriteBYTE(data, self.MoneyInfoLen) - data = CommFunc.WriteString(data, self.MoneyInfoLen, self.MoneyInfo) - data = CommFunc.WriteWORD(data, self.ItemInfoLen) - data = CommFunc.WriteString(data, self.ItemInfoLen, self.ItemInfo) + data = CommFunc.WriteBYTE(data, self.MoneyLen) + for i in range(self.MoneyLen): + data = CommFunc.WriteString(data, self.MoneyList[i].GetLength(), self.MoneyList[i].GetBuffer()) + data = CommFunc.WriteBYTE(data, self.ItemLen) + for i in range(self.ItemLen): + data = CommFunc.WriteString(data, self.ItemList[i].GetLength(), self.ItemList[i].GetBuffer()) return data def OutputString(self): @@ -45273,10 +45361,10 @@ AwardSeconds:%d, Exp:%d, ExpPoint:%d, - MoneyInfoLen:%d, - MoneyInfo:%s, - ItemInfoLen:%d, - ItemInfo:%s + MoneyLen:%d, + MoneyList:%s, + ItemLen:%d, + ItemList:%s '''\ %( self.Head.OutputString(), @@ -45285,10 +45373,10 @@ self.AwardSeconds, self.Exp, self.ExpPoint, - self.MoneyInfoLen, - self.MoneyInfo, - self.ItemInfoLen, - self.ItemInfo + self.MoneyLen, + "...", + self.ItemLen, + "..." ) return DumpString -- Gitblit v1.8.0