10173 【主干】【香港】【越南】BOSS凭证(新增任务活动)
| | |
| | | WORD LVLimit; //限制等级
|
| | | };
|
| | |
|
| | | //任务活动时间表
|
| | |
|
| | | struct tagActTask
|
| | | {
|
| | | DWORD _CfgID; //配置ID
|
| | | list PlatformList; //活动平台列表["平台A", "平台A", ...],配[]代表所有
|
| | | list ServerGroupIDList; //服务器ID列表
|
| | | BYTE ActNum; //活动分组编号, 活动类型 * 10 + 不同界面编号
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | dict NotifyInfoStart; //全服提示信息 - 相对开始时间
|
| | | dict NotifyInfoEnd; //全服提示信息 - 相对结束时间
|
| | | list NotifyInfoLoop; //全服提示信息 - 循环广播[间隔分钟, 广播key]
|
| | | BYTE IsDayReset; //是否每天重置
|
| | | BYTE ResetType; //重置类型,0-0点重置;1-5点重置
|
| | | };
|
| | |
|
| | | //登录活动奖励时间表新
|
| | |
|
| | | struct tagActLoginNew
|
| | |
| | | WORD Point; //积分
|
| | | };
|
| | |
|
| | | //任务活动时间表
|
| | |
|
| | | struct tagActTask
|
| | | {
|
| | | DWORD _CfgID; //配置ID
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | WORD LVLimit; //限制等级
|
| | | BYTE IsDayReset; //是否每天重置
|
| | | BYTE ResetType; //重置类型,0-0点重置;1-5点重置
|
| | | BYTE TemplateID; //登录奖励模板编号
|
| | | };
|
| | |
|
| | | //任务活动模板表
|
| | |
|
| | | struct tagActTaskTemp
|
| | | {
|
| | | BYTE _TemplateID; //模板ID
|
| | | DWORD TaskID; //任务ID
|
| | | BYTE TaskType; //任务类型
|
| | | DWORD NeedValue; //完成任务所需值
|
| | | list AwardItemList; //任务奖励列表[[物品ID,个数,是否拍品], ...]
|
| | | };
|
| | |
|
| | | //登录活动奖励时间表新
|
| | |
|
| | | struct tagActLoginNew
|
| | |
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ActNum", c_ubyte), # 活动编号
|
| | | ("LoginAward", c_int), # 是否已领取,按天索引0代表第1天记录当天是否已领取
|
| | | ]
|
| | |
|
| | |
| | | def Clear(self):
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x70
|
| | | self.ActNum = 0
|
| | | self.LoginAward = 0
|
| | | return
|
| | |
|
| | |
| | | DumpString = '''// AA 70 登录活动玩家信息新 //tagMCActLoginPlayerInfoNew:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ActNum:%d,
|
| | | LoginAward:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ActNum,
|
| | | self.LoginAward
|
| | | )
|
| | | return DumpString
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 71 任务活动信息 #tagMCActTaskInfo
|
| | |
|
| | | class tagMCActTaskItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("ItemID", c_int), |
| | | ("ItemCount", c_ushort), |
| | | ("IsBind", c_ubyte), |
| | | ]
|
| | |
|
| | | 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.ItemCount = 0
|
| | | self.IsBind = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActTaskItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 71 任务活动信息 //tagMCActTaskInfo:
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActTask(Structure):
|
| | | TaskID = 0 #(DWORD TaskID)// 任务ID,1~n
|
| | | TaskType = 0 #(BYTE TaskType)// 任务类型
|
| | | NeedValue = 0 #(DWORD NeedValue)// 完成任务所需值
|
| | | Count = 0 #(BYTE Count)// 奖励物品数
|
| | | AwardItemList = list() #(vector<tagMCActTaskItem> AwardItemList)// 奖励物品列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.TaskID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.TaskType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NeedValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temAwardItemList = tagMCActTaskItem()
|
| | | _pos = temAwardItemList.ReadData(_lpData, _pos)
|
| | | self.AwardItemList.append(temAwardItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.TaskID = 0
|
| | | self.TaskType = 0
|
| | | self.NeedValue = 0
|
| | | self.Count = 0
|
| | | self.AwardItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.AwardItemList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.TaskID)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskType)
|
| | | data = CommFunc.WriteDWORD(data, self.NeedValue)
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | TaskID:%d,
|
| | | TaskType:%d,
|
| | | NeedValue:%d,
|
| | | Count:%d,
|
| | | AwardItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.TaskID,
|
| | | self.TaskType,
|
| | | self.NeedValue,
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActTaskInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)// 活动编号
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | IsDayReset = 0 #(BYTE IsDayReset)// 是否每天重置
|
| | | ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | TaskCount = 0 #(BYTE TaskCount)
|
| | | TaskList = list() #(vector<tagMCActTask> TaskList)// 任务列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x71
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TaskCount):
|
| | | temTaskList = tagMCActTask()
|
| | | _pos = temTaskList.ReadData(_lpData, _pos)
|
| | | self.TaskList.append(temTaskList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x71
|
| | | self.ActNum = 0
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.IsDayReset = 0
|
| | | self.ResetType = 0
|
| | | self.LimitLV = 0
|
| | | self.TaskCount = 0
|
| | | self.TaskList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 10
|
| | | length += 10
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.TaskCount):
|
| | | length += self.TaskList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteString(data, 10, self.StartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.EndtDate)
|
| | | data = CommFunc.WriteBYTE(data, self.IsDayReset)
|
| | | data = CommFunc.WriteBYTE(data, self.ResetType)
|
| | | data = CommFunc.WriteWORD(data, self.LimitLV)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskCount)
|
| | | for i in range(self.TaskCount):
|
| | | data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | IsDayReset:%d,
|
| | | ResetType:%d,
|
| | | LimitLV:%d,
|
| | | TaskCount:%d,
|
| | | TaskList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.IsDayReset,
|
| | | self.ResetType,
|
| | | self.LimitLV,
|
| | | self.TaskCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActTaskInfo=tagMCActTaskInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskInfo.Head.Cmd,m_NAtagMCActTaskInfo.Head.SubCmd))] = m_NAtagMCActTaskInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 73 任务活动玩家信息 #tagMCActTaskPlayerInfo
|
| | |
|
| | | class tagMCActTaskPlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)// 活动编号
|
| | | AwardCount = 0 #(BYTE AwardCount)
|
| | | AwardRecordList = list() #(vector<DWORD> AwardRecordList)// 任务ID领奖记录值列表,根据任务ID位判断是否已领取,一个记录值存31位 [记录值0, 记录值1, ...]
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x73
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AwardCount):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.AwardRecordList.append(value)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x73
|
| | | self.ActNum = 0
|
| | | self.AwardCount = 0
|
| | | self.AwardRecordList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4 * self.AwardCount
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteBYTE(data, self.AwardCount)
|
| | | for i in range(self.AwardCount):
|
| | | data = CommFunc.WriteDWORD(data, self.AwardRecordList[i])
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | AwardCount:%d,
|
| | | AwardRecordList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.AwardCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActTaskPlayerInfo=tagMCActTaskPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskPlayerInfo.Head.Cmd,m_NAtagMCActTaskPlayerInfo.Head.SubCmd))] = m_NAtagMCActTaskPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 72 任务活动玩家任务值 #tagMCActTaskPlayerValueInfo
|
| | |
|
| | | class tagMCActTaskPlayerValue(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("TaskType", c_ubyte), # 任务类型
|
| | | ("TaskValue", 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.TaskType = 0
|
| | | self.TaskValue = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActTaskPlayerValue)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 72 任务活动玩家任务值 //tagMCActTaskPlayerValueInfo:
|
| | | TaskType:%d,
|
| | | TaskValue:%d
|
| | | '''\
|
| | | %(
|
| | | self.TaskType,
|
| | | self.TaskValue
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActTaskPlayerValueInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)// 活动编号
|
| | | TaskCount = 0 #(BYTE TaskCount)
|
| | | TaskValueList = list() #(vector<tagMCActTaskPlayerValue> TaskValueList)// 有同步的任务类型直接覆盖即可
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x72
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TaskCount):
|
| | | temTaskValueList = tagMCActTaskPlayerValue()
|
| | | _pos = temTaskValueList.ReadData(_lpData, _pos)
|
| | | self.TaskValueList.append(temTaskValueList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x72
|
| | | self.ActNum = 0
|
| | | self.TaskCount = 0
|
| | | self.TaskValueList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.TaskCount):
|
| | | length += self.TaskValueList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskCount)
|
| | | for i in range(self.TaskCount):
|
| | | data = CommFunc.WriteString(data, self.TaskValueList[i].GetLength(), self.TaskValueList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | TaskCount:%d,
|
| | | TaskValueList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.TaskCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActTaskPlayerValueInfo=tagMCActTaskPlayerValueInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskPlayerValueInfo.Head.Cmd,m_NAtagMCActTaskPlayerValueInfo.Head.SubCmd))] = m_NAtagMCActTaskPlayerValueInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 1D 累计充值活动信息 #tagMCActTotalRechargeInfo
|
| | |
|
| | | class tagMCTotalRechargeAwardItem(Structure):
|
| | |
| | | ("WORD", "LVLimit", 0),
|
| | | ),
|
| | |
|
| | | "ActTask":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("list", "PlatformList", 0),
|
| | | ("list", "ServerGroupIDList", 0),
|
| | | ("BYTE", "ActNum", 0),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("dict", "NotifyInfoStart", 0),
|
| | | ("dict", "NotifyInfoEnd", 0),
|
| | | ("list", "NotifyInfoLoop", 0),
|
| | | ("BYTE", "IsDayReset", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ),
|
| | |
|
| | | "ActLoginNew":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("list", "PlatformList", 0),
|
| | |
| | | def GetNotifyInfoEnd(self): return self.attrTuple[10] # 全服提示信息 - 相对结束时间 dict
|
| | | def GetLVLimit(self): return self.attrTuple[11] # 限制等级 WORD |
| | | |
| | | # 任务活动时间表 |
| | | class IPY_ActTask(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
|
| | | def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list
|
| | | def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list
|
| | | def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
|
| | | def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
|
| | | def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
|
| | | def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
|
| | | def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
|
| | | def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
|
| | | def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE
|
| | | def GetResetType(self): return self.attrTuple[10] # 重置类型,0-0点重置;1-5点重置 BYTE |
| | | |
| | | # 登录活动奖励时间表新 |
| | | class IPY_ActLoginNew(): |
| | | |
| | |
| | | self.__LoadFileData("CrossDemonLandZoneMap", onlyCheck)
|
| | | self.__LoadFileData("CrossFamilyFlagwarZoneMap", onlyCheck)
|
| | | self.__LoadFileData("ActWeekParty", onlyCheck)
|
| | | self.__LoadFileData("ActTask", onlyCheck)
|
| | | self.__LoadFileData("ActLoginNew", onlyCheck)
|
| | | self.__LoadFileData("ActLoginAward", onlyCheck)
|
| | | self.__LoadFileData("ActFeastWeekParty", onlyCheck)
|
| | |
| | | self.CheckLoadData("ActWeekParty") |
| | | return self.ipyActWeekPartyCache[index]
|
| | | |
| | | def GetActTaskCount(self): |
| | | self.CheckLoadData("ActTask") |
| | | return self.ipyActTaskLen
|
| | | def GetActTaskByIndex(self, index): |
| | | self.CheckLoadData("ActTask") |
| | | return self.ipyActTaskCache[index]
|
| | | |
| | | def GetActLoginNewCount(self): |
| | | self.CheckLoadData("ActLoginNew") |
| | | return self.ipyActLoginNewLen
|
| | |
| | | OperationActionName_BuyOne = "ActBuyOne" # 买一送多活动
|
| | | OperationActionName_BossTrial = "ActBossTrial" # Boss历练
|
| | | OperationActionName_ActLoginNew = "ActLoginNew" # 登录活动-新
|
| | | OperationActionName_ActTask = "ActTask" # 活动任务
|
| | | #节日活动类型列表 - 该类型无视开服天,日期到了就开启
|
| | | FeastOperationActionNameList = [OperationActionName_FeastWeekParty, OperationActionName_FeastRedPacket,
|
| | | OperationActionName_RechargeRebateGold, OperationActionName_GrowupBuy,
|
| | |
| | | OperationActionName_Turntable, OperationActionName_HorsePetFeast, OperationActionName_GarbageSorting,
|
| | | OperationActionName_XianXiaMJ, OperationActionName_GodGift,
|
| | | OperationActionName_BuyOne, OperationActionName_BossTrial,
|
| | | OperationActionName_ActLoginNew,
|
| | | OperationActionName_ActLoginNew, OperationActionName_ActTask,
|
| | | ] + FeastOperationActionNameList
|
| | | #需要记录开启活动时的世界等级的运营活动
|
| | | NeedWorldLVOperationActNameList = [OperationActionName_FairyCeremony, OperationActionName_WishingWell,
|
| | |
| | | OperationActionName_Turntable, OperationActionName_HorsePetFeast, OperationActionName_GarbageSorting,
|
| | | OperationActionName_XianXiaMJ, OperationActionName_GodGift,
|
| | | OperationActionName_BuyOne, OperationActionName_BossTrial,
|
| | | OperationActionName_ActLoginNew,
|
| | | OperationActionName_ActLoginNew, OperationActionName_ActTask,
|
| | | ]
|
| | |
|
| | | #跨服运营活动表名定义
|
| | |
| | | #登录活动新
|
| | | Def_PDict_ActLoginNewID = "ActLoginNewID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
|
| | | Def_PDict_ActLoginNewAward = "ActLoginNewAward_%s" # 登录活动奖励记录,按位记录登录天是否已领取,参数:(活动编号)
|
| | |
|
| | | #任务活动
|
| | | Def_PDict_ActTaskID = "ActTaskID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
|
| | | Def_PDict_ActTaskTempID = "ActTaskTempID_%s" # 任务活动模板ID,参数:(活动编号)
|
| | | Def_PDict_ActTaskValue = "ActTaskValue_%s_%s" # 任务活动当前任务进度值,参数:(活动编号, 任务类型)
|
| | | Def_PDict_ActTaskAward = "ActTaskAward_%s_%s" # 任务活动奖励记录,按位记录任务ID是否已领取,参数:(活动编号,key编号)
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | #开服活动,Def_PDictType_OpenServerCampaign
|
| | |
| | | Def_RewardType_RealmLVUpTask, #境界渡劫任务条件奖励 68
|
| | | Def_RewardType_MineTreasure, #福地聚宝盆奖励 69
|
| | | Def_RewardType_ActLoginAwardNew, # 领取登录活动奖励70
|
| | | )= range(71)
|
| | | Def_RewardType_ActTask, # 领取任务活动奖励71
|
| | | )= range(72)
|
| | |
|
| | | #boss复活相关活动定义
|
| | | BossRebornActIDList = (
|
| | |
| | | Def_GarbageTask_CTG, # 充值仙玉 13
|
| | | ) = range(1, 1 + 13)
|
| | |
|
| | | #任务活动 - 任务类型
|
| | | ActTaskTypeList = (
|
| | | ActTaskType_WorldBoss, # 击杀世界boss 1
|
| | | ActTaskType_BossHome, # 击杀boss之家 2
|
| | | ActTaskType_Activity, # 累计获得活跃度 3
|
| | | ) = range(1, 1 + 3)
|
| | |
|
| | | # 套装枚举,普通套装,强化套装
|
| | | (EquipSuitType_Normal,
|
| | | EquipSuitType_Plus,
|
| | |
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("ActNum", c_ubyte), # 活动编号
|
| | | ("LoginAward", c_int), # 是否已领取,按天索引0代表第1天记录当天是否已领取
|
| | | ]
|
| | |
|
| | |
| | | def Clear(self):
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x70
|
| | | self.ActNum = 0
|
| | | self.LoginAward = 0
|
| | | return
|
| | |
|
| | |
| | | DumpString = '''// AA 70 登录活动玩家信息新 //tagMCActLoginPlayerInfoNew:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | ActNum:%d,
|
| | | LoginAward:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.ActNum,
|
| | | self.LoginAward
|
| | | )
|
| | | return DumpString
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 71 任务活动信息 #tagMCActTaskInfo
|
| | |
|
| | | class tagMCActTaskItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("ItemID", c_int), |
| | | ("ItemCount", c_ushort), |
| | | ("IsBind", c_ubyte), |
| | | ]
|
| | |
|
| | | 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.ItemCount = 0
|
| | | self.IsBind = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActTaskItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 71 任务活动信息 //tagMCActTaskInfo:
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActTask(Structure):
|
| | | TaskID = 0 #(DWORD TaskID)// 任务ID,1~n
|
| | | TaskType = 0 #(BYTE TaskType)// 任务类型
|
| | | NeedValue = 0 #(DWORD NeedValue)// 完成任务所需值
|
| | | Count = 0 #(BYTE Count)// 奖励物品数
|
| | | AwardItemList = list() #(vector<tagMCActTaskItem> AwardItemList)// 奖励物品列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.TaskID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.TaskType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NeedValue,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temAwardItemList = tagMCActTaskItem()
|
| | | _pos = temAwardItemList.ReadData(_lpData, _pos)
|
| | | self.AwardItemList.append(temAwardItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.TaskID = 0
|
| | | self.TaskType = 0
|
| | | self.NeedValue = 0
|
| | | self.Count = 0
|
| | | self.AwardItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 1
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.AwardItemList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.TaskID)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskType)
|
| | | data = CommFunc.WriteDWORD(data, self.NeedValue)
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | TaskID:%d,
|
| | | TaskType:%d,
|
| | | NeedValue:%d,
|
| | | Count:%d,
|
| | | AwardItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.TaskID,
|
| | | self.TaskType,
|
| | | self.NeedValue,
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActTaskInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)// 活动编号
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | IsDayReset = 0 #(BYTE IsDayReset)// 是否每天重置
|
| | | ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | TaskCount = 0 #(BYTE TaskCount)
|
| | | TaskList = list() #(vector<tagMCActTask> TaskList)// 任务列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x71
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.StartDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.EndtDate,_pos = CommFunc.ReadString(_lpData, _pos,10)
|
| | | self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TaskCount):
|
| | | temTaskList = tagMCActTask()
|
| | | _pos = temTaskList.ReadData(_lpData, _pos)
|
| | | self.TaskList.append(temTaskList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x71
|
| | | self.ActNum = 0
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.IsDayReset = 0
|
| | | self.ResetType = 0
|
| | | self.LimitLV = 0
|
| | | self.TaskCount = 0
|
| | | self.TaskList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 10
|
| | | length += 10
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.TaskCount):
|
| | | length += self.TaskList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteString(data, 10, self.StartDate)
|
| | | data = CommFunc.WriteString(data, 10, self.EndtDate)
|
| | | data = CommFunc.WriteBYTE(data, self.IsDayReset)
|
| | | data = CommFunc.WriteBYTE(data, self.ResetType)
|
| | | data = CommFunc.WriteWORD(data, self.LimitLV)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskCount)
|
| | | for i in range(self.TaskCount):
|
| | | data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | IsDayReset:%d,
|
| | | ResetType:%d,
|
| | | LimitLV:%d,
|
| | | TaskCount:%d,
|
| | | TaskList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.IsDayReset,
|
| | | self.ResetType,
|
| | | self.LimitLV,
|
| | | self.TaskCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActTaskInfo=tagMCActTaskInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskInfo.Head.Cmd,m_NAtagMCActTaskInfo.Head.SubCmd))] = m_NAtagMCActTaskInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 73 任务活动玩家信息 #tagMCActTaskPlayerInfo
|
| | |
|
| | | class tagMCActTaskPlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)// 活动编号
|
| | | AwardCount = 0 #(BYTE AwardCount)
|
| | | AwardRecordList = list() #(vector<DWORD> AwardRecordList)// 任务ID领奖记录值列表,根据任务ID位判断是否已领取,一个记录值存31位 [记录值0, 记录值1, ...]
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x73
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AwardCount):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.AwardRecordList.append(value)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x73
|
| | | self.ActNum = 0
|
| | | self.AwardCount = 0
|
| | | self.AwardRecordList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4 * self.AwardCount
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteBYTE(data, self.AwardCount)
|
| | | for i in range(self.AwardCount):
|
| | | data = CommFunc.WriteDWORD(data, self.AwardRecordList[i])
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | AwardCount:%d,
|
| | | AwardRecordList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.AwardCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActTaskPlayerInfo=tagMCActTaskPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskPlayerInfo.Head.Cmd,m_NAtagMCActTaskPlayerInfo.Head.SubCmd))] = m_NAtagMCActTaskPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 72 任务活动玩家任务值 #tagMCActTaskPlayerValueInfo
|
| | |
|
| | | class tagMCActTaskPlayerValue(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("TaskType", c_ubyte), # 任务类型
|
| | | ("TaskValue", 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.TaskType = 0
|
| | | self.TaskValue = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActTaskPlayerValue)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 72 任务活动玩家任务值 //tagMCActTaskPlayerValueInfo:
|
| | | TaskType:%d,
|
| | | TaskValue:%d
|
| | | '''\
|
| | | %(
|
| | | self.TaskType,
|
| | | self.TaskValue
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActTaskPlayerValueInfo(Structure):
|
| | | Head = tagHead()
|
| | | ActNum = 0 #(BYTE ActNum)// 活动编号
|
| | | TaskCount = 0 #(BYTE TaskCount)
|
| | | TaskValueList = list() #(vector<tagMCActTaskPlayerValue> TaskValueList)// 有同步的任务类型直接覆盖即可
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x72
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.ActNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.TaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TaskCount):
|
| | | temTaskValueList = tagMCActTaskPlayerValue()
|
| | | _pos = temTaskValueList.ReadData(_lpData, _pos)
|
| | | self.TaskValueList.append(temTaskValueList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x72
|
| | | self.ActNum = 0
|
| | | self.TaskCount = 0
|
| | | self.TaskValueList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.TaskCount):
|
| | | length += self.TaskValueList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.ActNum)
|
| | | data = CommFunc.WriteBYTE(data, self.TaskCount)
|
| | | for i in range(self.TaskCount):
|
| | | data = CommFunc.WriteString(data, self.TaskValueList[i].GetLength(), self.TaskValueList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | ActNum:%d,
|
| | | TaskCount:%d,
|
| | | TaskValueList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.ActNum,
|
| | | self.TaskCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActTaskPlayerValueInfo=tagMCActTaskPlayerValueInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActTaskPlayerValueInfo.Head.Cmd,m_NAtagMCActTaskPlayerValueInfo.Head.SubCmd))] = m_NAtagMCActTaskPlayerValueInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 1D 累计充值活动信息 #tagMCActTotalRechargeInfo
|
| | |
|
| | | class tagMCTotalRechargeAwardItem(Structure):
|
| | |
| | | ("WORD", "Point", 0),
|
| | | ),
|
| | |
|
| | | "ActTask":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("BYTE", "IsDayReset", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ("BYTE", "TemplateID", 0),
|
| | | ),
|
| | |
|
| | | "ActTaskTemp":(
|
| | | ("BYTE", "TemplateID", 1),
|
| | | ("DWORD", "TaskID", 0),
|
| | | ("BYTE", "TaskType", 0),
|
| | | ("DWORD", "NeedValue", 0),
|
| | | ("list", "AwardItemList", 0),
|
| | | ),
|
| | |
|
| | | "ActLoginNew":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | |
| | | def GetReward(self): return self.attrTuple[4] # 奖励物品 list
|
| | | def GetPoint(self): return self.attrTuple[5] # 积分 WORD |
| | | |
| | | # 任务活动时间表 |
| | | class IPY_ActTask(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
|
| | | def GetStartDate(self): return self.attrTuple[1] # 开启日期 char
|
| | | def GetEndDate(self): return self.attrTuple[2] # 结束日期 char
|
| | | def GetLVLimit(self): return self.attrTuple[3] # 限制等级 WORD
|
| | | def GetIsDayReset(self): return self.attrTuple[4] # 是否每天重置 BYTE
|
| | | def GetResetType(self): return self.attrTuple[5] # 重置类型,0-0点重置;1-5点重置 BYTE
|
| | | def GetTemplateID(self): return self.attrTuple[6] # 登录奖励模板编号 BYTE |
| | | |
| | | # 任务活动模板表 |
| | | class IPY_ActTaskTemp(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
|
| | | def GetTaskID(self): return self.attrTuple[1] # 任务ID DWORD
|
| | | def GetTaskType(self): return self.attrTuple[2] # 任务类型 BYTE
|
| | | def GetNeedValue(self): return self.attrTuple[3] # 完成任务所需值 DWORD
|
| | | def GetAwardItemList(self): return self.attrTuple[4] # 任务奖励列表[[物品ID,个数,是否拍品], ...] list |
| | | |
| | | # 登录活动奖励时间表新 |
| | | class IPY_ActLoginNew(): |
| | | |
| | |
| | | self.__LoadFileData("CoatChestUp", onlyCheck)
|
| | | self.__LoadFileData("ActWeekParty", onlyCheck)
|
| | | self.__LoadFileData("WeekParty", onlyCheck)
|
| | | self.__LoadFileData("ActTask", onlyCheck)
|
| | | self.__LoadFileData("ActTaskTemp", onlyCheck)
|
| | | self.__LoadFileData("ActLoginNew", onlyCheck)
|
| | | self.__LoadFileData("ActLoginNewAward", onlyCheck)
|
| | | self.__LoadFileData("ActLoginAward", onlyCheck)
|
| | |
| | | self.CheckLoadData("WeekParty") |
| | | return self.ipyWeekPartyCache[index]
|
| | | |
| | | def GetActTaskCount(self): |
| | | self.CheckLoadData("ActTask") |
| | | return self.ipyActTaskLen
|
| | | def GetActTaskByIndex(self, index): |
| | | self.CheckLoadData("ActTask") |
| | | return self.ipyActTaskCache[index]
|
| | | |
| | | def GetActTaskTempCount(self): |
| | | self.CheckLoadData("ActTaskTemp") |
| | | return self.ipyActTaskTempLen
|
| | | def GetActTaskTempByIndex(self, index): |
| | | self.CheckLoadData("ActTaskTemp") |
| | | return self.ipyActTaskTempCache[index]
|
| | | |
| | | def GetActLoginNewCount(self): |
| | | self.CheckLoadData("ActLoginNew") |
| | | return self.ipyActLoginNewLen
|
| | |
| | | import NPCRealmRefresh
|
| | | import NPCHurtManager
|
| | | import PlayerActLogin
|
| | | import PlayerActTask
|
| | | import FamilyRobBoss
|
| | | import IpyGameDataPY
|
| | | import PlayerGubao
|
| | |
| | | PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_WorldBOSS, 1)
|
| | | PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_WorldBoss, 1)
|
| | | PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_WorldBOSS, 1)
|
| | | PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_WorldBoss, 1)
|
| | | PlayerTongTianLing.AddTongTianTaskValue(curPlayer, ChConfig.TTLTaskType_WorldBoss, 1)
|
| | |
|
| | | elif limitIndex == ShareDefine.Def_Boss_Func_Home:
|
| | |
| | | PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_BossHome, 1)
|
| | | PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_BOSSHome, 1)
|
| | | PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_BossHome, 1)
|
| | | PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_BossHome, 1)
|
| | |
|
| | | if mapID == ChConfig.Def_FBMapID_CrossPenglai:
|
| | | #跨服蓬莱仙境
|
| | |
| | | import GameObj
|
| | | import PlayerChangeJob
|
| | | import PlayerActLoginNew
|
| | | import PlayerActTask
|
| | |
|
| | | import datetime
|
| | | import time
|
| | |
| | | PlayerActHorsePetFeast.OnLogin(curPlayer)
|
| | | # 周狂欢活动
|
| | | PlayerWeekParty.OnLogin(curPlayer)
|
| | | # 任务活动
|
| | | PlayerActTask.OnPlayerLogin(curPlayer)
|
| | | # 登录活动
|
| | | PlayerActLoginNew.OnPlayerLogin(curPlayer)
|
| | | # 节日巡礼活动
|
| | |
| | | # 领取登录活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ActLoginAwardNew:
|
| | | PlayerActLoginNew.OnGetActLoginAward(curPlayer, dataEx, dataExStr)
|
| | | # 领取任务活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ActTask:
|
| | | PlayerActTask.OnGetActTaskAward(curPlayer, dataEx, dataExStr)
|
| | | # 领取跨服充值排行活动达标奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_CACTGBillboardDabiao:
|
| | | CrossActCTGBillboard.GetDabiaoAward(curPlayer, dataEx)
|
| | |
| | | def Sync_ActLoginPlayerInfo(curPlayer, actNum):
|
| | | ## 通知活动玩家信息
|
| | | clientPack = ChPyNetSendPack.tagMCActLoginPlayerInfoNew()
|
| | | clientPack.ActNum = actNum
|
| | | clientPack.LoginAward = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActLoginNewAward % actNum)
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
New file |
| | |
| | | #!/usr/bin/python
|
| | | # -*- coding: GBK -*-
|
| | | #-------------------------------------------------------------------------------
|
| | | #
|
| | | ##@package Player.PlayerActTask
|
| | | #
|
| | | # @todo:活动任务
|
| | | # @author hxp
|
| | | # @date 2024-06-04
|
| | | # @version 1.0
|
| | | #
|
| | | # 详细描述: 活动任务
|
| | | #
|
| | | #-------------------------------------------------------------------------------
|
| | | #"""Version = 2024-06-04 18:00"""
|
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import PyGameData
|
| | | import ShareDefine
|
| | | import PlayerControl
|
| | | import IpyGameDataPY
|
| | | import ChPyNetSendPack
|
| | | import ItemControler
|
| | | import IPY_GameWorld
|
| | | import NetPackCommon
|
| | | import GameWorld
|
| | | import ChConfig
|
| | |
|
| | | def OnPlayerLogin(curPlayer):
|
| | | |
| | | for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ActTask, {}).values():
|
| | | actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
|
| | | isReset = __CheckPlayerActTaskAction(curPlayer, actNum)
|
| | | # 活动中同步活动信息
|
| | | if not isReset and actInfo.get(ShareDefine.ActKey_State):
|
| | | Sync_ActTaskActionInfo(curPlayer, actNum)
|
| | | Sync_ActTaskPlayerValueInfo(curPlayer, actNum)
|
| | | Sync_ActTaskPlayerInfo(curPlayer, actNum)
|
| | | |
| | | return
|
| | |
|
| | | def RefreshActTaskActionInfo(actNum):
|
| | | ## 收到GameServer同步的活动信息,刷新活动信息
|
| | | playerManager = GameWorld.GetPlayerManager()
|
| | | for index in xrange(playerManager.GetPlayerCount()):
|
| | | curPlayer = playerManager.GetPlayerByIndex(index)
|
| | | if curPlayer.GetID() == 0:
|
| | | continue
|
| | | __CheckPlayerActTaskAction(curPlayer, actNum)
|
| | | return
|
| | |
|
| | | def __CheckPlayerActTaskAction(curPlayer, actNum):
|
| | | ## 检查玩活动数据信息
|
| | | |
| | | playerID = curPlayer.GetPlayerID()
|
| | | |
| | | actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_ActTask, actNum)
|
| | | actID = actInfo.get(ShareDefine.ActKey_ID, 0)
|
| | | state = actInfo.get(ShareDefine.ActKey_State, 0)
|
| | | cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
| | | |
| | | playerActID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskID % actNum) # 玩家身上的活动ID
|
| | | lastTempID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskTempID % actNum)
|
| | | |
| | | # 活动ID 相同的话不处理
|
| | | if actID == playerActID:
|
| | | GameWorld.DebugLog("任务活动ID不变,不处理! actNum=%s,actID=%s" % (actNum, actID), playerID)
|
| | | return
|
| | | GameWorld.DebugLog("任务活动重置! actNum=%s,actID=%s,playerActID=%s,state=%s,lastTempID=%s" |
| | | % (actNum, actID, playerActID, state, lastTempID), playerID)
|
| | | if lastTempID:
|
| | | __ResetTaskValueByTemplateID(curPlayer, actNum, lastTempID)
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActTaskID % actNum, actID)
|
| | | |
| | | if state:
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActTask", cfgID)
|
| | | if ipyData:
|
| | | templateID = ipyData.GetTemplateID()
|
| | | __ResetTaskValueByTemplateID(curPlayer, actNum, templateID)
|
| | | |
| | | Sync_ActTaskActionInfo(curPlayer, actNum)
|
| | | Sync_ActTaskPlayerValueInfo(curPlayer, actNum)
|
| | | Sync_ActTaskPlayerInfo(curPlayer, actNum)
|
| | | |
| | | return True
|
| | |
|
| | | def __ResetTaskValueByTemplateID(curPlayer, actNum, templateID):
|
| | | ## 重置活动相关任务数据记录
|
| | | |
| | | # 进度值
|
| | | for taskType in ChConfig.ActTaskTypeList:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActTaskValue % (actNum, taskType), 0)
|
| | | |
| | | # 任务领奖记录
|
| | | taskAwardKeyNum = __GetTaskAwardRecordKeyNumMax(templateID, 10)
|
| | | for keyNum in range(taskAwardKeyNum + 1):
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActTaskAward % (actNum, keyNum), 0)
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActTaskTempID % actNum, templateID)
|
| | | return
|
| | |
|
| | | def __GetTaskAwardRecordKeyNumMax(templateID, defKeyNum=2):
|
| | | ## 获取最大任务奖励记录key编号
|
| | | taskIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActTaskTemp", templateID)
|
| | | if taskIpyDataList:
|
| | | taskIDMax = 0
|
| | | for taskIpyData in taskIpyDataList:
|
| | | if taskIpyData.GetTaskID() > taskIDMax:
|
| | | taskIDMax = taskIpyData.GetTaskID()
|
| | | return taskIDMax / 31
|
| | | return defKeyNum
|
| | |
|
| | | def AddActTaskValue(curPlayer, taskType, addValue):
|
| | | ## 增加任务活动进度值
|
| | | |
| | | playerID = curPlayer.GetPlayerID()
|
| | | for actInfo in PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_ActTask, {}).values():
|
| | | actNum = actInfo.get(ShareDefine.ActKey_ActNum, 0)
|
| | | if not actInfo.get(ShareDefine.ActKey_State):
|
| | | continue
|
| | | |
| | | cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActTask", cfgID)
|
| | | if not ipyData:
|
| | | continue
|
| | | templateID = ipyData.GetTemplateID()
|
| | | |
| | | taskIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActTaskTemp", templateID)
|
| | | if not taskIpyDataList:
|
| | | continue
|
| | | |
| | | needValueMax = 0
|
| | | for taskIpyData in taskIpyDataList:
|
| | | if taskIpyData.GetTaskType() != taskType:
|
| | | continue
|
| | | needValue = taskIpyData.GetNeedValue()
|
| | | if needValue > needValueMax:
|
| | | needValueMax = needValue
|
| | | |
| | | curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskValue % (actNum, taskType))
|
| | | if curValue >= needValueMax:
|
| | | continue
|
| | | |
| | | updValue = min(needValueMax, curValue + addValue)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ActTaskValue % (actNum, taskType), updValue)
|
| | | GameWorld.DebugLog("更新任务活动任务进度值: actNum=%s,taskType=%s,addValue=%s,updValue=%s" |
| | | % (actNum, taskType, addValue, updValue), playerID)
|
| | | Sync_ActTaskPlayerValueInfo(curPlayer, actNum, [taskType])
|
| | | |
| | | return
|
| | |
|
| | | def OnGetActTaskAward(curPlayer, taskID, actNum):
|
| | | ## 领取活动奖励
|
| | | |
| | | actNum = GameWorld.ToIntDef(actNum)
|
| | | |
| | | actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_ActTask, actNum)
|
| | | if not actInfo:
|
| | | GameWorld.DebugLog("没有该任务活动! actNum=%s" % actNum)
|
| | | return
|
| | | |
| | | if not actInfo.get(ShareDefine.ActKey_State):
|
| | | GameWorld.DebugLog("非任务活动中! actNum=%s" % actNum)
|
| | | return
|
| | | |
| | | cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActTask", cfgID)
|
| | | if not ipyData:
|
| | | return
|
| | | templateID = ipyData.GetTemplateID()
|
| | | |
| | | taskIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActTaskTemp", templateID)
|
| | | if not taskIpyDataList:
|
| | | return
|
| | | |
| | | findIpyData = None
|
| | | for taskIpyData in taskIpyDataList:
|
| | | if taskIpyData.GetTaskID() == taskID:
|
| | | findIpyData = taskIpyData
|
| | | break
|
| | | |
| | | if not findIpyData:
|
| | | GameWorld.DebugLog("找不到对应活动任务奖励! actNum=%s,cfgID=%s,templateID=%s,taskID=%s" % (actNum, cfgID, templateID, taskID))
|
| | | return
|
| | | awardItemList = findIpyData.GetAwardItemList()
|
| | | taskType = findIpyData.GetTaskType()
|
| | | needValue = findIpyData.GetNeedValue()
|
| | | curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskValue % (actNum, taskType))
|
| | | if curValue < needValue:
|
| | | GameWorld.DebugLog("活动任务未完成,无法领取! actNum=%s,cfgID=%s,templateID=%s,taskID=%s,curValue=%s < %s" |
| | | % (actNum, cfgID, templateID, taskID, curValue, needValue))
|
| | | return
|
| | | |
| | | awardIndex = taskID
|
| | | |
| | | if GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_PDict_ActTaskAward, awardIndex, True, [actNum]):
|
| | | GameWorld.DebugLog("任务活动该任务已领奖! actNum=%s,cfgID=%s,taskID=%s" % (actNum, cfgID, taskID))
|
| | | return
|
| | | |
| | | if not ItemControler.CheckPackSpaceEnough(curPlayer, awardItemList):
|
| | | return
|
| | | |
| | | GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_PDict_ActTaskAward, awardIndex, 1, True, [actNum])
|
| | | |
| | | Sync_ActTaskPlayerInfo(curPlayer, actNum)
|
| | | |
| | | GameWorld.DebugLog("领取任务活动奖励! actNum=%s,cfgID=%s,taskID=%s,awardItemList=%s" % (actNum, cfgID, taskID, awardItemList))
|
| | | |
| | | for itemID, itemCount, isAuctionItem in awardItemList:
|
| | | ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, [IPY_GameWorld.rptItem], event=["ActTask", False, {}])
|
| | | |
| | | return
|
| | |
|
| | | def Sync_ActTaskPlayerInfo(curPlayer, actNum):
|
| | | ## 通知活动玩家信息
|
| | | templateID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskTempID % actNum)
|
| | | keyNumMax = __GetTaskAwardRecordKeyNumMax(templateID)
|
| | | |
| | | clientPack = ChPyNetSendPack.tagMCActTaskPlayerInfo()
|
| | | clientPack.ActNum = actNum
|
| | | clientPack.AwardRecordList = []
|
| | | for keyNum in range(keyNumMax + 1):
|
| | | clientPack.AwardRecordList.append(curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskAward % (actNum, keyNum)))
|
| | | clientPack.AwardCount = len(clientPack.AwardRecordList)
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
| | |
|
| | | def Sync_ActTaskPlayerValueInfo(curPlayer, actNum, taskTypeList=None):
|
| | | ## 通知活动玩家信息
|
| | | if taskTypeList == None:
|
| | | taskTypeList = ChConfig.ActTaskTypeList
|
| | | |
| | | clientPack = ChPyNetSendPack.tagMCActTaskPlayerValueInfo()
|
| | | clientPack.ActNum = actNum
|
| | | clientPack.TaskValueList = []
|
| | | for taskType in taskTypeList:
|
| | | taskValueInfo = ChPyNetSendPack.tagMCActTaskPlayerValue()
|
| | | taskValueInfo.TaskType = taskType
|
| | | taskValueInfo.TaskValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ActTaskValue % (actNum, taskType))
|
| | | clientPack.TaskValueList.append(taskValueInfo)
|
| | | clientPack.TaskCount = len(clientPack.TaskValueList)
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
| | |
|
| | | def Sync_ActTaskActionInfo(curPlayer, actNum):
|
| | | ## 通知活动信息
|
| | | actInfo = GameWorld.GetActInfo(ShareDefine.OperationActionName_ActTask, actNum)
|
| | | if not actInfo:
|
| | | return
|
| | | if not actInfo.get(ShareDefine.ActKey_State):
|
| | | return
|
| | | cfgID = actInfo.get(ShareDefine.ActKey_CfgID)
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("ActTask", cfgID)
|
| | | if not ipyData:
|
| | | return
|
| | | templateID = ipyData.GetTemplateID()
|
| | | taskIpyDataList = IpyGameDataPY.GetIpyGameDataList("ActTaskTemp", templateID)
|
| | | if not taskIpyDataList:
|
| | | return
|
| | | |
| | | startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
|
| | | actPack = ChPyNetSendPack.tagMCActTaskInfo()
|
| | | actPack.Clear()
|
| | | actPack.ActNum = actNum
|
| | | actPack.StartDate = startDateStr
|
| | | actPack.EndtDate = endDateStr
|
| | | actPack.IsDayReset = ipyData.GetIsDayReset()
|
| | | actPack.ResetType = ipyData.GetResetType()
|
| | | actPack.LimitLV = ipyData.GetLVLimit()
|
| | | |
| | | actPack.TaskList = []
|
| | | for taskIpyData in taskIpyDataList:
|
| | | task = ChPyNetSendPack.tagMCActTask()
|
| | | task.TaskID = taskIpyData.GetTaskID()
|
| | | task.TaskType = taskIpyData.GetTaskType()
|
| | | task.NeedValue = taskIpyData.GetNeedValue()
|
| | | task.AwardItemList = []
|
| | | for itemID, itemCount, isAuctionItem in taskIpyData.GetAwardItemList():
|
| | | itemInfo = ChPyNetSendPack.tagMCActTaskItem()
|
| | | itemInfo.ItemID = itemID
|
| | | itemInfo.ItemCount = itemCount
|
| | | itemInfo.IsBind = isAuctionItem
|
| | | task.AwardItemList.append(itemInfo)
|
| | | task.Count = len(task.AwardItemList)
|
| | | |
| | | actPack.TaskList.append(task)
|
| | | actPack.TaskCount = len(actPack.TaskList)
|
| | | NetPackCommon.SendFakePack(curPlayer, actPack)
|
| | | return
|
| | |
|
| | |
| | | import PlayerBossReborn
|
| | | import PlayerActGarbageSorting
|
| | | import PlayerTongTianLing
|
| | | import PlayerActTask
|
| | | import PlayerSuccess
|
| | | import PlayerGubao
|
| | |
|
| | |
| | | __AddCanCostActivityPoint(curPlayer, addValue, isLVUp)
|
| | | PlayerActGarbageSorting.AddActGarbageTaskProgress(curPlayer, ChConfig.Def_GarbageTask_Activity, addValue)
|
| | | PlayerTongTianLing.AddTongTianTaskValue(curPlayer, ChConfig.TTLTaskType_Activity, addValue)
|
| | | PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_Activity, addValue)
|
| | | PlayerControl.NotifyCode(curPlayer, "GetActivity", [addValue])
|
| | | SyncDailyActivityInfo(curPlayer)
|
| | | EventShell.EventRespons_AddActivityValue(curPlayer)
|
| | |
| | | import PlayerFeastTravel
|
| | | import PlayerFeastLogin
|
| | | import PlayerFeastWish
|
| | | import PlayerActTask
|
| | | import PlayerActLoginNew
|
| | | import PlayerActLogin
|
| | | import PlayerFlashGiftbag
|
| | |
| | | elif actionName == ShareDefine.OperationActionName_WeekParty:
|
| | | PlayerWeekParty.RefreshOperationAction_WeekParty()
|
| | |
|
| | | elif actionName == ShareDefine.OperationActionName_ActTask:
|
| | | PlayerActTask.RefreshActTaskActionInfo(actNum)
|
| | | |
| | | elif actionName == ShareDefine.OperationActionName_LoginAward:
|
| | | PlayerActLogin.RefreshOperationAction_LoginAward()
|
| | |
|
| | |
| | | OperationActionName_BuyOne = "ActBuyOne" # 买一送多活动
|
| | | OperationActionName_BossTrial = "ActBossTrial" # Boss历练
|
| | | OperationActionName_ActLoginNew = "ActLoginNew" # 登录活动-新
|
| | | OperationActionName_ActTask = "ActTask" # 活动任务
|
| | | #节日活动类型列表 - 该类型无视开服天,日期到了就开启
|
| | | FeastOperationActionNameList = [OperationActionName_FeastWeekParty, OperationActionName_FeastRedPacket,
|
| | | OperationActionName_RechargeRebateGold, OperationActionName_GrowupBuy,
|
| | |
| | | OperationActionName_Turntable, OperationActionName_HorsePetFeast, OperationActionName_GarbageSorting,
|
| | | OperationActionName_XianXiaMJ, OperationActionName_GodGift,
|
| | | OperationActionName_BuyOne, OperationActionName_BossTrial,
|
| | | OperationActionName_ActLoginNew,
|
| | | OperationActionName_ActLoginNew, OperationActionName_ActTask,
|
| | | ] + FeastOperationActionNameList
|
| | | #需要记录开启活动时的世界等级的运营活动
|
| | | NeedWorldLVOperationActNameList = [OperationActionName_FairyCeremony, OperationActionName_WishingWell,
|
| | |
| | | OperationActionName_Turntable, OperationActionName_HorsePetFeast, OperationActionName_GarbageSorting,
|
| | | OperationActionName_XianXiaMJ, OperationActionName_GodGift,
|
| | | OperationActionName_BuyOne, OperationActionName_BossTrial,
|
| | | OperationActionName_ActLoginNew,
|
| | | OperationActionName_ActLoginNew, OperationActionName_ActTask,
|
| | | ]
|
| | |
|
| | | #跨服运营活动表名定义
|