16 卡牌服务端(删除旧的七天登录、活动登录、节日登录、节日祝福、等级奖励;)
| | |
| | | DWORD AddMaxAtk; //增加最大攻击
|
| | | };
|
| | |
|
| | | //七天登录奖励表
|
| | |
|
| | | struct tagLoginDayAward
|
| | | {
|
| | | BYTE _DayID; //天数
|
| | | dict Reward; //奖励 {"职业":[[物品ID,个数],...], ...}
|
| | | };
|
| | |
|
| | | //充值商品编号表
|
| | |
|
| | | struct OrderInfo
|
| | |
| | | list AwardListDay1; //第1天奖励 [[物品ID,个数,装备定制ID], ...]
|
| | | list AwardListDay2; //第2天奖励 [[物品ID,个数,装备定制ID], ...]
|
| | | list AwardListDay3; //第3天奖励 [[物品ID,个数,装备定制ID], ...]
|
| | | };
|
| | |
|
| | | //等级奖励表
|
| | |
|
| | | struct tagLVAward
|
| | | {
|
| | | BYTE _AwardID; //奖励ID
|
| | | WORD LV; //等级
|
| | | WORD LimitCnt; //全服限制数量
|
| | | dict Reward; //奖励 {"职业":[[物品ID,个数],...], ...}
|
| | | BYTE VIPLimit; //需要VIP几
|
| | | list VIPAward; //vip奖励[[物品ID,个数],...]
|
| | | };
|
| | |
|
| | | //寻宝设定表
|
| | |
| | | BYTE DayNum; //第X天从1开始
|
| | | list LoginAwardItemList; //奖励列表[[物品ID,个数,是否拍品], ...]
|
| | | list LoginAwardItemListEx; //扩展奖励列表[[物品ID,个数,是否拍品], ...]
|
| | | };
|
| | |
|
| | | //登录奖励时间表
|
| | |
|
| | | struct tagActLoginAward
|
| | | {
|
| | | DWORD _CfgID; //配置ID
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | WORD AdvanceMinutes; //前端提前X分钟展示活动
|
| | | BYTE IsDayReset; //是否每天重置
|
| | | BYTE ResetType; //重置类型,0-0点重置;1-5点重置
|
| | | WORD LVLimit; //限制等级
|
| | | list TemplateID; //模板编号
|
| | | };
|
| | |
|
| | | //登录奖励模板表
|
| | |
|
| | | struct tagLoginAward
|
| | | {
|
| | | BYTE _TemplateID; //模板ID
|
| | | BYTE ActionType; //活动条目ID
|
| | | DWORD TotalTimes; //可完成的总次数,0表示不限次数
|
| | | WORD SingleTimes; //单次领奖需要的次数
|
| | | char Reward; //奖励物品
|
| | | };
|
| | |
|
| | | //节日登录奖励时间表
|
| | |
|
| | | struct tagActFeastLogin
|
| | | {
|
| | | DWORD _CfgID; //配置ID
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | WORD LVLimit; //限制等级
|
| | | dict TemplateIDInfo; //模板信息 {(世界等级A,B):奖励模板编号, ...}
|
| | | };
|
| | |
|
| | | //节日登录奖励模板表
|
| | |
|
| | | struct tagActFeastLoginAward
|
| | | {
|
| | | BYTE _TemplateID; //模板ID
|
| | | BYTE DayNum; //第X天从1开始
|
| | | list LoginAwardItemList; //奖励列表[[物品ID,个数,是否拍品], ...]
|
| | | };
|
| | |
|
| | | //节日祝福时间表
|
| | |
|
| | | struct tagActFeastWish
|
| | | {
|
| | | DWORD _CfgID; //配置ID
|
| | | char StartDate; //开启日期
|
| | | char EndDate; //结束日期
|
| | | WORD LVLimit; //限制等级
|
| | | BYTE ResetType; //重置类型,0-0点重置;1-5点重置
|
| | | dict TemplateIDInfo; //模板信息 {(世界等级A,B):模板编号, ...}
|
| | | };
|
| | |
|
| | | //节日祝福瓶模板表
|
| | |
|
| | | struct tagActFeastWishBottle
|
| | | {
|
| | | BYTE _TemplateID; //模板ID
|
| | | BYTE WishBottleNum; //祝福瓶编号
|
| | | WORD NeedWishValue; //单次领奖所需祝福值
|
| | | BYTE ChooseTimeMax; //最大可领奖次数
|
| | | dict ChoosePrizeItem; //选择奖励物品信息,选完为止 {记录索引:[物品ID,个数,是否拍品], ...}
|
| | | list GoodItemIDList; //需要广播的物品ID列表 [物品ID, ...]
|
| | | char WorldNotifyKey; //全服广播key,参数(玩家名, 物品ID, 物品数据, 个数,)
|
| | | };
|
| | |
|
| | | //节日祝福池模板表
|
| | |
|
| | | struct tagActFeastWishPool
|
| | | {
|
| | | BYTE _TemplateID; //模板ID
|
| | | list WishPoolItemWeightInfo; //祝福池产出物品权重 [[权重, [物品ID,个数]], ..]
|
| | | list WishPoolClientItemShow; //前端展示物品列表 [物品ID, ...]
|
| | | list GoodItemIDList; //需要广播的物品ID列表 [物品ID, ...]
|
| | | char WorldNotifyKey; //全服广播key,参数(玩家名, 物品ID, 物品数据, 个数,)
|
| | | };
|
| | |
|
| | | //新仙界盛典-全民来嗨表
|
| | |
| | | PacketSubCMD_2 = 0x34
|
| | | PacketCallFunc_2 = OnLianTiLVUp
|
| | |
|
| | | ;累计登陆礼
|
| | | [PlayerLoginDayAward]
|
| | | ScriptName = Player\PlayerLoginDayAward.py
|
| | | Writer = alee
|
| | | Releaser = alee
|
| | | RegType = 0
|
| | | RegisterPackCount = 1
|
| | |
|
| | | PacketCMD_1 = 0xAA
|
| | | PacketSubCMD_1 = 0x01
|
| | | PacketCallFunc_1 = GetTotalLoginDayAward
|
| | |
|
| | | ;改名功能
|
| | | [UpdatePlayerName]
|
| | | ScriptName = Player\UpdatePlayerName.py
|
| | |
| | | PacketCMD_2=
|
| | | PacketSubCMD_2=
|
| | | PacketCallFunc_2=
|
| | |
|
| | | ;节日祝福
|
| | | [PlayerFeastWish]
|
| | | ScriptName = Player\PlayerFeastWish.py
|
| | | Writer = hxp
|
| | | Releaser = hxp
|
| | | RegType = 0
|
| | | RegisterPackCount = 2
|
| | |
|
| | | PacketCMD_1=0xAA
|
| | | PacketSubCMD_1=0x10
|
| | | PacketCallFunc_1=OnFeastWishBottleChooseItem
|
| | |
|
| | | PacketCMD_2=0xAA
|
| | | PacketSubCMD_2=0x11
|
| | | PacketCallFunc_2=OnFeastWishPoolWish
|
| | |
|
| | | ;功能系统特权
|
| | | [PlayerFuncSysPrivilege]
|
| | |
| | | Def_PDict_PackDataSyncFightPower = "PackDataSyncFightPower" # 本次上线打包数据同步时的战力,用于对比,只对比求余亿部分即可
|
| | | Def_PDict_DayOnlineTime = "DayOnlineTime" # 当日在线时长
|
| | | Def_PDict_DayOnlineCalcTime = "DayOLCalcTime" # 当日在线计算时间
|
| | | Def_PDict_LVAwardGetRecord = "LVAwardGetRecord" # 等级奖励领取信息记录,按二进制位标示
|
| | | Def_PDict_LVAwardVIPGetRecord = "LVAwardVIPGetRecord" # 等级奖励vip领取信息记录,按二进制位标示
|
| | | Def_PDict_HistoryChargeAwardGetRecord = "HTotalGoldAwardRecord" # 历史累计充值奖励领取信息记录,按二进制位标示
|
| | | Def_PDict_CTGCountResetTime = "CTGCountResetTime" # CTG次数重置时间time值
|
| | | Def_PDict_CTGRealToday = "CTGRealToday" # 当日真实货币充值Coin数 ,不含后台充值 - 今日
|
| | |
| | | Def_PDict_TravelGridInfo = "TravelGridInfo_%s_%s" # 格子信息,参数(行, 列) 事件ID*100+是否双倍*10+开启状态
|
| | | Def_PDict_TravelState = "TravelState" # 本盘游历记录,1-已领取景观奖励
|
| | |
|
| | | #登录奖励运营活动
|
| | | Def_PDict_LoginAwardID = "LoginAwardID" # 玩家身上的BOSS复活活动ID,唯一标识,取活动开始日期time值
|
| | | Def_PDict_LoginAwardCurTimes = "LoginAwardCurTimes_%s_%s" #当前完成次数 参数(第X天,模板ID)
|
| | | Def_PDict_LoginAwardGotTimes = "LoginAwardGotTimes_%s_%s" #当前已领次数 参数(第X天,模板ID)
|
| | | Def_PDict_LoginAwardWorldLV = "LoginAwardWorldLV%s" #活动开启时世界等级参数(第X天)
|
| | |
|
| | | #幸运鉴宝
|
| | | Def_PDict_LuckyTreasureID = "LuckyTreasureID" # 玩家身上的活动ID,唯一标识,取活动开始日期time值
|
| | | Def_PDict_LuckyTreasureFree = "LuckyTreasureFree" #是否免费过
|
| | | Def_PDict_LuckyTreasurePoint = "LuckyTreasurePoint" #幸运值
|
| | | Def_PDict_LuckyTreasureCnt = "LuckyTreasureCnt" #鉴宝次数
|
| | |
|
| | | #节日登录活动
|
| | | Def_PDict_FeastLoginID = "FeastLoginID" # 玩家身上的活动ID,唯一标识,取活动开始日期time值
|
| | | Def_PDict_FeastLoginState = "FeastLoginState" # 活动登录记录,十位-已累计登录天数,个位-上次记录的登录天
|
| | | Def_PDict_FeastLoginAwardState = "FeastLoginAwardState" # 活动登录领奖记录,按天编号-1为索引进行二进制位运算记录当天是否已领奖
|
| | |
|
| | | #节日祝福活动
|
| | | Def_PDict_FeastWishID = "FeastWishID" # 玩家身上的活动ID,唯一标识,取活动开始日期time值
|
| | | Def_PDict_FeastWishTemplateID = "FeastWishTemplateID" # 玩家身上的模板ID
|
| | | Def_PDict_FeastWishBottleValue = "FeastWishBottleValue_%s" # 祝福瓶当前祝福值,参数(瓶子编号)
|
| | | Def_PDict_FeastWishBottleGetState = "FeastWishBottleGetState_%s" # 祝福瓶已领取记录,参数(瓶子编号),按记录索引二进制位存储是否已领取
|
| | |
|
| | | #多日连充活动
|
| | | Def_PDict_ManyDayRechargeID = "ManyDayRechargeID_%s" # 玩家身上的活动ID,唯一标识,取活动开始日期time值,参数:(活动编号)
|
| | |
| | | Def_RewardType_ShareGame, #每日分享奖励34
|
| | | Def_RewardType_GoodGame, #游戏好评奖励35
|
| | | Def_RewardType_CACTGBillboardDabiao, #跨服充值排行活动达标奖励36
|
| | | Def_RewardType_FeastLogin, #节日登录奖励37
|
| | | Def_RewardType_37,
|
| | | Def_RewardType_38,
|
| | | Def_RewardType_DailyRecharge, #永久每日累充奖励39
|
| | | Def_RewardType_RechargeGold30, #1元送30倍充值券每日奖励40
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 10 节日祝福瓶选择奖励物品 #tagCMFeastWishBottleChooseItem
|
| | |
|
| | | class tagCMFeastWishBottleChooseItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("BottleNum", c_ubyte), #瓶子编号
|
| | | ("RecordIndex", c_ubyte), #物品索引,用于选择及记录是否已选择
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x10
|
| | | 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 = 0x10
|
| | | self.BottleNum = 0
|
| | | self.RecordIndex = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMFeastWishBottleChooseItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 10 节日祝福瓶选择奖励物品 //tagCMFeastWishBottleChooseItem:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | BottleNum:%d,
|
| | | RecordIndex:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.BottleNum,
|
| | | self.RecordIndex
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMFeastWishBottleChooseItem=tagCMFeastWishBottleChooseItem()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFeastWishBottleChooseItem.Cmd,m_NAtagCMFeastWishBottleChooseItem.SubCmd))] = m_NAtagCMFeastWishBottleChooseItem
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 11 节日祝福池祝福 #tagCMFeastWishPoolWish
|
| | |
|
| | | class tagCMFeastWishPoolWish(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("WishCount", c_ubyte), #祝福次数
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x11
|
| | | 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 = 0x11
|
| | | self.WishCount = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMFeastWishPoolWish)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 11 节日祝福池祝福 //tagCMFeastWishPoolWish:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | WishCount:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.WishCount
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMFeastWishPoolWish=tagCMFeastWishPoolWish()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFeastWishPoolWish.Cmd,m_NAtagCMFeastWishPoolWish.SubCmd))] = m_NAtagCMFeastWishPoolWish
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 05 限时抢购预约 #tagCMFlashSaleAppointment
|
| | |
|
| | | class tagCMFlashSaleAppointment(Structure):
|
| | |
| | |
|
| | | m_NAtagCMFlashSaleAppointment=tagCMFlashSaleAppointment()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMFlashSaleAppointment.Cmd,m_NAtagCMFlashSaleAppointment.SubCmd))] = m_NAtagCMFlashSaleAppointment
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #AA 01 领取累计登陆礼 # tagCMGetTotalLoginDayAward
|
| | |
|
| | | class tagCMGetTotalLoginDayAward(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("Index", c_ubyte), # 领取礼物
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x01
|
| | | 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 = 0x01
|
| | | self.Index = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagCMGetTotalLoginDayAward)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//AA 01 领取累计登陆礼 // tagCMGetTotalLoginDayAward:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | Index:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.Index
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagCMGetTotalLoginDayAward=tagCMGetTotalLoginDayAward()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagCMGetTotalLoginDayAward.Cmd,m_NAtagCMGetTotalLoginDayAward.SubCmd))] = m_NAtagCMGetTotalLoginDayAward
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 0B 玩家等级奖励领取记录信息 #tagMCPlayerLVAwardGetRecord
|
| | |
|
| | | class tagMCPlayerLVAwardGetRecord(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("LVAwardGetRecord", c_int), # 按二进制位标示领取记录,每位对应的等级在配表中配置,服务端客户端对应
|
| | | ("VIPAwardRecord", c_int), # 按二进制位标示vip领取记录,每位对应的等级在配表中配置,服务端客户端对应
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xA3
|
| | | self.SubCmd = 0x0B
|
| | | 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 = 0xA3
|
| | | self.SubCmd = 0x0B
|
| | | self.LVAwardGetRecord = 0
|
| | | self.VIPAwardRecord = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCPlayerLVAwardGetRecord)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//A3 0B 玩家等级奖励领取记录信息 //tagMCPlayerLVAwardGetRecord:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | LVAwardGetRecord:%d,
|
| | | VIPAwardRecord:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.LVAwardGetRecord,
|
| | | self.VIPAwardRecord
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCPlayerLVAwardGetRecord=tagMCPlayerLVAwardGetRecord()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCPlayerLVAwardGetRecord.Cmd,m_NAtagMCPlayerLVAwardGetRecord.SubCmd))] = m_NAtagMCPlayerLVAwardGetRecord
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #A3 0C 玩家各奖励类型领取记录信息 #tagMCPlayerRewardGetRecord
|
| | |
|
| | | class tagMCPlayerRewardGetRecord(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 0C 登录奖励活动信息 #tagMCActLoginAwardInfo
|
| | |
|
| | | class tagMCActLoginAwardAction(Structure):
|
| | | TemplateID = 0 #(DWORD TemplateID)// 模板ID
|
| | | ActionType = 0 #(WORD ActionType)// 活动类别
|
| | | TotalTimes = 0 #(DWORD TotalTimes)// 可完成的总次数,0表示不限次数
|
| | | SingleTimes = 0 #(DWORD SingleTimes)// 单次领奖需要的次数
|
| | | Count = 0 #(WORD Count)// 物品配置长度
|
| | | ItemInfo = "" #(String ItemInfo)// 物品信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.TemplateID,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ActionType,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.TotalTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.SingleTimes,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ItemInfo,_pos = CommFunc.ReadString(_lpData, _pos,self.Count)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.TemplateID = 0
|
| | | self.ActionType = 0
|
| | | self.TotalTimes = 0
|
| | | self.SingleTimes = 0
|
| | | self.Count = 0
|
| | | self.ItemInfo = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 2
|
| | | length += 4
|
| | | length += 4
|
| | | length += 2
|
| | | length += len(self.ItemInfo)
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.TemplateID)
|
| | | data = CommFunc.WriteWORD(data, self.ActionType)
|
| | | data = CommFunc.WriteDWORD(data, self.TotalTimes)
|
| | | data = CommFunc.WriteDWORD(data, self.SingleTimes)
|
| | | data = CommFunc.WriteWORD(data, self.Count)
|
| | | data = CommFunc.WriteString(data, self.Count, self.ItemInfo)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | TemplateID:%d,
|
| | | ActionType:%d,
|
| | | TotalTimes:%d,
|
| | | SingleTimes:%d,
|
| | | Count:%d,
|
| | | ItemInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.TemplateID,
|
| | | self.ActionType,
|
| | | self.TotalTimes,
|
| | | self.SingleTimes,
|
| | | self.Count,
|
| | | self.ItemInfo
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActLoginAwardDayInfo(Structure):
|
| | | ActCnt = 0 #(BYTE ActCnt)// 数量
|
| | | TemplateList = list() #(vector<WORD> TemplateList)// 模板列表
|
| | | WorldLV = 0 #(WORD WorldLV)// 世界等级
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.ActCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.ActCnt):
|
| | | value,_pos=CommFunc.ReadWORD(_lpData,_pos)
|
| | | self.TemplateList.append(value)
|
| | | self.WorldLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.ActCnt = 0
|
| | | self.TemplateList = list()
|
| | | self.WorldLV = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 2 * self.ActCnt
|
| | | length += 2
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.ActCnt)
|
| | | for i in range(self.ActCnt):
|
| | | data = CommFunc.WriteWORD(data, self.TemplateList[i])
|
| | | data = CommFunc.WriteWORD(data, self.WorldLV)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | ActCnt:%d,
|
| | | TemplateList:%s,
|
| | | WorldLV:%d
|
| | | '''\
|
| | | %(
|
| | | self.ActCnt,
|
| | | "...",
|
| | | self.WorldLV
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActLoginAwardInfo(Structure):
|
| | | Head = tagHead()
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | AdvanceMinutes = 0 #(WORD AdvanceMinutes)// 提前显示分钟
|
| | | IsDayReset = 0 #(BYTE IsDayReset)//是否每天重置
|
| | | ResetType = 0 #(BYTE ResetType)// 重置类型,0-0点重置;1-5点重置
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | DayCnt = 0 #(BYTE DayCnt)// 天数
|
| | | DayInfoList = list() #(vector<tagMCActLoginAwardDayInfo> DayInfoList)// 每天模板
|
| | | TCount = 0 #(BYTE TCount)// 模板数
|
| | | ActionInfo = list() #(vector<tagMCActLoginAwardAction> ActionInfo)// 活动模板信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x0C
|
| | | 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.AdvanceMinutes,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.IsDayReset,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ResetType,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.LimitLV,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.DayCnt,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.DayCnt):
|
| | | temDayInfoList = tagMCActLoginAwardDayInfo()
|
| | | _pos = temDayInfoList.ReadData(_lpData, _pos)
|
| | | self.DayInfoList.append(temDayInfoList)
|
| | | self.TCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.TCount):
|
| | | temActionInfo = tagMCActLoginAwardAction()
|
| | | _pos = temActionInfo.ReadData(_lpData, _pos)
|
| | | self.ActionInfo.append(temActionInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x0C
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.AdvanceMinutes = 0
|
| | | self.IsDayReset = 0
|
| | | self.ResetType = 0
|
| | | self.LimitLV = 0
|
| | | self.DayCnt = 0
|
| | | self.DayInfoList = list()
|
| | | self.TCount = 0
|
| | | self.ActionInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 10
|
| | | length += 10
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.DayCnt):
|
| | | length += self.DayInfoList[i].GetLength()
|
| | | length += 1
|
| | | for i in range(self.TCount):
|
| | | length += self.ActionInfo[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.AdvanceMinutes)
|
| | | data = CommFunc.WriteBYTE(data, self.IsDayReset)
|
| | | data = CommFunc.WriteBYTE(data, self.ResetType)
|
| | | data = CommFunc.WriteWORD(data, self.LimitLV)
|
| | | data = CommFunc.WriteBYTE(data, self.DayCnt)
|
| | | for i in range(self.DayCnt):
|
| | | data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.TCount)
|
| | | for i in range(self.TCount):
|
| | | data = CommFunc.WriteString(data, self.ActionInfo[i].GetLength(), self.ActionInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | AdvanceMinutes:%d,
|
| | | IsDayReset:%d,
|
| | | ResetType:%d,
|
| | | LimitLV:%d,
|
| | | DayCnt:%d,
|
| | | DayInfoList:%s,
|
| | | TCount:%d,
|
| | | ActionInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.AdvanceMinutes,
|
| | | self.IsDayReset,
|
| | | self.ResetType,
|
| | | self.LimitLV,
|
| | | self.DayCnt,
|
| | | "...",
|
| | | self.TCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActLoginAwardInfo=tagMCActLoginAwardInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginAwardInfo.Head.Cmd,m_NAtagMCActLoginAwardInfo.Head.SubCmd))] = m_NAtagMCActLoginAwardInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 0D 登录奖励玩家活动信息 #tagMCActLoginAwardPlayerInfo
|
| | |
|
| | | class tagMCActLoginAwardTaskInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("TemplateID", c_ushort), # 模板ID
|
| | | ("CurTimes", c_ushort), #已完成次数
|
| | | ("GotTimes", 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.TemplateID = 0
|
| | | self.CurTimes = 0
|
| | | self.GotTimes = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCActLoginAwardTaskInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 0D 登录奖励玩家活动信息 //tagMCActLoginAwardPlayerInfo:
|
| | | TemplateID:%d,
|
| | | CurTimes:%d,
|
| | | GotTimes:%d
|
| | | '''\
|
| | | %(
|
| | | self.TemplateID,
|
| | | self.CurTimes,
|
| | | self.GotTimes
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActLoginAwardDayPlayerInfo(Structure):
|
| | | DayIndex = 0 #(DWORD DayIndex)//第X天
|
| | | ACount = 0 #(DWORD ACount)//任务条目数
|
| | | TaskList = list() #(vector<tagMCActLoginAwardTaskInfo> TaskList)//活动完成次数信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.DayIndex,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | self.ACount,_pos = CommFunc.ReadDWORD(_lpData, _pos)
|
| | | for i in range(self.ACount):
|
| | | temTaskList = tagMCActLoginAwardTaskInfo()
|
| | | _pos = temTaskList.ReadData(_lpData, _pos)
|
| | | self.TaskList.append(temTaskList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.DayIndex = 0
|
| | | self.ACount = 0
|
| | | self.TaskList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 4
|
| | | length += 4
|
| | | for i in range(self.ACount):
|
| | | length += self.TaskList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteDWORD(data, self.DayIndex)
|
| | | data = CommFunc.WriteDWORD(data, self.ACount)
|
| | | for i in range(self.ACount):
|
| | | data = CommFunc.WriteString(data, self.TaskList[i].GetLength(), self.TaskList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | DayIndex:%d,
|
| | | ACount:%d,
|
| | | TaskList:%s
|
| | | '''\
|
| | | %(
|
| | | self.DayIndex,
|
| | | self.ACount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCActLoginAwardPlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | Count = 0 #(BYTE Count)
|
| | | DayInfoList = list() #(vector<tagMCActLoginAwardDayPlayerInfo> DayInfoList)//活动完成次数信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x0D
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.Count,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.Count):
|
| | | temDayInfoList = tagMCActLoginAwardDayPlayerInfo()
|
| | | _pos = temDayInfoList.ReadData(_lpData, _pos)
|
| | | self.DayInfoList.append(temDayInfoList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x0D
|
| | | self.Count = 0
|
| | | self.DayInfoList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.Count):
|
| | | length += self.DayInfoList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.Count)
|
| | | for i in range(self.Count):
|
| | | data = CommFunc.WriteString(data, self.DayInfoList[i].GetLength(), self.DayInfoList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | Count:%d,
|
| | | DayInfoList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.Count,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCActLoginAwardPlayerInfo=tagMCActLoginAwardPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCActLoginAwardPlayerInfo.Head.Cmd,m_NAtagMCActLoginAwardPlayerInfo.Head.SubCmd))] = m_NAtagMCActLoginAwardPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 69 登录活动信息新 #tagMCActLoginNew
|
| | |
|
| | | class tagMCActLoginNewItem(Structure):
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 42 节日登录奖励活动信息 #tagMCFeastLoginInfo
|
| | |
|
| | | class tagMCFeastLoginDayAwardItem(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(tagMCFeastLoginDayAwardItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 42 节日登录奖励活动信息 //tagMCFeastLoginInfo:
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d
|
| | | '''\
|
| | | %(
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastLoginDayAward(Structure):
|
| | | DayNum = 0 #(BYTE DayNum)//天编号,从1开始,活动第X天只能领对应第X天的奖励
|
| | | AwardCount = 0 #(BYTE AwardCount)
|
| | | AwardItemList = list() #(vector<tagMCFeastLoginDayAwardItem> AwardItemList)// 奖励物品列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.DayNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.AwardCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.AwardCount):
|
| | | temAwardItemList = tagMCFeastLoginDayAwardItem()
|
| | | _pos = temAwardItemList.ReadData(_lpData, _pos)
|
| | | self.AwardItemList.append(temAwardItemList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.DayNum = 0
|
| | | self.AwardCount = 0
|
| | | self.AwardItemList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.AwardCount):
|
| | | length += self.AwardItemList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.DayNum)
|
| | | data = CommFunc.WriteBYTE(data, self.AwardCount)
|
| | | for i in range(self.AwardCount):
|
| | | data = CommFunc.WriteString(data, self.AwardItemList[i].GetLength(), self.AwardItemList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | DayNum:%d,
|
| | | AwardCount:%d,
|
| | | AwardItemList:%s
|
| | | '''\
|
| | | %(
|
| | | self.DayNum,
|
| | | self.AwardCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastLoginInfo(Structure):
|
| | | Head = tagHead()
|
| | | StartDate = "" #(char StartDate[10])// 开始日期 y-m-d
|
| | | EndtDate = "" #(char EndtDate[10])// 结束日期 y-m-d
|
| | | LimitLV = 0 #(WORD LimitLV)// 限制等级
|
| | | DayCount = 0 #(BYTE DayCount)// 总共几天
|
| | | DayAwardList = list() #(vector<tagMCFeastLoginDayAward> DayAwardList)//登录天奖励列表
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x42
|
| | | 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.DayCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.DayCount):
|
| | | temDayAwardList = tagMCFeastLoginDayAward()
|
| | | _pos = temDayAwardList.ReadData(_lpData, _pos)
|
| | | self.DayAwardList.append(temDayAwardList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x42
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.LimitLV = 0
|
| | | self.DayCount = 0
|
| | | self.DayAwardList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 10
|
| | | length += 10
|
| | | length += 2
|
| | | length += 1
|
| | | for i in range(self.DayCount):
|
| | | length += self.DayAwardList[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.DayCount)
|
| | | for i in range(self.DayCount):
|
| | | data = CommFunc.WriteString(data, self.DayAwardList[i].GetLength(), self.DayAwardList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | LimitLV:%d,
|
| | | DayCount:%d,
|
| | | DayAwardList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.LimitLV,
|
| | | self.DayCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastLoginInfo=tagMCFeastLoginInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastLoginInfo.Head.Cmd,m_NAtagMCFeastLoginInfo.Head.SubCmd))] = m_NAtagMCFeastLoginInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 39 节日登录奖励活动玩家信息 #tagMCFeastLoginPlayerInfo
|
| | |
|
| | | class tagMCFeastLoginPlayerInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("LoginState", c_int), # 是否已登录,按天索引0代表第1天记录当天是否已登录
|
| | | ("LoginAward", c_int), # 是否已领取,按天索引0代表第1天记录当天是否已领取
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x39
|
| | | 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 = 0x39
|
| | | self.LoginState = 0
|
| | | self.LoginAward = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastLoginPlayerInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 39 节日登录奖励活动玩家信息 //tagMCFeastLoginPlayerInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | LoginState:%d,
|
| | | LoginAward:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.LoginState,
|
| | | self.LoginAward
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastLoginPlayerInfo=tagMCFeastLoginPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastLoginPlayerInfo.Cmd,m_NAtagMCFeastLoginPlayerInfo.SubCmd))] = m_NAtagMCFeastLoginPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 43 节日祝福活动信息 #tagMCFeastWishInfo
|
| | |
|
| | | class tagMCFeastWishBottleItem(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("RecordIndex", c_ubyte), #物品索引,用于选择及记录是否已选择
|
| | | ("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.RecordIndex = 0
|
| | | self.ItemID = 0
|
| | | self.ItemCount = 0
|
| | | self.IsBind = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastWishBottleItem)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 43 节日祝福活动信息 //tagMCFeastWishInfo:
|
| | | RecordIndex:%d,
|
| | | ItemID:%d,
|
| | | ItemCount:%d,
|
| | | IsBind:%d
|
| | | '''\
|
| | | %(
|
| | | self.RecordIndex,
|
| | | self.ItemID,
|
| | | self.ItemCount,
|
| | | self.IsBind
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastWishBottleInfo(Structure):
|
| | | BottleNum = 0 #(BYTE BottleNum)//瓶子编号
|
| | | NeedWishValue = 0 #(WORD NeedWishValue)//单次领奖所需祝福值
|
| | | ChooseTimeMax = 0 #(BYTE ChooseTimeMax)//最大可领奖次数
|
| | | ChoosePrizeCount = 0 #(BYTE ChoosePrizeCount)//可选择奖励个数
|
| | | ChoosePrizeList = list() #(vector<tagMCFeastWishBottleItem> ChoosePrizeList)// 选择奖励物品列表,已选过的无法再选
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | self.BottleNum,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.NeedWishValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.ChooseTimeMax,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | self.ChoosePrizeCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.ChoosePrizeCount):
|
| | | temChoosePrizeList = tagMCFeastWishBottleItem()
|
| | | _pos = temChoosePrizeList.ReadData(_lpData, _pos)
|
| | | self.ChoosePrizeList.append(temChoosePrizeList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.BottleNum = 0
|
| | | self.NeedWishValue = 0
|
| | | self.ChooseTimeMax = 0
|
| | | self.ChoosePrizeCount = 0
|
| | | self.ChoosePrizeList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += 1
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.ChoosePrizeCount):
|
| | | length += self.ChoosePrizeList[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteBYTE(data, self.BottleNum)
|
| | | data = CommFunc.WriteWORD(data, self.NeedWishValue)
|
| | | data = CommFunc.WriteBYTE(data, self.ChooseTimeMax)
|
| | | data = CommFunc.WriteBYTE(data, self.ChoosePrizeCount)
|
| | | for i in range(self.ChoosePrizeCount):
|
| | | data = CommFunc.WriteString(data, self.ChoosePrizeList[i].GetLength(), self.ChoosePrizeList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | BottleNum:%d,
|
| | | NeedWishValue:%d,
|
| | | ChooseTimeMax:%d,
|
| | | ChoosePrizeCount:%d,
|
| | | ChoosePrizeList:%s
|
| | | '''\
|
| | | %(
|
| | | self.BottleNum,
|
| | | self.NeedWishValue,
|
| | | self.ChooseTimeMax,
|
| | | self.ChoosePrizeCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastWishInfo(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点重置
|
| | | WishPoolShowCount = 0 #(BYTE WishPoolShowCount)//祝福池展示物品数
|
| | | WishPoolShowItemList = list() #(vector<DWORD> WishPoolShowItemList)//祝福池展示物品ID列表
|
| | | BottleCount = 0 #(BYTE BottleCount)// 祝福瓶个数
|
| | | BottleInfoList = list() #(vector<tagMCFeastWishBottleInfo> BottleInfoList)// 祝福瓶信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x43
|
| | | 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.WishPoolShowCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.WishPoolShowCount):
|
| | | value,_pos=CommFunc.ReadDWORD(_lpData,_pos)
|
| | | self.WishPoolShowItemList.append(value)
|
| | | self.BottleCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.BottleCount):
|
| | | temBottleInfoList = tagMCFeastWishBottleInfo()
|
| | | _pos = temBottleInfoList.ReadData(_lpData, _pos)
|
| | | self.BottleInfoList.append(temBottleInfoList)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x43
|
| | | self.StartDate = ""
|
| | | self.EndtDate = ""
|
| | | self.LimitLV = 0
|
| | | self.ResetType = 0
|
| | | self.WishPoolShowCount = 0
|
| | | self.WishPoolShowItemList = list()
|
| | | self.BottleCount = 0
|
| | | self.BottleInfoList = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 10
|
| | | length += 10
|
| | | length += 2
|
| | | length += 1
|
| | | length += 1
|
| | | length += 4 * self.WishPoolShowCount
|
| | | length += 1
|
| | | for i in range(self.BottleCount):
|
| | | length += self.BottleInfoList[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.WishPoolShowCount)
|
| | | for i in range(self.WishPoolShowCount):
|
| | | data = CommFunc.WriteDWORD(data, self.WishPoolShowItemList[i])
|
| | | data = CommFunc.WriteBYTE(data, self.BottleCount)
|
| | | for i in range(self.BottleCount):
|
| | | data = CommFunc.WriteString(data, self.BottleInfoList[i].GetLength(), self.BottleInfoList[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | StartDate:%s,
|
| | | EndtDate:%s,
|
| | | LimitLV:%d,
|
| | | ResetType:%d,
|
| | | WishPoolShowCount:%d,
|
| | | WishPoolShowItemList:%s,
|
| | | BottleCount:%d,
|
| | | BottleInfoList:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.StartDate,
|
| | | self.EndtDate,
|
| | | self.LimitLV,
|
| | | self.ResetType,
|
| | | self.WishPoolShowCount,
|
| | | "...",
|
| | | self.BottleCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastWishInfo=tagMCFeastWishInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishInfo.Head.Cmd,m_NAtagMCFeastWishInfo.Head.SubCmd))] = m_NAtagMCFeastWishInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 44 节日祝福活动玩家信息 #tagMCFeastWishPlayerInfo
|
| | |
|
| | | class tagMCFeastWishPlayerBottle(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("BottleNum", c_ubyte), #瓶子编号
|
| | | ("WishValue", c_ushort), #当前可用祝福值
|
| | | ("ChooseRecord", 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.BottleNum = 0
|
| | | self.WishValue = 0
|
| | | self.ChooseRecord = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCFeastWishPlayerBottle)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''// AA 44 节日祝福活动玩家信息 //tagMCFeastWishPlayerInfo:
|
| | | BottleNum:%d,
|
| | | WishValue:%d,
|
| | | ChooseRecord:%d
|
| | | '''\
|
| | | %(
|
| | | self.BottleNum,
|
| | | self.WishValue,
|
| | | self.ChooseRecord
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | class tagMCFeastWishPlayerInfo(Structure):
|
| | | Head = tagHead()
|
| | | BottleCount = 0 #(BYTE BottleCount)// 祝福瓶个数
|
| | | PlayerBottleInfo = list() #(vector<tagMCFeastWishPlayerBottle> PlayerBottleInfo)// 祝福瓶信息
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x44
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.BottleCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
|
| | | for i in range(self.BottleCount):
|
| | | temPlayerBottleInfo = tagMCFeastWishPlayerBottle()
|
| | | _pos = temPlayerBottleInfo.ReadData(_lpData, _pos)
|
| | | self.PlayerBottleInfo.append(temPlayerBottleInfo)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x44
|
| | | self.BottleCount = 0
|
| | | self.PlayerBottleInfo = list()
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 1
|
| | | for i in range(self.BottleCount):
|
| | | length += self.PlayerBottleInfo[i].GetLength()
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteBYTE(data, self.BottleCount)
|
| | | for i in range(self.BottleCount):
|
| | | data = CommFunc.WriteString(data, self.PlayerBottleInfo[i].GetLength(), self.PlayerBottleInfo[i].GetBuffer())
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | BottleCount:%d,
|
| | | PlayerBottleInfo:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.BottleCount,
|
| | | "..."
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastWishPlayerInfo=tagMCFeastWishPlayerInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishPlayerInfo.Head.Cmd,m_NAtagMCFeastWishPlayerInfo.Head.SubCmd))] = m_NAtagMCFeastWishPlayerInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 45 节日祝福祝福结果 #tagMCFeastWishResult
|
| | |
|
| | | class tagMCFeastWishResult(Structure):
|
| | | Head = tagHead()
|
| | | AddWishValue = 0 #(WORD AddWishValue)// 本次增加的祝福值
|
| | | WishResultLen = 0 #(WORD WishResultLen)
|
| | | WishResult = "" #(String WishResult)// 获得物品结果[[物品ID,个数,是否绑定], ...]
|
| | | data = None
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x45
|
| | | return
|
| | |
|
| | | def ReadData(self, _lpData, _pos=0, _Len=0):
|
| | | self.Clear()
|
| | | _pos = self.Head.ReadData(_lpData, _pos)
|
| | | self.AddWishValue,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.WishResultLen,_pos = CommFunc.ReadWORD(_lpData, _pos)
|
| | | self.WishResult,_pos = CommFunc.ReadString(_lpData, _pos,self.WishResultLen)
|
| | | return _pos
|
| | |
|
| | | def Clear(self):
|
| | | self.Head = tagHead()
|
| | | self.Head.Clear()
|
| | | self.Head.Cmd = 0xAA
|
| | | self.Head.SubCmd = 0x45
|
| | | self.AddWishValue = 0
|
| | | self.WishResultLen = 0
|
| | | self.WishResult = ""
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | length = 0
|
| | | length += self.Head.GetLength()
|
| | | length += 2
|
| | | length += 2
|
| | | length += len(self.WishResult)
|
| | |
|
| | | return length
|
| | |
|
| | | def GetBuffer(self):
|
| | | data = ''
|
| | | data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
|
| | | data = CommFunc.WriteWORD(data, self.AddWishValue)
|
| | | data = CommFunc.WriteWORD(data, self.WishResultLen)
|
| | | data = CommFunc.WriteString(data, self.WishResultLen, self.WishResult)
|
| | | return data
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''
|
| | | Head:%s,
|
| | | AddWishValue:%d,
|
| | | WishResultLen:%d,
|
| | | WishResult:%s
|
| | | '''\
|
| | | %(
|
| | | self.Head.OutputString(),
|
| | | self.AddWishValue,
|
| | | self.WishResultLen,
|
| | | self.WishResult
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCFeastWishResult=tagMCFeastWishResult()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCFeastWishResult.Head.Cmd,m_NAtagMCFeastWishResult.Head.SubCmd))] = m_NAtagMCFeastWishResult
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | # AA 02 首充信息 #tagSCFirstChargeInfo
|
| | |
|
| | | class tagSCFirstCharge(Structure):
|
| | |
| | |
|
| | | m_NAtagMCSuperGiftInfo=tagMCSuperGiftInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCSuperGiftInfo.Cmd,m_NAtagMCSuperGiftInfo.SubCmd))] = m_NAtagMCSuperGiftInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | | #AA 01 累计登陆天数信息 #tagMCTotalLoginDayCntInfo
|
| | |
|
| | | class tagMCTotalLoginDayCntInfo(Structure):
|
| | | _pack_ = 1
|
| | | _fields_ = [
|
| | | ("Cmd", c_ubyte),
|
| | | ("SubCmd", c_ubyte),
|
| | | ("DayCnt", c_ushort), #累计登陆天数
|
| | | ("AwardInfo", c_ushort), #登陆领取情况
|
| | | ]
|
| | |
|
| | | def __init__(self):
|
| | | self.Clear()
|
| | | self.Cmd = 0xAA
|
| | | self.SubCmd = 0x01
|
| | | 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 = 0x01
|
| | | self.DayCnt = 0
|
| | | self.AwardInfo = 0
|
| | | return
|
| | |
|
| | | def GetLength(self):
|
| | | return sizeof(tagMCTotalLoginDayCntInfo)
|
| | |
|
| | | def GetBuffer(self):
|
| | | return string_at(addressof(self), self.GetLength())
|
| | |
|
| | | def OutputString(self):
|
| | | DumpString = '''//AA 01 累计登陆天数信息 //tagMCTotalLoginDayCntInfo:
|
| | | Cmd:%s,
|
| | | SubCmd:%s,
|
| | | DayCnt:%d,
|
| | | AwardInfo:%d
|
| | | '''\
|
| | | %(
|
| | | self.Cmd,
|
| | | self.SubCmd,
|
| | | self.DayCnt,
|
| | | self.AwardInfo
|
| | | )
|
| | | return DumpString
|
| | |
|
| | |
|
| | | m_NAtagMCTotalLoginDayCntInfo=tagMCTotalLoginDayCntInfo()
|
| | | ChNetPackDict[eval("0x%02x%02x"%(m_NAtagMCTotalLoginDayCntInfo.Cmd,m_NAtagMCTotalLoginDayCntInfo.SubCmd))] = m_NAtagMCTotalLoginDayCntInfo
|
| | |
|
| | |
|
| | | #------------------------------------------------------
|
| | |
| | | #SendEventPack("FightFail_%s" % mapID, failDRDict, checkBatServer=False)
|
| | | return
|
| | |
|
| | | ##累计登陆礼包
|
| | | def DR_LoginDayAward(curPlayer, dayIndex):
|
| | | dataDict = {'PlayerID':curPlayer.GetPlayerID(), |
| | | 'PlayerName':curPlayer.GetPlayerName(), |
| | | 'AccID':curPlayer.GetAccID(),
|
| | | "DayIndex":dayIndex
|
| | | }
|
| | | |
| | | SendEventPack("LoginDayAward", dataDict, curPlayer)
|
| | | return
|
| | |
|
| | | ##等级礼包
|
| | | def DR_LVAward(curPlayer, awardID):
|
| | | dataDict = {'PlayerID':curPlayer.GetPlayerID(), |
| | | 'PlayerName':curPlayer.GetPlayerName(), |
| | | 'AccID':curPlayer.GetAccID(),
|
| | | "AwardID":awardID
|
| | | }
|
| | | |
| | | SendEventPack("LVAward", dataDict, curPlayer)
|
| | | return
|
| | |
|
| | | ## GM执行命令操作
|
| | | # @param playerID: 玩家ID
|
| | | # @param playerName:玩家名字
|
| | |
| | | ("DWORD", "AddMaxAtk", 0),
|
| | | ),
|
| | |
|
| | | "LoginDayAward":(
|
| | | ("BYTE", "DayID", 1),
|
| | | ("dict", "Reward", 0),
|
| | | ),
|
| | |
|
| | | "OrderInfo":(
|
| | | ("char", "OrderInfo", 1),
|
| | | ("char", "AppID", 1),
|
| | |
| | | ("list", "AwardListDay1", 0),
|
| | | ("list", "AwardListDay2", 0),
|
| | | ("list", "AwardListDay3", 0),
|
| | | ),
|
| | |
|
| | | "LVAward":(
|
| | | ("BYTE", "AwardID", 1),
|
| | | ("WORD", "LV", 0),
|
| | | ("WORD", "LimitCnt", 0),
|
| | | ("dict", "Reward", 0),
|
| | | ("BYTE", "VIPLimit", 0),
|
| | | ("list", "VIPAward", 0),
|
| | | ),
|
| | |
|
| | | "TreasureSet":(
|
| | |
| | | ("BYTE", "DayNum", 0),
|
| | | ("list", "LoginAwardItemList", 0),
|
| | | ("list", "LoginAwardItemListEx", 0),
|
| | | ),
|
| | |
|
| | | "ActLoginAward":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("WORD", "AdvanceMinutes", 0),
|
| | | ("BYTE", "IsDayReset", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("list", "TemplateID", 0),
|
| | | ),
|
| | |
|
| | | "LoginAward":(
|
| | | ("BYTE", "TemplateID", 1),
|
| | | ("BYTE", "ActionType", 0),
|
| | | ("DWORD", "TotalTimes", 0),
|
| | | ("WORD", "SingleTimes", 0),
|
| | | ("char", "Reward", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastLogin":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("dict", "TemplateIDInfo", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastLoginAward":(
|
| | | ("BYTE", "TemplateID", 1),
|
| | | ("BYTE", "DayNum", 0),
|
| | | ("list", "LoginAwardItemList", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastWish":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ("dict", "TemplateIDInfo", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastWishBottle":(
|
| | | ("BYTE", "TemplateID", 1),
|
| | | ("BYTE", "WishBottleNum", 0),
|
| | | ("WORD", "NeedWishValue", 0),
|
| | | ("BYTE", "ChooseTimeMax", 0),
|
| | | ("dict", "ChoosePrizeItem", 0),
|
| | | ("list", "GoodItemIDList", 0),
|
| | | ("char", "WorldNotifyKey", 0),
|
| | | ),
|
| | |
|
| | | "ActFeastWishPool":(
|
| | | ("BYTE", "TemplateID", 1),
|
| | | ("list", "WishPoolItemWeightInfo", 0),
|
| | | ("list", "WishPoolClientItemShow", 0),
|
| | | ("list", "GoodItemIDList", 0),
|
| | | ("char", "WorldNotifyKey", 0),
|
| | | ),
|
| | |
|
| | | "NewAllPeopleParty":(
|
| | |
| | | def GetAddMinAtk(self): return self.attrTuple[3] # 增加最小攻击 DWORD
|
| | | def GetAddMaxAtk(self): return self.attrTuple[4] # 增加最大攻击 DWORD |
| | | |
| | | # 七天登录奖励表 |
| | | class IPY_LoginDayAward(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetDayID(self): return self.attrTuple[0] # 天数 BYTE
|
| | | def GetReward(self): return self.attrTuple[1] # 奖励 {"职业":[[物品ID,个数],...], ...} dict |
| | | |
| | | # 充值商品编号表 |
| | | class IPY_OrderInfo(): |
| | | |
| | |
| | | def GetAwardListDay1(self): return self.attrTuple[2] # 第1天奖励 [[物品ID,个数,装备定制ID], ...] list
|
| | | def GetAwardListDay2(self): return self.attrTuple[3] # 第2天奖励 [[物品ID,个数,装备定制ID], ...] list
|
| | | def GetAwardListDay3(self): return self.attrTuple[4] # 第3天奖励 [[物品ID,个数,装备定制ID], ...] list |
| | | |
| | | # 等级奖励表 |
| | | class IPY_LVAward(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetAwardID(self): return self.attrTuple[0] # 奖励ID BYTE
|
| | | def GetLV(self): return self.attrTuple[1] # 等级 WORD
|
| | | def GetLimitCnt(self): return self.attrTuple[2] # 全服限制数量 WORD
|
| | | def GetReward(self): return self.attrTuple[3] # 奖励 {"职业":[[物品ID,个数],...], ...} dict
|
| | | def GetVIPLimit(self): return self.attrTuple[4] # 需要VIP几 BYTE
|
| | | def GetVIPAward(self): return self.attrTuple[5] # vip奖励[[物品ID,个数],...] list |
| | | |
| | | # 寻宝设定表 |
| | | class IPY_TreasureSet(): |
| | |
| | | def GetLoginAwardItemList(self): return self.attrTuple[2] # 奖励列表[[物品ID,个数,是否拍品], ...] list
|
| | | def GetLoginAwardItemListEx(self): return self.attrTuple[3] # 扩展奖励列表[[物品ID,个数,是否拍品], ...] list |
| | | |
| | | # 登录奖励时间表 |
| | | class IPY_ActLoginAward(): |
| | | |
| | | 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 GetAdvanceMinutes(self): return self.attrTuple[3] # 前端提前X分钟展示活动 WORD
|
| | | def GetIsDayReset(self): return self.attrTuple[4] # 是否每天重置 BYTE
|
| | | def GetResetType(self): return self.attrTuple[5] # 重置类型,0-0点重置;1-5点重置 BYTE
|
| | | def GetLVLimit(self): return self.attrTuple[6] # 限制等级 WORD
|
| | | def GetTemplateID(self): return self.attrTuple[7] # 模板编号 list |
| | | |
| | | # 登录奖励模板表 |
| | | class IPY_LoginAward(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
|
| | | def GetActionType(self): return self.attrTuple[1] # 活动条目ID BYTE
|
| | | def GetTotalTimes(self): return self.attrTuple[2] # 可完成的总次数,0表示不限次数 DWORD
|
| | | def GetSingleTimes(self): return self.attrTuple[3] # 单次领奖需要的次数 WORD
|
| | | def GetReward(self): return self.attrTuple[4] # 奖励物品 char |
| | | |
| | | # 节日登录奖励时间表 |
| | | class IPY_ActFeastLogin(): |
| | | |
| | | 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 GetTemplateIDInfo(self): return self.attrTuple[4] # 模板信息 {(世界等级A,B):奖励模板编号, ...} dict |
| | | |
| | | # 节日登录奖励模板表 |
| | | class IPY_ActFeastLoginAward(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
|
| | | def GetDayNum(self): return self.attrTuple[1] # 第X天从1开始 BYTE
|
| | | def GetLoginAwardItemList(self): return self.attrTuple[2] # 奖励列表[[物品ID,个数,是否拍品], ...] list |
| | | |
| | | # 节日祝福时间表 |
| | | class IPY_ActFeastWish(): |
| | | |
| | | 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_ActFeastWishBottle(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
|
| | | def GetWishBottleNum(self): return self.attrTuple[1] # 祝福瓶编号 BYTE
|
| | | def GetNeedWishValue(self): return self.attrTuple[2] # 单次领奖所需祝福值 WORD
|
| | | def GetChooseTimeMax(self): return self.attrTuple[3] # 最大可领奖次数 BYTE
|
| | | def GetChoosePrizeItem(self): return self.attrTuple[4] # 选择奖励物品信息,选完为止 {记录索引:[物品ID,个数,是否拍品], ...} dict
|
| | | def GetGoodItemIDList(self): return self.attrTuple[5] # 需要广播的物品ID列表 [物品ID, ...] list
|
| | | def GetWorldNotifyKey(self): return self.attrTuple[6] # 全服广播key,参数(玩家名, 物品ID, 物品数据, 个数,) char |
| | | |
| | | # 节日祝福池模板表 |
| | | class IPY_ActFeastWishPool(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetTemplateID(self): return self.attrTuple[0] # 模板ID BYTE
|
| | | def GetWishPoolItemWeightInfo(self): return self.attrTuple[1] # 祝福池产出物品权重 [[权重, [物品ID,个数]], ..] list
|
| | | def GetWishPoolClientItemShow(self): return self.attrTuple[2] # 前端展示物品列表 [物品ID, ...] list
|
| | | def GetGoodItemIDList(self): return self.attrTuple[3] # 需要广播的物品ID列表 [物品ID, ...] list
|
| | | def GetWorldNotifyKey(self): return self.attrTuple[4] # 全服广播key,参数(玩家名, 物品ID, 物品数据, 个数,) char |
| | | |
| | | # 新仙界盛典-全民来嗨表 |
| | | class IPY_NewAllPeopleParty(): |
| | | |
| | |
| | | self.__LoadFileData("Chests", onlyCheck)
|
| | | self.__LoadFileData("ChestsAward", onlyCheck)
|
| | | self.__LoadFileData("VIPKillNPC", onlyCheck)
|
| | | self.__LoadFileData("LoginDayAward", onlyCheck)
|
| | | self.__LoadFileData("OrderInfo", onlyCheck)
|
| | | self.__LoadFileData("CTG", onlyCheck)
|
| | | self.__LoadFileData("CTGSelectItem", onlyCheck)
|
| | | self.__LoadFileData("FirstCharge", onlyCheck)
|
| | | self.__LoadFileData("LVAward", onlyCheck)
|
| | | self.__LoadFileData("TreasureSet", onlyCheck)
|
| | | self.__LoadFileData("TreasureHouse", onlyCheck)
|
| | | self.__LoadFileData("TreasureItemLib", onlyCheck)
|
| | |
| | | self.__LoadFileData("ActTaskTemp", onlyCheck)
|
| | | self.__LoadFileData("ActLoginNew", onlyCheck)
|
| | | self.__LoadFileData("ActLoginNewAward", onlyCheck)
|
| | | self.__LoadFileData("ActLoginAward", onlyCheck)
|
| | | self.__LoadFileData("LoginAward", onlyCheck)
|
| | | self.__LoadFileData("ActFeastLogin", onlyCheck)
|
| | | self.__LoadFileData("ActFeastLoginAward", onlyCheck)
|
| | | self.__LoadFileData("ActFeastWish", onlyCheck)
|
| | | self.__LoadFileData("ActFeastWishBottle", onlyCheck)
|
| | | self.__LoadFileData("ActFeastWishPool", onlyCheck)
|
| | | self.__LoadFileData("NewAllPeopleParty", onlyCheck)
|
| | | self.__LoadFileData("NewAllPeoplePartyAward", onlyCheck)
|
| | | self.__LoadFileData("ActLuckyTreasure", onlyCheck)
|
| | |
| | | self.CheckLoadData("VIPKillNPC") |
| | | return self.ipyVIPKillNPCCache[index]
|
| | | |
| | | def GetLoginDayAwardCount(self): |
| | | self.CheckLoadData("LoginDayAward") |
| | | return self.ipyLoginDayAwardLen
|
| | | def GetLoginDayAwardByIndex(self, index): |
| | | self.CheckLoadData("LoginDayAward") |
| | | return self.ipyLoginDayAwardCache[index]
|
| | | |
| | | def GetOrderInfoCount(self): |
| | | self.CheckLoadData("OrderInfo") |
| | | return self.ipyOrderInfoLen
|
| | |
| | | def GetFirstChargeByIndex(self, index): |
| | | self.CheckLoadData("FirstCharge") |
| | | return self.ipyFirstChargeCache[index]
|
| | | |
| | | def GetLVAwardCount(self): |
| | | self.CheckLoadData("LVAward") |
| | | return self.ipyLVAwardLen
|
| | | def GetLVAwardByIndex(self, index): |
| | | self.CheckLoadData("LVAward") |
| | | return self.ipyLVAwardCache[index]
|
| | | |
| | | def GetTreasureSetCount(self): |
| | | self.CheckLoadData("TreasureSet") |
| | |
| | | def GetActLoginNewAwardByIndex(self, index): |
| | | self.CheckLoadData("ActLoginNewAward") |
| | | return self.ipyActLoginNewAwardCache[index]
|
| | | |
| | | def GetActLoginAwardCount(self): |
| | | self.CheckLoadData("ActLoginAward") |
| | | return self.ipyActLoginAwardLen
|
| | | def GetActLoginAwardByIndex(self, index): |
| | | self.CheckLoadData("ActLoginAward") |
| | | return self.ipyActLoginAwardCache[index]
|
| | | |
| | | def GetLoginAwardCount(self): |
| | | self.CheckLoadData("LoginAward") |
| | | return self.ipyLoginAwardLen
|
| | | def GetLoginAwardByIndex(self, index): |
| | | self.CheckLoadData("LoginAward") |
| | | return self.ipyLoginAwardCache[index]
|
| | | |
| | | def GetActFeastLoginCount(self): |
| | | self.CheckLoadData("ActFeastLogin") |
| | | return self.ipyActFeastLoginLen
|
| | | def GetActFeastLoginByIndex(self, index): |
| | | self.CheckLoadData("ActFeastLogin") |
| | | return self.ipyActFeastLoginCache[index]
|
| | | |
| | | def GetActFeastLoginAwardCount(self): |
| | | self.CheckLoadData("ActFeastLoginAward") |
| | | return self.ipyActFeastLoginAwardLen
|
| | | def GetActFeastLoginAwardByIndex(self, index): |
| | | self.CheckLoadData("ActFeastLoginAward") |
| | | return self.ipyActFeastLoginAwardCache[index]
|
| | | |
| | | def GetActFeastWishCount(self): |
| | | self.CheckLoadData("ActFeastWish") |
| | | return self.ipyActFeastWishLen
|
| | | def GetActFeastWishByIndex(self, index): |
| | | self.CheckLoadData("ActFeastWish") |
| | | return self.ipyActFeastWishCache[index]
|
| | | |
| | | def GetActFeastWishBottleCount(self): |
| | | self.CheckLoadData("ActFeastWishBottle") |
| | | return self.ipyActFeastWishBottleLen
|
| | | def GetActFeastWishBottleByIndex(self, index): |
| | | self.CheckLoadData("ActFeastWishBottle") |
| | | return self.ipyActFeastWishBottleCache[index]
|
| | | |
| | | def GetActFeastWishPoolCount(self): |
| | | self.CheckLoadData("ActFeastWishPool") |
| | | return self.ipyActFeastWishPoolLen
|
| | | def GetActFeastWishPoolByIndex(self, index): |
| | | self.CheckLoadData("ActFeastWishPool") |
| | | return self.ipyActFeastWishPoolCache[index]
|
| | | |
| | | def GetNewAllPeoplePartyCount(self): |
| | | self.CheckLoadData("NewAllPeopleParty") |
| | |
| | | import ChPyNetSendPack
|
| | | import DataRecordPack
|
| | | import PlayerBillboard
|
| | | import PlayerLVAward
|
| | | import PlayerGoldGift
|
| | | import PlayerSignDay
|
| | | import PlayerPrestigeSys
|
| | | import PlayerFamily
|
| | | import PlayerLoginDayAward
|
| | | import PlayerGoldInvest
|
| | | import PlayerActivity
|
| | | import FBCommon
|
| | |
| | | import PlayerFreeGoods
|
| | | import GameFuncComm
|
| | | import PlayerFamilyTaofa
|
| | | import PlayerFeastLogin
|
| | | import PlayerFeastWish
|
| | | import PlayerActLogin
|
| | | import PlayerTreasure
|
| | | import IpyGameDataPY
|
| | | import EventReport
|
| | |
| | | #PKģʽ
|
| | | #SyncPKModel(curPlayer)
|
| | |
|
| | | # 通知等级奖励领取记录
|
| | | PlayerLVAward.Sync_LVAwardGetRecordInfo(curPlayer)
|
| | | |
| | | PlayerCoin.OnLogin(curPlayer)
|
| | | # 首充/天天首充/充值豪礼
|
| | | PlayerGoldGift.OnLogin(curPlayer)
|
| | |
| | | PlayerLianTi.OnPlayerLogin(curPlayer)
|
| | |
|
| | | PlayerTreasure.OnTreasureLogin(curPlayer)
|
| | | |
| | | # 通知累计登陆礼
|
| | | PlayerLoginDayAward.OnLoginNotifyLoginDayAward(curPlayer)
|
| | |
|
| | | # 副本进入时间
|
| | | FBCommon.FBOnLogin(curPlayer)
|
| | |
| | | PlayerActYunshi.OnPlayerLogin(curPlayer)
|
| | | # 登录活动
|
| | | PlayerActLoginNew.OnPlayerLogin(curPlayer)
|
| | | # 节日登录活动
|
| | | PlayerFeastLogin.OnPlayerLogin(curPlayer)
|
| | | # 节日祝福活动
|
| | | PlayerFeastWish.OnPlayerLogin(curPlayer)
|
| | | # 登录奖励活动
|
| | | PlayerActLogin.OnLogin(curPlayer)
|
| | | # 炼器活动
|
| | | PlayerActLianqi.OnPlayerLogin(curPlayer)
|
| | | # 天帝礼包活动
|
| | |
| | | # 每日免费直购礼包
|
| | | elif rewardType == ChConfig.Def_RewardType_DayFreeGoldGift:
|
| | | PlayerDailyGiftbag.OnGetDailyFreeGiftbag(curPlayer)
|
| | | # 玩家等级奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_LVAward:
|
| | | PlayerLVAward.GetPlayerLVAward(curPlayer, dataEx)
|
| | | # 首充礼包奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_FirstCharge:
|
| | | PlayerGoldGift.GetPlayerFirstCharge(curPlayer, dataEx, dataExStr)
|
| | |
| | | # 领取许愿池奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_WishingWell:
|
| | | PlayerWishingWell.DoGetWishingAward(curPlayer)
|
| | | # 领取登录奖励活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ActLoginAwardAct:
|
| | | PlayerActLogin.GetLoginAwardActionAward(curPlayer, dataEx, dataExStr)
|
| | | # 领取节日登录奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_FeastLogin:
|
| | | PlayerFeastLogin.GetFeastLoginAward(curPlayer, dataEx)
|
| | | # 领取登录活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ActLoginAwardNew:
|
| | | PlayerActLoginNew.OnGetActLoginAward(curPlayer, dataEx, dataExStr)
|
| | |
| | | import PlayerCoin
|
| | | import PlayerControl
|
| | | import PlayerFamily
|
| | | import PlayerLoginDayAward
|
| | | import NPCCommon
|
| | | import FunctionNPCCommon
|
| | | import PlayerGoldGift
|
| | |
| | |
|
| | | #OnDay时清除每日签到的信息
|
| | | PlayerSignDay.SignDayOnDay(curPlayer)
|
| | | # 累计登陆礼包登陆次数刷新
|
| | | PlayerLoginDayAward.NotePlayerLoginDayCnt(curPlayer)
|
| | |
|
| | | #------------------------------------------------------------------------------
|
| | |
|
| | |
| | | OperationActionName_FlashSale = "ActFlashSale" # 限时抢购活动
|
| | | OperationActionName_WishingWell = "ActWishingWell" # 许愿池活动
|
| | | OperationActionName_TotalRecharge = "ActTotalRecharge" # 累计充值活动
|
| | | OperationActionName_LoginAward = "ActLoginAward" # 登录奖励活动
|
| | | OperationActionName_CollectWords = "ActCollectWords" # 集字活动
|
| | | OperationActionName_LuckyTreasure = "ActLuckyTreasure" # 幸运鉴宝活动
|
| | | OperationActionName_GrowupBuy = "ActGrowupBuy" # 成长必买活动
|
| | | OperationActionName_FeastLogin = "ActFeastLogin" # 节日登录活动
|
| | | OperationActionName_FeastWish = "ActFeastWish" # 节日祝福活动
|
| | | OperationActionName_ManyDayRecharge = "ActManyDayRecharge" # 多日连充活动
|
| | | OperationActionName_SingleRecharge = "ActSingleRecharge" # 单笔累充活动
|
| | | OperationActionName_Turntable = "ActTurntable" # 转盘活动
|
| | |
| | |
|
| | | ##节日活动类型列表 - 该类型无视开服天,日期到了就开启
|
| | | #FeastOperationActionNameList = [OperationActionName_GrowupBuy,
|
| | | # OperationActionName_FeastLogin,
|
| | | # OperationActionName_FeastWish,
|
| | | # ]
|
| | | ##所有的运营活动列表,含节日活动
|
| | | #OperationActionNameList = [OperationActionName_ExpRate,
|
| | |
| | | # OperationActionName_DailyGiftbag, OperationActionName_GrowupBuy,
|
| | | # OperationActionName_Turntable,
|
| | | # OperationActionName_CollectWords,
|
| | | # OperationActionName_FeastLogin,
|
| | | # OperationActionName_FeastWish,
|
| | | # OperationActionName_ManyDayRecharge, OperationActionName_SingleRecharge,
|
| | | # OperationActionName_GodGift,
|
| | | # ]
|
| | |
| | | Def_UniversalGameRecType_Reward, # 通用奖励表(TopBar)14
|
| | | Def_UniversalGameRecType_ArenaBattleRecord, # 竞技场玩家挑战记录 15
|
| | | Def_UniversalGameRecType_CrossActInfo, # 跨服运营活动信息记录 16
|
| | | Def_UniversalGameRecType_FeastWish, #节日祝福大奖记录17
|
| | | Def_UniversalGameRecType_17,
|
| | | Def_UniversalGameRecType_ActWorldLVLimitInfo, # 运营活动世界等级限制开启信息 18
|
| | | Def_UniversalGameRecType_19,
|
| | | Def_UniversalGameRecType_20,
|