hxp
2024-10-22 42acce8c95ab0a1435426419fcc46e7170639003
10287 【英文】1折活动(增加推金币累计获得货币奖励通知;AA05)
4个文件已修改
245 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuperDiscount.py 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -47753,6 +47753,114 @@
#------------------------------------------------------
# AA 05 推金币信息 #tagMCTuijinbiInfo
class  tagMCTuijinbiMoney(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(tagMCTuijinbiMoney)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 05 推金币信息 //tagMCTuijinbiInfo:
                                MoneyType:%d,
                                MoneyValue:%d
                                '''\
                                %(
                                self.MoneyType,
                                self.MoneyValue
                                )
        return DumpString
class  tagMCTuijinbiInfo(Structure):
    Head = tagHead()
    AwardMoneyCount = 0    #(BYTE AwardMoneyCount)
    AwardMoneyList = list()    #(vector<tagMCTuijinbiMoney> AwardMoneyList)// 累计获得货币信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x05
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.AwardMoneyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardMoneyCount):
            temAwardMoneyList = tagMCTuijinbiMoney()
            _pos = temAwardMoneyList.ReadData(_lpData, _pos)
            self.AwardMoneyList.append(temAwardMoneyList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x05
        self.AwardMoneyCount = 0
        self.AwardMoneyList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.AwardMoneyCount):
            length += self.AwardMoneyList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.AwardMoneyCount)
        for i in range(self.AwardMoneyCount):
            data = CommFunc.WriteString(data, self.AwardMoneyList[i].GetLength(), self.AwardMoneyList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                AwardMoneyCount:%d,
                                AwardMoneyList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.AwardMoneyCount,
                                "..."
                                )
        return DumpString
m_NAtagMCTuijinbiInfo=tagMCTuijinbiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTuijinbiInfo.Head.Cmd,m_NAtagMCTuijinbiInfo.Head.SubCmd))] = m_NAtagMCTuijinbiInfo
#------------------------------------------------------
# AA 0A 周狂欢活动信息 #tagMCWeekPartyInfo
class  tagMCWeekPartyItem(Structure):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -47753,6 +47753,114 @@
#------------------------------------------------------
# AA 05 推金币信息 #tagMCTuijinbiInfo
class  tagMCTuijinbiMoney(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(tagMCTuijinbiMoney)
    def GetBuffer(self):
        return string_at(addressof(self), self.GetLength())
    def OutputString(self):
        DumpString = '''// AA 05 推金币信息 //tagMCTuijinbiInfo:
                                MoneyType:%d,
                                MoneyValue:%d
                                '''\
                                %(
                                self.MoneyType,
                                self.MoneyValue
                                )
        return DumpString
class  tagMCTuijinbiInfo(Structure):
    Head = tagHead()
    AwardMoneyCount = 0    #(BYTE AwardMoneyCount)
    AwardMoneyList = list()    #(vector<tagMCTuijinbiMoney> AwardMoneyList)// 累计获得货币信息列表
    data = None
    def __init__(self):
        self.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x05
        return
    def ReadData(self, _lpData, _pos=0, _Len=0):
        self.Clear()
        _pos = self.Head.ReadData(_lpData, _pos)
        self.AwardMoneyCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
        for i in range(self.AwardMoneyCount):
            temAwardMoneyList = tagMCTuijinbiMoney()
            _pos = temAwardMoneyList.ReadData(_lpData, _pos)
            self.AwardMoneyList.append(temAwardMoneyList)
        return _pos
    def Clear(self):
        self.Head = tagHead()
        self.Head.Clear()
        self.Head.Cmd = 0xAA
        self.Head.SubCmd = 0x05
        self.AwardMoneyCount = 0
        self.AwardMoneyList = list()
        return
    def GetLength(self):
        length = 0
        length += self.Head.GetLength()
        length += 1
        for i in range(self.AwardMoneyCount):
            length += self.AwardMoneyList[i].GetLength()
        return length
    def GetBuffer(self):
        data = ''
        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
        data = CommFunc.WriteBYTE(data, self.AwardMoneyCount)
        for i in range(self.AwardMoneyCount):
            data = CommFunc.WriteString(data, self.AwardMoneyList[i].GetLength(), self.AwardMoneyList[i].GetBuffer())
        return data
    def OutputString(self):
        DumpString = '''
                                Head:%s,
                                AwardMoneyCount:%d,
                                AwardMoneyList:%s
                                '''\
                                %(
                                self.Head.OutputString(),
                                self.AwardMoneyCount,
                                "..."
                                )
        return DumpString
m_NAtagMCTuijinbiInfo=tagMCTuijinbiInfo()
ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTuijinbiInfo.Head.Cmd,m_NAtagMCTuijinbiInfo.Head.SubCmd))] = m_NAtagMCTuijinbiInfo
#------------------------------------------------------
# AA 0A 周狂欢活动信息 #tagMCWeekPartyInfo
class  tagMCWeekPartyItem(Structure):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -165,6 +165,7 @@
import PlayerChatBox
import PlayerXiangong
import PlayerMineArea
import PlayerSuperDiscount
import PlayerActLoginNew
import PlayerActBuyCountGift
import PlayerActTask
@@ -1001,6 +1002,7 @@
        PlayerZhanling.OnPlayerLogin(curPlayer)
        PlayerMineArea.OnPlayerLogin(curPlayer)
        PlayerGuaji.OnPlayerLogin(curPlayer)
        PlayerSuperDiscount.OnPlayerLogin(curPlayer)
        
        # 上线查询一次充值订单
        curPlayer.SendDBQueryRecharge()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuperDiscount.py
@@ -18,9 +18,15 @@
import GameWorld
import IpyGameDataPY
import PlayerControl
import ChPyNetSendPack
import NetPackCommon
import ShareDefine
import ChConfig
import time
def OnPlayerLogin(curPlayer):
    SyncTuijinbiInfo(curPlayer)
    return
def PlayerOnDay(curPlayer):
    GiveTuijinbiByDay(curPlayer)
@@ -106,8 +112,29 @@
        GameWorld.DebugLog("更新推金币奖励: moneyType=%s,moneyValue=%s,giveMoney=%s,updMoneyTotal=%s" 
                           % (moneyType, moneyValue, giveMoney, updMoneyTotal), playerID)
        PlayerControl.GiveMoney(curPlayer, moneyType, giveMoney, "Tuijinbi")
        SyncTuijinbiInfo(curPlayer)
        
    elif opType == 2:
        __DoActiveSuperDiscount(curPlayer)
        
    return
def SyncTuijinbiInfo(curPlayer):
    awardMoneyList = []
    moneyUpperLimitDict = IpyGameDataPY.GetFuncEvalCfg("EnSuperDiscount", 3, {})
    for moneyType in moneyUpperLimitDict.keys():
        moneyTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TuiJinbiMoney % moneyType)
        if not moneyTotal:
            continue
        moneyInfo = ChPyNetSendPack.tagMCTuijinbiMoney()
        moneyInfo.MoneyType = moneyType
        moneyInfo.MoneyValue = moneyTotal
        awardMoneyList.append(moneyInfo)
    if not awardMoneyList:
        return
    clientPack = ChPyNetSendPack.tagMCTuijinbiInfo()
    clientPack.AwardMoneyList = awardMoneyList
    clientPack.AwardMoneyCount = len(clientPack.AwardMoneyList)
    NetPackCommon.SendFakePack(curPlayer, clientPack)
    return