hxp
2024-06-13 da731f6c88057f8b5ab7c5f8888a7545f8c977e1
10178 【越南】【香港】【主干】挂机奖励(B109封包修改)
3个文件已修改
307 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 142 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 142 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGuaji.py 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/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
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGuaji.py
@@ -415,10 +415,25 @@
    clientPack.AwardSeconds = awardSeconds
    clientPack.Exp = exp % ChConfig.Def_PerPointValue
    clientPack.ExpPoint = exp / ChConfig.Def_PerPointValue
    clientPack.MoneyInfo = str([[moneyType, moneyValue] for moneyType, moneyValue in moneyDict.items()]).replace(" ", "") if moneyDict else "[]"
    clientPack.MoneyInfoLen = len(clientPack.MoneyInfo)
    clientPack.ItemInfo = str([[itemID, itemCount] for itemID, itemCount in itemDict.items()]).replace(" ", "") if itemDict else "[]"
    clientPack.ItemInfoLen = len(clientPack.ItemInfo)
    clientPack.MoneyList = []
    if moneyDict:
        for moneyType, moneyValue in moneyDict.items():
            money = ChPyNetSendPack.tagMCGuajiMoney()
            money.MoneyType = moneyType
            money.MoneyValue = moneyValue
            clientPack.MoneyList.append(money)
    clientPack.MoneyLen = len(clientPack.MoneyList)
    clientPack.ItemList = []
    if itemDict:
        for itemID, itemCount in itemDict.items():
            item = ChPyNetSendPack.tagMCGuajiItem()
            item.ItemID = itemID
            item.Count = itemCount
            clientPack.ItemList.append(item)
    clientPack.ItemLen = len(clientPack.ItemList)
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return