| | |
| | | char WorldNotifyKey; //全服广播key,参数(玩家名, 物品ID, 物品数据, 个数,)
|
| | | };
|
| | |
|
| | | //节日游历时间表
|
| | |
|
| | | struct tagActFeastTravel
|
| | | {
|
| | | DWORD _CfgID; //配置ID
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | WORD LVLimit; //限制等级
|
| | | BYTE ResetType; //重置类型,0-0点重置;1-5点重置
|
| | | dict TemplateIDInfo; //模板信息 {(世界等级A,B):模板编号, ...}
|
| | | };
|
| | |
|
| | | //节日游历任务表
|
| | |
|
| | | struct tagActFeastTravelTask
|
| | | {
|
| | | BYTE _TraveTasklD; //游历ID
|
| | | WORD FinishNeedValue; //完成所需进度值
|
| | | WORD FinishTimeMax; //总可完成次数,0不限
|
| | | BYTE AddTravelPoint; //完成次数获得游历值
|
| | | };
|
| | |
|
| | | //节日游历奖励表
|
| | |
|
| | | struct tagActFeastTravelAward
|
| | | {
|
| | | BYTE _TemplatelD; //奖励模板ID
|
| | | BYTE RecordIndex; //奖励记录索引
|
| | | WORD NeedTravelPoint; //领奖所需游历值
|
| | | BYTE AwardCountMax; //可领取次数,0代表不限
|
| | | list TravelAwardInfo; //游历奖励 [[物品ID,个数,是否拍品], ...]
|
| | | };
|
| | |
|
| | | //节日巡礼活动时间表
|
| | |
|
| | | struct tagActFeastWeekParty
|
| | |
| | | Def_PDict_FeastWishBottleValue = "FeastWishBottleValue_%s" # 祝福瓶当前祝福值,参数(瓶子编号)
|
| | | Def_PDict_FeastWishBottleGetState = "FeastWishBottleGetState_%s" # 祝福瓶已领取记录,参数(瓶子编号),按记录索引二进制位存储是否已领取
|
| | |
|
| | | #节日游历活动
|
| | | Def_PDict_FeastTravelID = "FeastTravelID" # 玩家身上的活动ID,唯一标识,取活动开始日期time值
|
| | | Def_PDict_FeastTravelPoint = "FeastTravelPoint" # 当前总游历点数
|
| | | Def_PDict_FeastTravelValue = "FeastTravelValue_%s" # 游历任务总进度值,参数(任务ID)
|
| | | Def_PDict_FeastTravelCount = "FeastTravelCount_%s" # 游历任务已完成次数,参数(任务ID)
|
| | | Def_PDict_FeastTravelAwardCount = "FeastTravelAwardCount_%s" # 游历已领奖次数,参数(奖励索引)
|
| | |
|
| | | #多日连充活动
|
| | | Def_PDict_ManyDayRechargeID = "ManyDayRechargeID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
|
| | | Def_PDict_ManyDayRechargeTempID = "ManyDayRechargeTempID_%s" # 玩家身上的模板ID,参数:(活动编号)
|
| | |
| | | Def_RewardType_GoodGame, #游戏好评奖励35
|
| | | Def_RewardType_CACTGBillboardDabiao, #跨服充值排行活动达标奖励36
|
| | | Def_RewardType_FeastLogin, #节日登录奖励37
|
| | | Def_RewardType_FeastTravel, #节日游历奖励38
|
| | | Def_RewardType_38,
|
| | | Def_RewardType_DailyRecharge, #永久每日累充奖励39
|
| | | Def_RewardType_RechargeGold30, #1元送30倍充值券每日奖励40
|
| | | Def_RewardType_ManyDayRecharge, #多日连充41
|
| | |
| | | Def_PPAct_FairyDomain, #缥缈仙域 16
|
| | | Def_PPAct_JSTreasure, #绝世寻宝 17
|
| | | ) = range(1, 17+1)
|
| | |
|
| | | #节日游历活动任务定义
|
| | | FeastTravelTaskIDList = (
|
| | | Def_FeastTravel_1,
|
| | | Def_FeastTravel_Treasure, #极品寻宝 2
|
| | | Def_FeastTravel_RuneTreasure, #符印寻宝 3
|
| | | Def_FeastTravel_4,
|
| | | Def_FeastTravel_XJMJ, #仙界秘境 5
|
| | | Def_FeastTravel_6,
|
| | | Def_FeastTravel_WorldBoss, #世界BOSS 7
|
| | | Def_FeastTravel_FMT, #封魔坛 8
|
| | | Def_FeastTravel_FamilyParty, #仙盟宴会 9
|
| | | Def_FeastTravel_10,
|
| | | Def_FeastTravel_Pray, #祈愿 11
|
| | | Def_FeastTravel_BossHome, #boss之家 12
|
| | | Def_FeastTravel_VIPBoss, #vipBOSS 13
|
| | | Def_FeastTravel_RunFamilyTask, #仙盟任务 14
|
| | | Def_FeastTravel_FamilyBoss, #仙盟Boss 15
|
| | | Def_FeastTravel_FairyDomain, #缥缈仙域 16
|
| | | Def_FeastTravel_UseGold, #累计消费X仙玉 17
|
| | | Def_FeastTravel_CTGExp, #累计充值X仙玉,直接使用充值转化的经验 18
|
| | | Def_FeastTravel_JSTreasure, #绝世寻宝 19 |
| | | Def_FeastTravel_Arena, #竞技场 20 |
| | | ) = range(1, 1 + 20)
|
| | |
|
| | | #周狂欢活动定义(七天巡礼)
|
| | | WeekPartyActIDList = (
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 46 节日游历活动信息 #tagMCFeastTravelInfo
|
| | |
|
| | | class tagMCFeastTravelAwardItem(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(tagMCFeastTravelAwardItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 46 节日游历活动信息 //tagMCFeastTravelInfo:
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelAward(Structure):
|
| | | AwardIndex = 0 #(BYTE AwardIndex)//游历奖励索引
|
| | | NeedTravelPoint = 0 #(WORD NeedTravelPoint)//单次领奖所需游历值
|
| | | AwardCountMax = 0 #(WORD AwardCountMax)//最大可领取次数,0代表不限
|
| | | AwardItemCount = 0 #(BYTE AwardItemCount)//奖励物品数
|
| | | AwardItemList = list() #(vector<tagMCFeastTravelAwardItem> AwardItemList)//奖励物品列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.AwardIndex,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NeedTravelPoint,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.AwardCountMax,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.AwardItemCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AwardItemCount):
|
| | | temAwardItemList = tagMCFeastTravelAwardItem()
|
| | | _pos = temAwardItemList.ReadData(_lpData, _pos)
|
| | | self.AwardItemList.append(temAwardItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.AwardIndex = 0
|
| | | self.NeedTravelPoint = 0
|
| | | self.AwardCountMax = 0
|
| | | self.AwardItemCount = 0
|
| | | self.AwardItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 2
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.AwardItemCount):
|
| | | length += self.AwardItemList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.AwardIndex)
|
| | | data = CommFunc.WriteWORD(data, self.NeedTravelPoint)
|
| | | data = CommFunc.WriteWORD(data, self.AwardCountMax)
|
| | | data = CommFunc.WriteBYTE(data, self.AwardItemCount)
|
| | | for i in range(self.AwardItemCount):
|
| | | data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | AwardIndex:%d,
|
| | | NeedTravelPoint:%d,
|
| | | AwardCountMax:%d,
|
| | | AwardItemCount:%d,
|
| | | AwardItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.AwardIndex,
|
| | | self.NeedTravelPoint,
|
| | | self.AwardCountMax,
|
| | | self.AwardItemCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelTask(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("TravelTaskID", c_ubyte), #游历任务ID
|
| | | ("FinishNeedValue", c_ushort), #单次完成所需进度
|
| | | ("FinishTimeMax", c_ushort), #最大可完成次数,0代表不限
|
| | | ("AddTravelPoint", 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.TravelTaskID = 0
|
| | | self.FinishNeedValue = 0
|
| | | self.FinishTimeMax = 0
|
| | | self.AddTravelPoint = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastTravelTask)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 46 节日游历活动信息 //tagMCFeastTravelInfo:
|
| | | TravelTaskID:%d,
|
| | | FinishNeedValue:%d,
|
| | | FinishTimeMax:%d,
|
| | | AddTravelPoint:%d
|
| | | '''\
|
| | | %(
|
| | | self.TravelTaskID,
|
| | | self.FinishNeedValue,
|
| | | self.FinishTimeMax,
|
| | | self.AddTravelPoint
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelInfo(Structure):
|
| | | Head = tagHead()
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点开,5点重置;2-5点开,0点重置
|
| | | TravelTaskCount = 0 #(BYTE TravelTaskCount)// 游历任务数
|
| | | TravelTaskList = list() #(vector<tagMCFeastTravelTask> TravelTaskList)//游历任务信息列表
|
| | | TravelAwardCount = 0 #(BYTE TravelAwardCount)// 游历奖励数
|
| | | TravelAwardList = list() #(vector<tagMCFeastTravelAward> TravelAwardList)//游历奖励信息列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x46
|
| | | 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.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.TravelTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TravelTaskCount):
|
| | | temTravelTaskList = tagMCFeastTravelTask()
|
| | | _pos = temTravelTaskList.ReadData(_lpData, _pos)
|
| | | self.TravelTaskList.append(temTravelTaskList)
|
| | | self.TravelAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TravelAwardCount):
|
| | | temTravelAwardList = tagMCFeastTravelAward()
|
| | | _pos = temTravelAwardList.ReadData(_lpData, _pos)
|
| | | self.TravelAwardList.append(temTravelAwardList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x46
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.LimitLV = 0
|
| | | self.ResetType = 0
|
| | | self.TravelTaskCount = 0
|
| | | self.TravelTaskList = list()
|
| | | self.TravelAwardCount = 0
|
| | | self.TravelAwardList = 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.TravelTaskCount):
|
| | | length += self.TravelTaskList[i].GetLength()
|
| | | length += 1
|
| | | for i in range(self.TravelAwardCount):
|
| | | length += self.TravelAwardList[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.ResetType)
|
| | | data = CommFunc.WriteBYTE(data, self.TravelTaskCount)
|
| | | for i in range(self.TravelTaskCount):
|
| | | data = CommFunc.WriteString(data, self.TravelTaskList[i].GetLength(), self.TravelTaskList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.TravelAwardCount)
|
| | | for i in range(self.TravelAwardCount):
|
| | | data = CommFunc.WriteString(data, self.TravelAwardList[i].GetLength(), self.TravelAwardList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | LimitLV:%d,
|
| | | ResetType:%d,
|
| | | TravelTaskCount:%d,
|
| | | TravelTaskList:%s,
|
| | | TravelAwardCount:%d,
|
| | | TravelAwardList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.LimitLV,
|
| | | self.ResetType,
|
| | | self.TravelTaskCount,
|
| | | "...",
|
| | | self.TravelAwardCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastTravelInfo=tagMCFeastTravelInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastTravelInfo.Head.Cmd,m_NAtagMCFeastTravelInfo.Head.SubCmd))] = m_NAtagMCFeastTravelInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 47 节日游历活动玩家信息 #tagMCFeastTravelPlayerInfo
|
| | |
|
| | | class tagMCFeastTravelPlayerAward(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("AwardIndex", c_ubyte), #游历奖励索引
|
| | | ("GetAwardCount", c_int), #已领取次数;前端判断是否可领取: 总游历值 >= (已领取次数 + 1) * 单次所需游历值
|
| | | ]
|
| | |
|
| | | 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.AwardIndex = 0
|
| | | self.GetAwardCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastTravelPlayerAward)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 47 节日游历活动玩家信息 //tagMCFeastTravelPlayerInfo:
|
| | | AwardIndex:%d,
|
| | | GetAwardCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.AwardIndex,
|
| | | self.GetAwardCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelPlayerTask(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("TravelTaskID", c_ubyte), #游历任务ID
|
| | | ("TravelValue", c_int), #当前进度值,一直累加
|
| | | ("FinishCount", c_ubyte), #当前已完成次数; 前端计算未完成次数的进度值=max(0, 当前进度值 - (完成次数 * 单次所需进度))
|
| | | ]
|
| | |
|
| | | 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.TravelTaskID = 0
|
| | | self.TravelValue = 0
|
| | | self.FinishCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastTravelPlayerTask)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 47 节日游历活动玩家信息 //tagMCFeastTravelPlayerInfo:
|
| | | TravelTaskID:%d,
|
| | | TravelValue:%d,
|
| | | FinishCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.TravelTaskID,
|
| | | self.TravelValue,
|
| | | self.FinishCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastTravelPlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | TravelPoint = 0 #(DWORD TravelPoint)//当前总游历值,一直累加,不会扣的
|
| | | TravelPlayerTaskCount = 0 #(BYTE TravelPlayerTaskCount)// 游历任务数,不一定有同步,有同步数据则替换即可
|
| | | TravelPlayerTaskList = list() #(vector<tagMCFeastTravelPlayerTask> TravelPlayerTaskList)//游历任务信息列表
|
| | | TravelPlayerAwardCount = 0 #(BYTE TravelPlayerAwardCount)// 游历奖励数,不一定有同步,有同步数据则替换即可
|
| | | TravelPlayerAwardList = list() #(vector<tagMCFeastTravelPlayerAward> TravelPlayerAwardList)//游历奖励信息列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x47
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.TravelPoint,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.TravelPlayerTaskCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TravelPlayerTaskCount):
|
| | | temTravelPlayerTaskList = tagMCFeastTravelPlayerTask()
|
| | | _pos = temTravelPlayerTaskList.ReadData(_lpData, _pos)
|
| | | self.TravelPlayerTaskList.append(temTravelPlayerTaskList)
|
| | | self.TravelPlayerAwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TravelPlayerAwardCount):
|
| | | temTravelPlayerAwardList = tagMCFeastTravelPlayerAward()
|
| | | _pos = temTravelPlayerAwardList.ReadData(_lpData, _pos)
|
| | | self.TravelPlayerAwardList.append(temTravelPlayerAwardList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x47
|
| | | self.TravelPoint = 0
|
| | | self.TravelPlayerTaskCount = 0
|
| | | self.TravelPlayerTaskList = list()
|
| | | self.TravelPlayerAwardCount = 0
|
| | | self.TravelPlayerAwardList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 4
|
| | | length += 1
|
| | | for i in range(self.TravelPlayerTaskCount):
|
| | | length += self.TravelPlayerTaskList[i].GetLength()
|
| | | length += 1
|
| | | for i in range(self.TravelPlayerAwardCount):
|
| | | length += self.TravelPlayerAwardList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteDWORD(data, self.TravelPoint)
|
| | | data = CommFunc.WriteBYTE(data, self.TravelPlayerTaskCount)
|
| | | for i in range(self.TravelPlayerTaskCount):
|
| | | data = CommFunc.WriteString(data, self.TravelPlayerTaskList[i].GetLength(), self.TravelPlayerTaskList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.TravelPlayerAwardCount)
|
| | | for i in range(self.TravelPlayerAwardCount):
|
| | | data = CommFunc.WriteString(data, self.TravelPlayerAwardList[i].GetLength(), self.TravelPlayerAwardList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | TravelPoint:%d,
|
| | | TravelPlayerTaskCount:%d,
|
| | | TravelPlayerTaskList:%s,
|
| | | TravelPlayerAwardCount:%d,
|
| | | TravelPlayerAwardList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.TravelPoint,
|
| | | self.TravelPlayerTaskCount,
|
| | | "...",
|
| | | self.TravelPlayerAwardCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastTravelPlayerInfo=tagMCFeastTravelPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastTravelPlayerInfo.Head.Cmd,m_NAtagMCFeastTravelPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastTravelPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 20 节日巡礼活动信息 #tagMCFeastWeekPartyInfo
|
| | |
|
| | | class tagMCFeastWeekPartyItem(Structure):
|
| | |
| | | ("char", "WorldNotifyKey", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastTravel":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ("dict", "TemplateIDInfo", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastTravelTask":(
|
| | | ("BYTE", "TraveTasklD", 1),
|
| | | ("WORD", "FinishNeedValue", 0),
|
| | | ("WORD", "FinishTimeMax", 0),
|
| | | ("BYTE", "AddTravelPoint", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastTravelAward":(
|
| | | ("BYTE", "TemplatelD", 1),
|
| | | ("BYTE", "RecordIndex", 0),
|
| | | ("WORD", "NeedTravelPoint", 0),
|
| | | ("BYTE", "AwardCountMax", 0),
|
| | | ("list", "TravelAwardInfo", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastWeekParty":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | |
| | | def GetGoodItemIDList(self): return self.attrTuple[3] # 需要广播的物品ID列表 [物品ID, ...] list
|
| | | def GetWorldNotifyKey(self): return self.attrTuple[4] # 全服广播key,参数(玩家名, 物品ID, 物品数据, 个数,) char |
| | | |
| | | # 节日游历时间表 |
| | | class IPY_ActFeastTravel(): |
| | | |
| | | 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 GetResetType(self): return self.attrTuple[4] # 重置类型,0-0点重置;1-5点重置 BYTE
|
| | | def GetTemplateIDInfo(self): return self.attrTuple[5] # 模板信息 {(世界等级A,B):模板编号, ...} dict |
| | | |
| | | # 节日游历任务表 |
| | | class IPY_ActFeastTravelTask(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetTraveTasklD(self): return self.attrTuple[0] # 游历ID BYTE
|
| | | def GetFinishNeedValue(self): return self.attrTuple[1] # 完成所需进度值 WORD
|
| | | def GetFinishTimeMax(self): return self.attrTuple[2] # 总可完成次数,0不限 WORD
|
| | | def GetAddTravelPoint(self): return self.attrTuple[3] # 完成次数获得游历值 BYTE |
| | | |
| | | # 节日游历奖励表 |
| | | class IPY_ActFeastTravelAward(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetTemplatelD(self): return self.attrTuple[0] # 奖励模板ID BYTE
|
| | | def GetRecordIndex(self): return self.attrTuple[1] # 奖励记录索引 BYTE
|
| | | def GetNeedTravelPoint(self): return self.attrTuple[2] # 领奖所需游历值 WORD
|
| | | def GetAwardCountMax(self): return self.attrTuple[3] # 可领取次数,0代表不限 BYTE
|
| | | def GetTravelAwardInfo(self): return self.attrTuple[4] # 游历奖励 [[物品ID,个数,是否拍品], ...] list |
| | | |
| | | # 节日巡礼活动时间表 |
| | | class IPY_ActFeastWeekParty(): |
| | | |
| | |
| | | self.__LoadFileData("ActFeastWish", onlyCheck)
|
| | | self.__LoadFileData("ActFeastWishBottle", onlyCheck)
|
| | | self.__LoadFileData("ActFeastWishPool", onlyCheck)
|
| | | self.__LoadFileData("ActFeastTravel", onlyCheck)
|
| | | self.__LoadFileData("ActFeastTravelTask", onlyCheck)
|
| | | self.__LoadFileData("ActFeastTravelAward", onlyCheck)
|
| | | self.__LoadFileData("ActFeastWeekParty", onlyCheck)
|
| | | self.__LoadFileData("FeastWeekParty", onlyCheck)
|
| | | self.__LoadFileData("NewAllPeopleParty", onlyCheck)
|
| | |
| | | def GetActFeastWishPoolByIndex(self, index): |
| | | self.CheckLoadData("ActFeastWishPool") |
| | | return self.ipyActFeastWishPoolCache[index]
|
| | | |
| | | def GetActFeastTravelCount(self): |
| | | self.CheckLoadData("ActFeastTravel") |
| | | return self.ipyActFeastTravelLen
|
| | | def GetActFeastTravelByIndex(self, index): |
| | | self.CheckLoadData("ActFeastTravel") |
| | | return self.ipyActFeastTravelCache[index]
|
| | | |
| | | def GetActFeastTravelTaskCount(self): |
| | | self.CheckLoadData("ActFeastTravelTask") |
| | | return self.ipyActFeastTravelTaskLen
|
| | | def GetActFeastTravelTaskByIndex(self, index): |
| | | self.CheckLoadData("ActFeastTravelTask") |
| | | return self.ipyActFeastTravelTaskCache[index]
|
| | | |
| | | def GetActFeastTravelAwardCount(self): |
| | | self.CheckLoadData("ActFeastTravelAward") |
| | | return self.ipyActFeastTravelAwardLen
|
| | | def GetActFeastTravelAwardByIndex(self, index): |
| | | self.CheckLoadData("ActFeastTravelAward") |
| | | return self.ipyActFeastTravelAwardCache[index]
|
| | | |
| | | def GetActFeastWeekPartyCount(self): |
| | | self.CheckLoadData("ActFeastWeekParty") |
| | |
| | | import PlayerTongTianLing
|
| | | import CrossPlayerData
|
| | | import PlayerFeastWish
|
| | | import PlayerFeastTravel
|
| | | import PlayerWeekParty
|
| | | import NPCRealmRefresh
|
| | | import PlayerActLogin
|
| | |
| | | import PlayerBossReborn
|
| | | import PlayerWeekParty
|
| | | import PlayerFeastWeekParty
|
| | | import PlayerFeastTravel
|
| | | import PlayerFeastLogin
|
| | | import PlayerFeastWish
|
| | | import PlayerActLogin
|
| | |
| | | PlayerFeastLogin.OnPlayerLogin(curPlayer)
|
| | | # 节日祝福活动
|
| | | PlayerFeastWish.OnPlayerLogin(curPlayer)
|
| | | # 节日游历活动
|
| | | PlayerFeastTravel.OnPlayerLogin(curPlayer)
|
| | | # 登录奖励活动
|
| | | PlayerActLogin.OnLogin(curPlayer)
|
| | | # 炼器活动
|
| | |
| | | # 领取节日登录奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_FeastLogin:
|
| | | PlayerFeastLogin.GetFeastLoginAward(curPlayer, dataEx)
|
| | | # 领取节日游历奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_FeastTravel:
|
| | | PlayerFeastTravel.GetFeastTravelAward(curPlayer, dataEx)
|
| | | # 领取登录活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ActLoginAwardNew:
|
| | | PlayerActLoginNew.OnGetActLoginAward(curPlayer, dataEx, dataExStr)
|
| | |
| | | import CrossActCTGBillboard
|
| | | import CrossActAllRecharge
|
| | | import PlayerActGrowupBuy
|
| | | import PlayerFeastTravel
|
| | | import PlayerWeekParty
|
| | | import PlayerGoldInvest
|
| | | import PlayerActTurntable
|
| | |
| | | PlayerActSingleRecharge.UpdSingleRechargeValue(curPlayer, orderCoin, coinType) # 单笔累充
|
| | | PlayerActTurntable.OnPlayerRecharge(curPlayer, orderCoin, coinType) # 转盘
|
| | | PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Recharge, addVIPExp)
|
| | | PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_CTGExp, addVIPExp)
|
| | | #投资
|
| | | if ctgIpyData:
|
| | | ctgID = ctgIpyData.GetRecordID()
|
| | |
| | | import GameFuncComm
|
| | | import IpyGameDataPY
|
| | | import PyGameData
|
| | | import PlayerFeastTravel
|
| | | import PlayerActTurntable
|
| | | import PlayerCostRebate
|
| | | import PlayerActLunhuidian
|
| | |
| | | # 消费返利
|
| | | if costType not in ChConfig.CostRebate_DisableType:
|
| | | PlayerCostRebate.AddCostRebateGold(curPlayer, costType, price, infoDict)
|
| | | PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_UseGold, price)
|
| | | else:
|
| | | GameWorld.DebugLog("不计入消费活动的消费类型!costType=%s" % costType, curPlayer.GetPlayerID())
|
| | |
|
| | |
| | | import PlayerBossReborn
|
| | | import PlayerWeekParty
|
| | | import PlayerFeastWeekParty
|
| | | import PlayerFeastTravel
|
| | | import PlayerFeastLogin
|
| | | import PlayerFeastWish
|
| | | import PlayerActTask
|
| | |
| | |
|
| | | elif actionName == ShareDefine.OperationActionName_FeastWish:
|
| | | PlayerFeastWish.RefreshFeastWishActionInfo()
|
| | | |
| | | elif actionName == ShareDefine.OperationActionName_FeastTravel:
|
| | | PlayerFeastTravel.RefreshFeastTravelActionInfo()
|
| | |
|
| | | elif actionName == ShareDefine.OperationActionName_FeastWeekParty:
|
| | | PlayerFeastWeekParty.RefreshOperationAction_FeastWeekParty()
|
| | |
| | |
|
| | | if treasureType in [TreasureType_HeroComm, TreasureType_HeroHigh, TreasureType_HeroScore]:
|
| | | PlayerActivity.AddDailyTaskValue(curPlayer, ChConfig.DailyTask_HeroCall, treasureCount)
|
| | | #if treasureType == TreasureType_Rune:
|
| | | # PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_RuneTreasure, treasureCount)
|
| | | # PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_RuneTreasure, treasureCount)
|
| | | # PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_TreasureRune, treasureCount)
|
| | | #elif treasureType == TreasureType_Jipin:
|
| | | # PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_Treasure, treasureCount)
|
| | | # PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_Treasure, treasureCount)
|
| | | # PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_TreasureJipin, treasureCount)
|
| | | #elif treasureType == TreasureType_Jueshi:
|
| | | # PlayerFeastTravel.AddFeastTravelTaskValue(curPlayer, ChConfig.Def_FeastTravel_JSTreasure, treasureCount)
|
| | | # PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_JSTreasure, treasureCount)
|
| | | # PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_TreasureJueshi, treasureCount)
|
| | | #elif treasureType == TreasureType_Gubao:
|
| | | # PlayerActTask.AddActTaskValue(curPlayer, ChConfig.ActTaskType_TreasureGubao, treasureCount)
|
| | |
|
| | | PlayerActLunhuidian.AddLunhuidianValue(curPlayer, PlayerActLunhuidian.AwardType_Treasure, treasureType, treasureCount)
|
| | |
|
| | |
| | | OperationActionName_GrowupBuy = "ActGrowupBuy" # 成长必买活动
|
| | | OperationActionName_FeastLogin = "ActFeastLogin" # 节日登录活动
|
| | | OperationActionName_FeastWish = "ActFeastWish" # 节日祝福活动
|
| | | OperationActionName_FeastTravel = "ActFeastTravel" # 节日游历活动
|
| | | OperationActionName_ManyDayRecharge = "ActManyDayRecharge" # 多日连充活动
|
| | | OperationActionName_SingleRecharge = "ActSingleRecharge" # 单笔累充活动
|
| | | OperationActionName_Turntable = "ActTurntable" # 转盘活动
|
| | |
| | | FeastOperationActionNameList = [OperationActionName_FeastWeekParty,
|
| | | OperationActionName_RechargeRebateGold, OperationActionName_GrowupBuy,
|
| | | OperationActionName_FeastLogin,
|
| | | OperationActionName_FeastWish, OperationActionName_FeastTravel,
|
| | | OperationActionName_FeastWish,
|
| | | OperationActionName_RechargePrize,
|
| | | ]
|
| | | #所有的运营活动列表,含节日活动
|
| | |
| | | OperationActionName_WeekParty, OperationActionName_Turntable,
|
| | | OperationActionName_CollectWords,
|
| | | OperationActionName_FeastLogin,
|
| | | OperationActionName_FeastWish, OperationActionName_FeastTravel,
|
| | | OperationActionName_FeastWish,
|
| | | OperationActionName_ManyDayRecharge, OperationActionName_SingleRecharge,
|
| | | OperationActionName_GodGift,
|
| | | ]
|