8650 【主干】【BT2】活动规则优化(充值返利仙玉 移到主干,为节日活动类型,改为仅直充仙玉有效,配表为仙玉);
| | |
| | | BYTE IsDayReset; //是否每天重置
|
| | | };
|
| | |
|
| | | //累计充值返利仙玉活动表
|
| | |
|
| | | struct tagActRechargeRebateGold
|
| | | {
|
| | | DWORD _CfgID; //配置ID
|
| | | char ActMark; //活动组标记
|
| | | list PlatformList; //活动平台列表["平台A", "平台A", ...],配[]代表所有
|
| | | list ServerGroupIDList; //服务器ID列表
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | dict NotifyInfoStart; //全服提示信息 - 相对开始时间
|
| | | dict NotifyInfoEnd; //全服提示信息 - 相对结束时间
|
| | | list NotifyInfoLoop; //全服提示信息 - 循环广播[间隔分钟, 广播key]
|
| | | BYTE IsDayReset; //是否每天重置
|
| | | };
|
| | |
|
| | | //成长必买活动表
|
| | |
|
| | | struct tagActGrowupBuy
|
| | |
| | | char NotifyKey; //全服广播key,默认两个参数(玩家名, 档位额度)
|
| | | };
|
| | |
|
| | | //累计充值返利仙玉活动表
|
| | |
|
| | | struct tagActRechargeRebateGold
|
| | | {
|
| | | DWORD _CfgID; //配置ID
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | WORD LVLimit; //限制等级
|
| | | BYTE IsDayReset; //是否每天重置
|
| | | list TemplateIDList; //模板ID列表
|
| | | };
|
| | |
|
| | | //累计充值返利仙玉模板表
|
| | |
|
| | | struct tagRechargeRebateGoldTemplate
|
| | | {
|
| | | DWORD _TemplateID; //模板ID
|
| | | DWORD RMBMin; //充值RMB最小值
|
| | | DWORD RMBMax; //充值RMB最大值
|
| | | WORD RebateRate; //返利仙玉比例百分比
|
| | | };
|
| | |
|
| | | //成长必买活动表
|
| | |
|
| | | struct tagActGrowupBuy
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 29 累计充值返利仙玉活动信息 #tagMCActRechargeRebateGoldInfo
|
| | |
|
| | | class tagMCActRechargeRebate(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("RMBMin", c_int), # 充值RMB最小值
|
| | | ("RMBMax", c_int), # 充值RMB最大值,0代表无上限
|
| | | ("RebateRate", 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.RMBMin = 0
|
| | | self.RMBMax = 0
|
| | | self.RebateRate = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActRechargeRebate)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 29 累计充值返利仙玉活动信息 //tagMCActRechargeRebateGoldInfo:
|
| | | RMBMin:%d,
|
| | | RMBMax:%d,
|
| | | RebateRate:%d
|
| | | '''\
|
| | | %(
|
| | | self.RMBMin,
|
| | | self.RMBMax,
|
| | | self.RebateRate
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActRechargeRebateDay(Structure):
|
| | | Rebates = 0 #(BYTE Rebates)// 返利档数
|
| | | RebateInfo = list() #(vector<tagMCActRechargeRebate> RebateInfo)// 返利档信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.Rebates,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Rebates):
|
| | | temRebateInfo = tagMCActRechargeRebate()
|
| | | _pos = temRebateInfo.ReadData(_lpData, _pos)
|
| | | self.RebateInfo.append(temRebateInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Rebates = 0
|
| | | self.RebateInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | for i in range(self.Rebates):
|
| | | length += self.RebateInfo[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.Rebates)
|
| | | for i in range(self.Rebates):
|
| | | data = CommFunc.WriteString(data, self.RebateInfo[i].GetLength(), self.RebateInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Rebates:%d,
|
| | | RebateInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Rebates,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActRechargeRebateGoldInfo(Structure):
|
| | | Head = tagHead()
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
|
| | | RebateDays = 0 #(BYTE RebateDays)
|
| | | RebateDayInfo = list() #(vector<tagMCActRechargeRebateDay> RebateDayInfo)//每天对应信息; 如果只有一天,但是活动有多天,则代表每天奖励都一样
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x29
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.RebateDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.RebateDays):
|
| | | temRebateDayInfo = tagMCActRechargeRebateDay()
|
| | | _pos = temRebateDayInfo.ReadData(_lpData, _pos)
|
| | | self.RebateDayInfo.append(temRebateDayInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x29
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.LimitLV = 0
|
| | | self.IsDayReset = 0
|
| | | self.RebateDays = 0
|
| | | self.RebateDayInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 10
|
| | | length += 10
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.RebateDays):
|
| | | length += self.RebateDayInfo[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteString(data, 10, self.StartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.EndtDate)
|
| | | data = CommFunc.WriteWORD(data, self.LimitLV)
|
| | | data = CommFunc.WriteBYTE(data, self.IsDayReset)
|
| | | data = CommFunc.WriteBYTE(data, self.RebateDays)
|
| | | for i in range(self.RebateDays):
|
| | | data = CommFunc.WriteString(data, self.RebateDayInfo[i].GetLength(), self.RebateDayInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | LimitLV:%d,
|
| | | IsDayReset:%d,
|
| | | RebateDays:%d,
|
| | | RebateDayInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.LimitLV,
|
| | | self.IsDayReset,
|
| | | self.RebateDays,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActRechargeRebateGoldInfo=tagMCActRechargeRebateGoldInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActRechargeRebateGoldInfo.Head.Cmd,m_NAtagMCActRechargeRebateGoldInfo.Head.SubCmd))] = m_NAtagMCActRechargeRebateGoldInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 1D 累计充值活动信息 #tagMCActTotalRechargeInfo
|
| | |
|
| | | class tagMCTotalRechargeAwardItem(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 30 累计充值返利仙玉玩家活动信息 #tagMCRechargeRebateGoldPlayerInfo
|
| | |
|
| | | class tagMCRechargeRebateGoldPlayerInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("RechargeRMBTotal", c_int), # 活动已累计充值RMB
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x30
|
| | | 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.Cmd = 0xAA
|
| | | self.SubCmd = 0x30
|
| | | self.RechargeRMBTotal = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCRechargeRebateGoldPlayerInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 30 累计充值返利仙玉玩家活动信息 //tagMCRechargeRebateGoldPlayerInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | RechargeRMBTotal:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.RechargeRMBTotal
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCRechargeRebateGoldPlayerInfo=tagMCRechargeRebateGoldPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRebateGoldPlayerInfo.Cmd,m_NAtagMCRechargeRebateGoldPlayerInfo.SubCmd))] = m_NAtagMCRechargeRebateGoldPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 11 限时特惠活动信息 #tagMCSpringSaleInfo
|
| | |
|
| | | class tagMCSpringSaleItem(Structure):
|
| | |
| | | ("BYTE", "IsDayReset", 0),
|
| | | ),
|
| | |
|
| | | "ActRechargeRebateGold":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "ActMark", 0),
|
| | | ("list", "PlatformList", 0),
|
| | | ("list", "ServerGroupIDList", 0),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("dict", "NotifyInfoStart", 0),
|
| | | ("dict", "NotifyInfoEnd", 0),
|
| | | ("list", "NotifyInfoLoop", 0),
|
| | | ("BYTE", "IsDayReset", 0),
|
| | | ),
|
| | |
|
| | | "ActGrowupBuy":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "ActMark", 0),
|
| | |
| | | def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key]
|
| | | def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 |
| | | |
| | | # 累计充值返利仙玉活动表 |
| | | class IPY_ActRechargeRebateGold(): |
| | | |
| | | def __init__(self): |
| | | self.CfgID = 0
|
| | | self.ActMark = ""
|
| | | self.PlatformList = []
|
| | | self.ServerGroupIDList = []
|
| | | self.StartDate = ""
|
| | | self.EndDate = ""
|
| | | self.NotifyInfoStart = {}
|
| | | self.NotifyInfoEnd = {}
|
| | | self.NotifyInfoLoop = []
|
| | | self.IsDayReset = 0 |
| | | return |
| | | |
| | | def GetCfgID(self): return self.CfgID # 配置ID
|
| | | def GetActMark(self): return self.ActMark # 活动组标记
|
| | | def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
|
| | | def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表
|
| | | def GetStartDate(self): return self.StartDate # 开启日期
|
| | | def GetEndDate(self): return self.EndDate # 结束日期
|
| | | def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间
|
| | | def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间
|
| | | def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key]
|
| | | def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 |
| | | |
| | | # 成长必买活动表 |
| | | class IPY_ActGrowupBuy(): |
| | | |
| | |
| | | self.ipyActWishingWellLen = len(self.ipyActWishingWellCache)
|
| | | self.ipyActRechargePrizeCache = self.__LoadFileData("ActRechargePrize", IPY_ActRechargePrize)
|
| | | self.ipyActRechargePrizeLen = len(self.ipyActRechargePrizeCache)
|
| | | self.ipyActRechargeRebateGoldCache = self.__LoadFileData("ActRechargeRebateGold", IPY_ActRechargeRebateGold)
|
| | | self.ipyActRechargeRebateGoldLen = len(self.ipyActRechargeRebateGoldCache)
|
| | | self.ipyActGrowupBuyCache = self.__LoadFileData("ActGrowupBuy", IPY_ActGrowupBuy)
|
| | | self.ipyActGrowupBuyLen = len(self.ipyActGrowupBuyCache)
|
| | | self.ipyActTotalRechargeCache = self.__LoadFileData("ActTotalRecharge", IPY_ActTotalRecharge)
|
| | |
| | | def GetActWishingWellByIndex(self, index): return self.ipyActWishingWellCache[index]
|
| | | def GetActRechargePrizeCount(self): return self.ipyActRechargePrizeLen
|
| | | def GetActRechargePrizeByIndex(self, index): return self.ipyActRechargePrizeCache[index]
|
| | | def GetActRechargeRebateGoldCount(self): return self.ipyActRechargeRebateGoldLen
|
| | | def GetActRechargeRebateGoldByIndex(self, index): return self.ipyActRechargeRebateGoldCache[index]
|
| | | def GetActGrowupBuyCount(self): return self.ipyActGrowupBuyLen
|
| | | def GetActGrowupBuyByIndex(self, index): return self.ipyActGrowupBuyCache[index]
|
| | | def GetActTotalRechargeCount(self): return self.ipyActTotalRechargeLen
|
| | |
| | | Def_PDict_TotalRechargeAwardRecord = "TotalRechargeAwardRecord_%s" # 累计充值领奖记录,参数:(活动编号)
|
| | | Def_PDict_TotalRechargeWorldLV = "TotalRechargeWorldLV_%s" #累计充值活动开启时世界等级,参数:(活动编号)
|
| | |
|
| | | #累计充值返利仙玉活动
|
| | | Def_PDict_RechargeRebateGoldID = "RechargeRebateGoldID" # 玩家身上的累计充值活动ID,唯一标识,取活动开始日期time值
|
| | | Def_PDict_RechargeRebateGoldTemplateID = "RechargeRebateGoldTempID" # 玩家身上活动模板ID
|
| | | Def_PDict_RechargeRebateGoldRMB = "RechargeRebateGoldRMB" # 活动累计充值RMB值
|
| | |
|
| | | #充值返利活动
|
| | | Def_PDict_RechargePrizeID = "RechargePrizeID" # 玩家身上的重置返利活动ID,唯一标识,取活动开始日期time值
|
| | | Def_PDict_RechargePrizeCount = "RechargePrizeCount_%s" # 返利奖励次数,参数(充值表充值ID)
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 29 累计充值返利仙玉活动信息 #tagMCActRechargeRebateGoldInfo
|
| | |
|
| | | class tagMCActRechargeRebate(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("RMBMin", c_int), # 充值RMB最小值
|
| | | ("RMBMax", c_int), # 充值RMB最大值,0代表无上限
|
| | | ("RebateRate", 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.RMBMin = 0
|
| | | self.RMBMax = 0
|
| | | self.RebateRate = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActRechargeRebate)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 29 累计充值返利仙玉活动信息 //tagMCActRechargeRebateGoldInfo:
|
| | | RMBMin:%d,
|
| | | RMBMax:%d,
|
| | | RebateRate:%d
|
| | | '''\
|
| | | %(
|
| | | self.RMBMin,
|
| | | self.RMBMax,
|
| | | self.RebateRate
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActRechargeRebateDay(Structure):
|
| | | Rebates = 0 #(BYTE Rebates)// 返利档数
|
| | | RebateInfo = list() #(vector<tagMCActRechargeRebate> RebateInfo)// 返利档信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.Rebates,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Rebates):
|
| | | temRebateInfo = tagMCActRechargeRebate()
|
| | | _pos = temRebateInfo.ReadData(_lpData, _pos)
|
| | | self.RebateInfo.append(temRebateInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Rebates = 0
|
| | | self.RebateInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | for i in range(self.Rebates):
|
| | | length += self.RebateInfo[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.Rebates)
|
| | | for i in range(self.Rebates):
|
| | | data = CommFunc.WriteString(data, self.RebateInfo[i].GetLength(), self.RebateInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Rebates:%d,
|
| | | RebateInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Rebates,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActRechargeRebateGoldInfo(Structure):
|
| | | Head = tagHead()
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
|
| | | RebateDays = 0 #(BYTE RebateDays)
|
| | | RebateDayInfo = list() #(vector<tagMCActRechargeRebateDay> RebateDayInfo)//每天对应信息; 如果只有一天,但是活动有多天,则代表每天奖励都一样
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x29
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.RebateDays,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.RebateDays):
|
| | | temRebateDayInfo = tagMCActRechargeRebateDay()
|
| | | _pos = temRebateDayInfo.ReadData(_lpData, _pos)
|
| | | self.RebateDayInfo.append(temRebateDayInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x29
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.LimitLV = 0
|
| | | self.IsDayReset = 0
|
| | | self.RebateDays = 0
|
| | | self.RebateDayInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 10
|
| | | length += 10
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.RebateDays):
|
| | | length += self.RebateDayInfo[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteString(data, 10, self.StartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.EndtDate)
|
| | | data = CommFunc.WriteWORD(data, self.LimitLV)
|
| | | data = CommFunc.WriteBYTE(data, self.IsDayReset)
|
| | | data = CommFunc.WriteBYTE(data, self.RebateDays)
|
| | | for i in range(self.RebateDays):
|
| | | data = CommFunc.WriteString(data, self.RebateDayInfo[i].GetLength(), self.RebateDayInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | LimitLV:%d,
|
| | | IsDayReset:%d,
|
| | | RebateDays:%d,
|
| | | RebateDayInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.LimitLV,
|
| | | self.IsDayReset,
|
| | | self.RebateDays,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActRechargeRebateGoldInfo=tagMCActRechargeRebateGoldInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActRechargeRebateGoldInfo.Head.Cmd,m_NAtagMCActRechargeRebateGoldInfo.Head.SubCmd))] = m_NAtagMCActRechargeRebateGoldInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 1D 累计充值活动信息 #tagMCActTotalRechargeInfo
|
| | |
|
| | | class tagMCTotalRechargeAwardItem(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 30 累计充值返利仙玉玩家活动信息 #tagMCRechargeRebateGoldPlayerInfo
|
| | |
|
| | | class tagMCRechargeRebateGoldPlayerInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("RechargeRMBTotal", c_int), # 活动已累计充值RMB
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x30
|
| | | 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.Cmd = 0xAA
|
| | | self.SubCmd = 0x30
|
| | | self.RechargeRMBTotal = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCRechargeRebateGoldPlayerInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 30 累计充值返利仙玉玩家活动信息 //tagMCRechargeRebateGoldPlayerInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | RechargeRMBTotal:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.RechargeRMBTotal
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCRechargeRebateGoldPlayerInfo=tagMCRechargeRebateGoldPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCRechargeRebateGoldPlayerInfo.Cmd,m_NAtagMCRechargeRebateGoldPlayerInfo.SubCmd))] = m_NAtagMCRechargeRebateGoldPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 11 限时特惠活动信息 #tagMCSpringSaleInfo
|
| | |
|
| | | class tagMCSpringSaleItem(Structure):
|
| | |
| | | ("char", "NotifyKey", 0),
|
| | | ),
|
| | |
|
| | | "ActRechargeRebateGold":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("BYTE", "IsDayReset", 0),
|
| | | ("list", "TemplateIDList", 0),
|
| | | ),
|
| | |
|
| | | "RechargeRebateGoldTemplate":(
|
| | | ("DWORD", "TemplateID", 1),
|
| | | ("DWORD", "RMBMin", 0),
|
| | | ("DWORD", "RMBMax", 0),
|
| | | ("WORD", "RebateRate", 0),
|
| | | ),
|
| | |
|
| | | "ActGrowupBuy":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | |
| | | def GetAwardItem(self): return self.AwardItem # 返利物品信息列表 {职业:[(物品ID,个数,是否绑定),...]}
|
| | | def GetNotifyKey(self): return self.NotifyKey # 全服广播key,默认两个参数(玩家名, 档位额度) |
| | | |
| | | # 累计充值返利仙玉活动表 |
| | | class IPY_ActRechargeRebateGold(): |
| | | |
| | | def __init__(self): |
| | | self.CfgID = 0
|
| | | self.StartDate = ""
|
| | | self.EndDate = ""
|
| | | self.LVLimit = 0
|
| | | self.IsDayReset = 0
|
| | | self.TemplateIDList = [] |
| | | return |
| | | |
| | | def GetCfgID(self): return self.CfgID # 配置ID
|
| | | def GetStartDate(self): return self.StartDate # 开启日期
|
| | | def GetEndDate(self): return self.EndDate # 结束日期
|
| | | def GetLVLimit(self): return self.LVLimit # 限制等级
|
| | | def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
|
| | | def GetTemplateIDList(self): return self.TemplateIDList # 模板ID列表 |
| | | |
| | | # 累计充值返利仙玉模板表 |
| | | class IPY_RechargeRebateGoldTemplate(): |
| | | |
| | | def __init__(self): |
| | | self.TemplateID = 0
|
| | | self.RMBMin = 0
|
| | | self.RMBMax = 0
|
| | | self.RebateRate = 0 |
| | | return |
| | | |
| | | def GetTemplateID(self): return self.TemplateID # 模板ID
|
| | | def GetRMBMin(self): return self.RMBMin # 充值RMB最小值
|
| | | def GetRMBMax(self): return self.RMBMax # 充值RMB最大值
|
| | | def GetRebateRate(self): return self.RebateRate # 返利仙玉比例百分比 |
| | | |
| | | # 成长必买活动表 |
| | | class IPY_ActGrowupBuy(): |
| | | |
| | |
| | | self.ipyActTotalRechargeLen = len(self.ipyActTotalRechargeCache)
|
| | | self.ipyTotalRechargeTemplateCache = self.__LoadFileData("TotalRechargeTemplate", IPY_TotalRechargeTemplate)
|
| | | self.ipyTotalRechargeTemplateLen = len(self.ipyTotalRechargeTemplateCache)
|
| | | self.ipyActRechargeRebateGoldCache = self.__LoadFileData("ActRechargeRebateGold", IPY_ActRechargeRebateGold)
|
| | | self.ipyActRechargeRebateGoldLen = len(self.ipyActRechargeRebateGoldCache)
|
| | | self.ipyRechargeRebateGoldTemplateCache = self.__LoadFileData("RechargeRebateGoldTemplate", IPY_RechargeRebateGoldTemplate)
|
| | | self.ipyRechargeRebateGoldTemplateLen = len(self.ipyRechargeRebateGoldTemplateCache)
|
| | | self.ipyActGrowupBuyCache = self.__LoadFileData("ActGrowupBuy", IPY_ActGrowupBuy)
|
| | | self.ipyActGrowupBuyLen = len(self.ipyActGrowupBuyCache)
|
| | | self.ipyMagicWeaponFBCache = self.__LoadFileData("MagicWeaponFB", IPY_MagicWeaponFB)
|
| | |
| | | def GetActTotalRechargeByIndex(self, index): return self.ipyActTotalRechargeCache[index]
|
| | | def GetTotalRechargeTemplateCount(self): return self.ipyTotalRechargeTemplateLen
|
| | | def GetTotalRechargeTemplateByIndex(self, index): return self.ipyTotalRechargeTemplateCache[index]
|
| | | def GetActRechargeRebateGoldCount(self): return self.ipyActRechargeRebateGoldLen
|
| | | def GetActRechargeRebateGoldByIndex(self, index): return self.ipyActRechargeRebateGoldCache[index]
|
| | | def GetRechargeRebateGoldTemplateCount(self): return self.ipyRechargeRebateGoldTemplateLen
|
| | | def GetRechargeRebateGoldTemplateByIndex(self, index): return self.ipyRechargeRebateGoldTemplateCache[index]
|
| | | def GetActGrowupBuyCount(self): return self.ipyActGrowupBuyLen
|
| | | def GetActGrowupBuyByIndex(self, index): return self.ipyActGrowupBuyCache[index]
|
| | | def GetMagicWeaponFBCount(self): return self.ipyMagicWeaponFBLen
|
| | |
| | | import PlayerActCollectWords
|
| | | import PlayerActTotalRecharge
|
| | | import PlayerActRechargePrize
|
| | | import PlayerActRechargeRebateGold
|
| | | import PlayerSpringSale
|
| | | import PlayerFairyCeremony
|
| | | import PlayerNewFairyCeremony
|
| | |
| | | PlayerCostRebate.OnPlayerLogin(curPlayer)
|
| | | #累计充值
|
| | | PlayerActTotalRecharge.OnPlayerLogin(curPlayer)
|
| | | #累计充值返利仙玉
|
| | | PlayerActRechargeRebateGold.OnPlayerLogin(curPlayer)
|
| | | #充值返利
|
| | | PlayerActRechargePrize.OnPlayerLogin(curPlayer)
|
| | | #成长必买
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package Player.PlayerActRechargeRebateGold
|
| | | #
|
| | | # @todo:累计充值返利仙玉活动
|
| | | # @author hxp
|
| | | # @date 2020-10-15
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 累计充值返利仙玉活动(活动结束邮件发放,只算最高一档)
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2020-10-15 12:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import ChConfig
|
| | | import ShareDefine
|
| | | import PlayerControl
|
| | | import PyGameData
|
| | | import GameWorld
|
| | | import NetPackCommon
|
| | | import ChPyNetSendPack
|
| | | import IpyGameDataPY
|
| | |
|
| | | def OnPlayerLogin(curPlayer):
|
| | | isReset = __CheckPlayerRechargeRebateGoldAction(curPlayer)
|
| | | if not isReset:
|
| | | actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_RechargeRebateGold, {})
|
| | | # 活动中同步活动信息
|
| | | if actInfo.get(ShareDefine.ActKey_State):
|
| | | Sync_RechargeRebateGoldActionInfo(curPlayer)
|
| | | Sync_RechargeRebateGoldPlayerInfo(curPlayer)
|
| | | return
|
| | |
|
| | | def RefreshRechargeRebateGoldActionInfo():
|
| | | ## 收到GameServer同步的活动信息,刷新活动信息
|
| | | playerManager = GameWorld.GetPlayerManager()
|
| | | for index in xrange(playerManager.GetPlayerCount()):
|
| | | curPlayer = playerManager.GetPlayerByIndex(index)
|
| | | if curPlayer.GetID() == 0:
|
| | | continue
|
| | | __CheckPlayerRechargeRebateGoldAction(curPlayer)
|
| | | return
|
| | |
|
| | | def __CheckPlayerRechargeRebateGoldAction(curPlayer):
|
| | | ## 检查玩家累计充值活动数据信息
|
| | | |
| | | playerID = curPlayer.GetPlayerID()
|
| | | |
| | | actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_RechargeRebateGold, {})
|
| | | actID = actInfo.get(ShareDefine.ActKey_ID, 0)
|
| | | state = actInfo.get(ShareDefine.ActKey_State, 0)
|
| | | |
| | | playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RechargeRebateGoldID) # 玩家身上的活动ID
|
| | | templateID = GetTemplateID(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0))
|
| | | playerTemplateID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RechargeRebateGoldTemplateID)
|
| | | |
| | | # 活动ID 相同的话不处理
|
| | | if actID == playerActID:
|
| | | GameWorld.DebugLog("累计充值返利仙玉活动ID不变,不处理!", playerID)
|
| | | if state:
|
| | | if playerTemplateID != templateID and templateID:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RechargeRebateGoldTemplateID, templateID)
|
| | | GameWorld.DebugLog(" 活动模板ID变更,更新玩家身上模板ID记录!playerTemplateID=%s,updTemplateID=%s" |
| | | % (playerTemplateID, templateID), playerID)
|
| | | return
|
| | | |
| | | GameWorld.DebugLog("累计充值返利仙玉活动重置! actID=%s,playerActID=%s,state=%s" % (actID, playerActID, state), playerID)
|
| | | |
| | | totalRMB = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RechargeRebateGoldRMB)
|
| | | if playerActID and playerTemplateID and totalRMB > 0:
|
| | | __SendRebateGoldMail(curPlayer, playerTemplateID, totalRMB)
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RechargeRebateGoldID, actID)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RechargeRebateGoldTemplateID, templateID)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RechargeRebateGoldRMB, 0)
|
| | | |
| | | Sync_RechargeRebateGoldActionInfo(curPlayer)
|
| | | Sync_RechargeRebateGoldPlayerInfo(curPlayer)
|
| | | return True
|
| | |
|
| | | def GetTemplateID(cfgID, dayIndex):
|
| | | if cfgID == None or dayIndex == None:
|
| | | return 0
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActRechargeRebateGold", cfgID) |
| | | if not ipyData:
|
| | | return 0
|
| | | templateIDList = ipyData.GetTemplateIDList()
|
| | | templateID = templateIDList[-1] if dayIndex >= len(templateIDList) else templateIDList[dayIndex]
|
| | | return templateID
|
| | |
|
| | | def __SendRebateGoldMail(curPlayer, playerTemplateID, totalRMB):
|
| | | ## 发送返利奖励邮件,取最大奖励档发奖励
|
| | | |
| | | playerID = curPlayer.GetPlayerID()
|
| | | GameWorld.DebugLog("累计充值返利仙玉发送奖励邮件! playerTemplateID=%s,totalRMB=%s" % (playerTemplateID, totalRMB), playerID)
|
| | | |
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataList("RechargeRebateGoldTemplate", playerTemplateID)
|
| | | if not ipyDataList:
|
| | | return
|
| | | |
| | | rebateIpyData = None
|
| | | for ipyData in ipyDataList:
|
| | | rmbMin = ipyData.GetRMBMin()
|
| | | rmbMax = ipyData.GetRMBMax()
|
| | | if (rmbMin <= totalRMB <= rmbMax) or (rmbMin <= totalRMB and rmbMax == 0):
|
| | | rebateIpyData = ipyData
|
| | | break
|
| | | |
| | | if not rebateIpyData:
|
| | | GameWorld.DebugLog("玩家无返利仙玉奖励!", playerID)
|
| | | return
|
| | | |
| | | rebateRate = rebateIpyData.GetRebateRate()
|
| | | addItemList = []
|
| | | paramList = [totalRMB, rebateRate]
|
| | | gold = min(int(totalRMB * rebateRate / 100.0), ShareDefine.Def_UpperLimit_DWord)
|
| | | GameWorld.DebugLog(" 返利仙玉百分比=%s%%, gold=%s" % (rebateRate, gold), playerID)
|
| | | PlayerControl.SendMailByKey("RechargeRebateGold", [playerID], addItemList, paramList, gold)
|
| | | return
|
| | |
|
| | | def AddRechargeRebateGoldRMB(curPlayer, addRMB):
|
| | | ## 增加活动已累计充值RMB, 主干分支记录的是仙玉,只算直充,主干没有RMB对应比例配置,直接记录仙玉
|
| | | actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_RechargeRebateGold, {}) |
| | | if not actInfo:
|
| | | return
|
| | | |
| | | if not actInfo.get(ShareDefine.ActKey_State):
|
| | | return
|
| | | |
| | | totalRMB = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RechargeRebateGoldRMB) + addRMB
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RechargeRebateGoldRMB, totalRMB)
|
| | | |
| | | GameWorld.DebugLog("累计充值返利仙玉活动增加玩家累计充值RMB: addRMB=%s,totalRMB=%s" % (addRMB, totalRMB), curPlayer.GetPlayerID())
|
| | | Sync_RechargeRebateGoldPlayerInfo(curPlayer)
|
| | | return
|
| | |
|
| | |
|
| | | def Sync_RechargeRebateGoldPlayerInfo(curPlayer):
|
| | | ## 通知累计充值返利仙玉活动玩家数据信息
|
| | | playerActInfo = ChPyNetSendPack.tagMCRechargeRebateGoldPlayerInfo()
|
| | | playerActInfo.RechargeRMBTotal = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RechargeRebateGoldRMB)
|
| | | NetPackCommon.SendFakePack(curPlayer, playerActInfo)
|
| | | return
|
| | |
|
| | | def Sync_RechargeRebateGoldActionInfo(curPlayer):
|
| | | ## 通知累计充值返利仙玉活动信息
|
| | | |
| | | actInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_RechargeRebateGold, {}) |
| | | if not actInfo:
|
| | | return
|
| | | |
| | | if not actInfo.get(ShareDefine.ActKey_State):
|
| | | return
|
| | | |
| | | cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActRechargeRebateGold", cfgID)
|
| | | if not ipyData:
|
| | | return
|
| | | |
| | | templateIDList = ipyData.GetTemplateIDList()
|
| | | if not templateIDList:
|
| | | return
|
| | | |
| | | openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
|
| | | actInfo = ChPyNetSendPack.tagMCActRechargeRebateGoldInfo()
|
| | | actInfo.StartDate = GameWorld.GetOperationActionDateStr(ipyData.GetStartDate(), openServerDay)
|
| | | actInfo.EndtDate = GameWorld.GetOperationActionDateStr(ipyData.GetEndDate(), openServerDay)
|
| | | actInfo.LimitLV = ipyData.GetLVLimit()
|
| | | actInfo.IsDayReset = ipyData.GetIsDayReset()
|
| | | actInfo.RebateDayInfo = []
|
| | | for templateID in templateIDList:
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataList("RechargeRebateGoldTemplate", templateID)
|
| | | if not ipyDataList:
|
| | | continue
|
| | | |
| | | dayInfo = ChPyNetSendPack.tagMCActRechargeRebateDay()
|
| | | dayInfo.RebateInfo = []
|
| | | for dayIpyData in ipyDataList:
|
| | | rebateInfo = ChPyNetSendPack.tagMCActRechargeRebate()
|
| | | rebateInfo.RMBMin = dayIpyData.GetRMBMin()
|
| | | rebateInfo.RMBMax = dayIpyData.GetRMBMax()
|
| | | rebateInfo.RebateRate = dayIpyData.GetRebateRate()
|
| | | dayInfo.RebateInfo.append(rebateInfo)
|
| | | |
| | | dayInfo.Rebates = len(dayInfo.RebateInfo)
|
| | | actInfo.RebateDayInfo.append(dayInfo)
|
| | | |
| | | actInfo.RebateDays = len(actInfo.RebateDayInfo)
|
| | | NetPackCommon.SendFakePack(curPlayer, actInfo)
|
| | | return
|
| | |
| | | import PlayerNewFairyCeremony
|
| | | import PlayerGoldGift
|
| | | import PlayerActTotalRecharge
|
| | | import PlayerActRechargeRebateGold
|
| | | import PlayerActRechargePrize
|
| | | import CrossActCTGBillboard
|
| | | import PlayerActGrowupBuy
|
| | |
| | | #跨服充值排行活动
|
| | | CrossActCTGBillboard.AddCTGRMB(curPlayer, orderCoin)
|
| | |
|
| | | # 只算充仙玉的
|
| | | if coinType == CoinType_Gold:
|
| | | PlayerActRechargeRebateGold.AddRechargeRebateGoldRMB(curPlayer, addGold)
|
| | | |
| | | #仙界盛典-充值大礼
|
| | | PlayerFairyCeremony.OnFCRecharge(curPlayer)
|
| | | PlayerNewFairyCeremony.OnFCRecharge(curPlayer)
|
| | |
| | | import CrossActCTGBillboard
|
| | | import PlayerActCollectWords
|
| | | import PlayerActTotalRecharge
|
| | | import PlayerActRechargeRebateGold
|
| | | import PlayerActRechargePrize
|
| | | import PlayerActGrowupBuy
|
| | | import PlayerSpringSale
|
| | |
| | | elif actionName == ShareDefine.OperationActionName_GrowupBuy:
|
| | | PlayerActGrowupBuy.RefreshGrowupBuyActionInfo()
|
| | |
|
| | | elif actionName == ShareDefine.OperationActionName_RechargeRebateGold:
|
| | | PlayerActRechargeRebateGold.RefreshRechargeRebateGoldActionInfo()
|
| | | |
| | | return
|
| | |
|
| | | if key.startswith(ShareDefine.Def_Notify_WorldKey_CrossActInfo[:-2]):
|