| | |
| | | ("DWORD", "NeedMoney", 0),
|
| | | ("DWORD", "WeekMissionMoneyMax", 0),
|
| | | ("BYTE", "BossFBCnt", 0),
|
| | | ("DWORD", "ZhenbaogeWeights", 0),
|
| | | ),
|
| | |
|
| | | "FamilyEmblem":(
|
| | | ("BYTE", "EmblemID", 1),
|
| | | ("BYTE", "UnlockFamilyLV", 0),
|
| | | ("DWORD", "ExpireMinutes", 0),
|
| | | ("DWORD", "CustomFamilyID", 0),
|
| | | ),
|
| | |
|
| | | "FamilyZhenbaogeCut":(
|
| | | ("BYTE", "CutNum", 1),
|
| | | ("DWORD", "CutWeight", 0),
|
| | | ("float", "MinRatio", 0),
|
| | | ("float", "RandRatio", 0),
|
| | | ),
|
| | |
|
| | | "FamilyZhenbaogeItem":(
|
| | | ("BYTE", "ItemGroupNum", 1),
|
| | | ("DWORD", "ItemWeight", 0),
|
| | | ("list", "ItemList", 0),
|
| | | ),
|
| | |
|
| | | "FamilyBossHurtAward":(
|
| | |
| | | ("WORD", "XiangongID", 0),
|
| | | ),
|
| | |
|
| | | "CrossActLianqi":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("char", "ActGroupName", 0),
|
| | | ("BYTE", "ZoneID", 0),
|
| | | ("list", "ServerIDRangeList", 0),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("char", "JoinStartTime", 0),
|
| | | ("char", "JoinEndTime", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("WORD", "PersonalTemplateID", 0),
|
| | | ),
|
| | |
|
| | | "ActLianqiBillTemp":(
|
| | | ("DWORD", "TemplateID", 1),
|
| | | ("BYTE", "Rank", 0),
|
| | | ("list", "AwardItemList", 0),
|
| | | ("DWORD", "NeedScore", 0),
|
| | | ("dict", "ScoreAwardEx", 0),
|
| | | ),
|
| | |
|
| | | "ActXianXiaMJ":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("list", "PlatformList", 0),
|
| | |
| | | ("list", "NotifyInfoLoop", 0),
|
| | | ("WORD", "LVLimit", 0),
|
| | | ("BYTE", "IsDayReset", 0),
|
| | | ("list", "ShopTypeList", 0),
|
| | | ("dict", "ShopTypeList", 0),
|
| | | ),
|
| | |
|
| | | "Store":(
|
| | |
| | | ("WORD", "LVLimit", 0),
|
| | | ),
|
| | |
|
| | | "ActYunshi":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("list", "PlatformList", 0),
|
| | | ("list", "ServerGroupIDList", 0),
|
| | | ("BYTE", "ActNum", 0),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ),
|
| | |
|
| | | "ActLunhuidian":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("list", "PlatformList", 0),
|
| | | ("list", "ServerGroupIDList", 0),
|
| | | ("BYTE", "ActNum", 0),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ),
|
| | |
|
| | | "ActBuyCountGift":(
|
| | | ("DWORD", "CfgID", 1),
|
| | | ("list", "PlatformList", 0),
|
| | |
| | | ("BYTE", "ActNum", 0),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("dict", "NotifyInfoStart", 0),
|
| | | ("dict", "NotifyInfoEnd", 0),
|
| | | ("list", "NotifyInfoLoop", 0),
|
| | | ("BYTE", "IsDayReset", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ),
|
| | |
| | | ("BYTE", "ActNum", 0),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("dict", "NotifyInfoStart", 0),
|
| | | ("dict", "NotifyInfoEnd", 0),
|
| | | ("list", "NotifyInfoLoop", 0),
|
| | | ("BYTE", "IsDayReset", 0),
|
| | | ("BYTE", "ResetType", 0),
|
| | | ),
|
| | |
| | | ("BYTE", "ActNum", 0),
|
| | | ("char", "StartDate", 0),
|
| | | ("char", "EndDate", 0),
|
| | | ("dict", "NotifyInfoStart", 0),
|
| | | ("dict", "NotifyInfoEnd", 0),
|
| | | ("list", "NotifyInfoLoop", 0),
|
| | | ),
|
| | |
|
| | | "ActLoginAward":(
|
| | |
| | | def GetEliteCnt(self): return self.attrTuple[3] # 精英数量 BYTE
|
| | | def GetNeedMoney(self): return self.attrTuple[4] # 升级需要资金 DWORD
|
| | | def GetWeekMissionMoneyMax(self): return self.attrTuple[5] # 每周任务最大可获得仙盟资金 DWORD
|
| | | def GetBossFBCnt(self): return self.attrTuple[6] # BOSS副本次数 BYTE |
| | | def GetBossFBCnt(self): return self.attrTuple[6] # BOSS副本次数 BYTE
|
| | | def GetZhenbaogeWeights(self): return self.attrTuple[7] # 珍宝阁总权重 DWORD |
| | | |
| | | # 仙盟徽章表 |
| | | class IPY_FamilyEmblem(): |
| | |
| | | |
| | | def GetEmblemID(self): return self.attrTuple[0] # 徽章ID BYTE
|
| | | def GetUnlockFamilyLV(self): return self.attrTuple[1] # 解锁仙盟等级,为0时代表其他方式解锁 BYTE
|
| | | def GetExpireMinutes(self): return self.attrTuple[2] # 有效时长,分钟 DWORD |
| | | def GetExpireMinutes(self): return self.attrTuple[2] # 有效时长,分钟 DWORD
|
| | | def GetCustomFamilyID(self): return self.attrTuple[3] # 定制仙盟ID DWORD |
| | | |
| | | # 仙盟珍宝阁砍价 |
| | | class IPY_FamilyZhenbaogeCut(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetCutNum(self): return self.attrTuple[0] # 砍价人次 BYTE
|
| | | def GetCutWeight(self): return self.attrTuple[1] # 砍价权重 DWORD
|
| | | def GetMinRatio(self): return self.attrTuple[2] # 保底比值 float
|
| | | def GetRandRatio(self): return self.attrTuple[3] # 随机比值 float |
| | | |
| | | # 仙盟珍宝阁物品 |
| | | class IPY_FamilyZhenbaogeItem(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetItemGroupNum(self): return self.attrTuple[0] # 物品组编号 BYTE
|
| | | def GetItemWeight(self): return self.attrTuple[1] # 随机权重 DWORD
|
| | | def GetItemList(self): return self.attrTuple[2] # 物品列表[[物品ID,个数,是否拍品], ...] list |
| | | |
| | | # 仙盟试炼伤血奖励表 |
| | | class IPY_FamilyBossHurtAward(): |
| | |
| | | def GetScoreAwardEx(self): return self.attrTuple[4] # 达标积分额外奖励 {积分:[[物品ID,个数,是否拍品], ...], ...} dict
|
| | | def GetXiangongID(self): return self.attrTuple[5] # 晋升仙宫ID WORD |
| | | |
| | | # 炼器活动跨服表 |
| | | class IPY_CrossActLianqi(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
|
| | | def GetActGroupName(self): return self.attrTuple[1] # 活动组名(同组活动的名字需相同) char
|
| | | def GetZoneID(self): return self.attrTuple[2] # 组内分组编号 BYTE
|
| | | def GetServerIDRangeList(self): return self.attrTuple[3] # 活动的账号服务器ID范围列表 [[serverIDA, serverIDB], ...] list
|
| | | def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
|
| | | def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
|
| | | def GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char
|
| | | def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char
|
| | | def GetLVLimit(self): return self.attrTuple[8] # 限制等级 WORD
|
| | | def GetPersonalTemplateID(self): return self.attrTuple[9] # 个人排行模板编号 WORD |
| | | |
| | | # 炼器榜单模版表 |
| | | class IPY_ActLianqiBillTemp(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetTemplateID(self): return self.attrTuple[0] # 模板编号 DWORD
|
| | | def GetRank(self): return self.attrTuple[1] # 名次 BYTE
|
| | | def GetAwardItemList(self): return self.attrTuple[2] # 奖励物品列表[[物品ID,个数,是否拍品], ...] list
|
| | | def GetNeedScore(self): return self.attrTuple[3] # 上榜所需积分 DWORD
|
| | | def GetScoreAwardEx(self): return self.attrTuple[4] # 达标积分额外奖励 {积分:[[物品ID,个数,是否拍品], ...], ...} dict |
| | | |
| | | # 仙匣秘境活动时间表 |
| | | class IPY_ActXianXiaMJ(): |
| | | |
| | |
| | | def GetNotifyInfoLoop(self): return self.attrTuple[11] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
|
| | | def GetLVLimit(self): return self.attrTuple[12] # 限制等级 WORD
|
| | | def GetIsDayReset(self): return self.attrTuple[13] # 是否每天重置 BYTE
|
| | | def GetShopTypeList(self): return self.attrTuple[14] # 商店类型列表 list |
| | | def GetShopTypeList(self): return self.attrTuple[14] # 商店类型列表 dict |
| | | |
| | | # 商城表 |
| | | class IPY_Store(): |
| | |
| | | def GetNotifyInfoEnd(self): return self.attrTuple[10] # 全服提示信息 - 相对结束时间 dict
|
| | | def GetLVLimit(self): return self.attrTuple[11] # 限制等级 WORD |
| | | |
| | | # 运势活动时间表 |
| | | class IPY_ActYunshi(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
|
| | | def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list
|
| | | def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list
|
| | | def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
|
| | | def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
|
| | | def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
|
| | | def GetResetType(self): return self.attrTuple[6] # 重置类型,0-0点重置;1-5点重置 BYTE |
| | | |
| | | # 轮回殿活动时间表 |
| | | class IPY_ActLunhuidian(): |
| | | |
| | | def __init__(self): |
| | | self.attrTuple = None |
| | | return |
| | | |
| | | def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD
|
| | | def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list
|
| | | def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list
|
| | | def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
|
| | | def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
|
| | | def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
|
| | | def GetResetType(self): return self.attrTuple[6] # 重置类型,0-0点重置;1-5点重置 BYTE |
| | | |
| | | # 购买次数礼包活动时间表 |
| | | class IPY_ActBuyCountGift(): |
| | | |
| | |
| | | def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
|
| | | def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
|
| | | def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
|
| | | def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
|
| | | def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
|
| | | def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
|
| | | def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE
|
| | | def GetResetType(self): return self.attrTuple[10] # 重置类型,0-0点重置;1-5点重置 BYTE |
| | | def GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE
|
| | | def GetResetType(self): return self.attrTuple[7] # 重置类型,0-0点重置;1-5点重置 BYTE |
| | | |
| | | # 任务活动时间表 |
| | | class IPY_ActTask(): |
| | |
| | | def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
|
| | | def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
|
| | | def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
|
| | | def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
|
| | | def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
|
| | | def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list
|
| | | def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE
|
| | | def GetResetType(self): return self.attrTuple[10] # 重置类型,0-0点重置;1-5点重置 BYTE |
| | | def GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE
|
| | | def GetResetType(self): return self.attrTuple[7] # 重置类型,0-0点重置;1-5点重置 BYTE |
| | | |
| | | # 登录活动奖励时间表新 |
| | | class IPY_ActLoginNew(): |
| | |
| | | def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list
|
| | | def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE
|
| | | def GetStartDate(self): return self.attrTuple[4] # 开启日期 char
|
| | | def GetEndDate(self): return self.attrTuple[5] # 结束日期 char
|
| | | def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict
|
| | | def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict
|
| | | def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list |
| | | def GetEndDate(self): return self.attrTuple[5] # 结束日期 char |
| | | |
| | | # 登录奖励时间表 |
| | | class IPY_ActLoginAward(): |
| | |
| | | self.__LoadFileData("WorldLV", onlyCheck)
|
| | | self.__LoadFileData("Family", onlyCheck)
|
| | | self.__LoadFileData("FamilyEmblem", onlyCheck)
|
| | | self.__LoadFileData("FamilyZhenbaogeCut", onlyCheck)
|
| | | self.__LoadFileData("FamilyZhenbaogeItem", onlyCheck)
|
| | | self.__LoadFileData("FamilyBossHurtAward", onlyCheck)
|
| | | self.__LoadFileData("FamilyZhenfa", onlyCheck)
|
| | | self.__LoadFileData("MarketQuery", onlyCheck)
|
| | |
| | | self.__LoadFileData("ActGubao", onlyCheck)
|
| | | self.__LoadFileData("CrossActGubao", onlyCheck)
|
| | | self.__LoadFileData("ActGubaoBillTemp", onlyCheck)
|
| | | self.__LoadFileData("CrossActLianqi", onlyCheck)
|
| | | self.__LoadFileData("ActLianqiBillTemp", onlyCheck)
|
| | | self.__LoadFileData("ActXianXiaMJ", onlyCheck)
|
| | | self.__LoadFileData("CrossActXianXiaMJ", onlyCheck)
|
| | | self.__LoadFileData("ActXianXiaMJBillTemp", onlyCheck)
|
| | |
| | | self.__LoadFileData("CrossDemonLandZoneMap", onlyCheck)
|
| | | self.__LoadFileData("CrossFamilyFlagwarZoneMap", onlyCheck)
|
| | | self.__LoadFileData("ActWeekParty", onlyCheck)
|
| | | self.__LoadFileData("ActYunshi", onlyCheck)
|
| | | self.__LoadFileData("ActLunhuidian", onlyCheck)
|
| | | self.__LoadFileData("ActBuyCountGift", onlyCheck)
|
| | | self.__LoadFileData("ActTask", onlyCheck)
|
| | | self.__LoadFileData("ActLoginNew", onlyCheck)
|
| | |
| | | attrValue = value
|
| | | elif fieldType == "dict":
|
| | | attrValue = self.__StrToDict(value)
|
| | | if type(attrValue) != dict:
|
| | | raise
|
| | | elif fieldType == "list":
|
| | | attrValue = self.__StrToList(value)
|
| | | if type(attrValue) not in [list, tuple]:
|
| | | raise
|
| | | elif fieldType == "eval":
|
| | | attrValue = self.__StrToEval(value)
|
| | | elif fieldType == "float":
|
| | |
| | | def GetFamilyEmblemByIndex(self, index): |
| | | self.CheckLoadData("FamilyEmblem") |
| | | return self.ipyFamilyEmblemCache[index]
|
| | | |
| | | def GetFamilyZhenbaogeCutCount(self): |
| | | self.CheckLoadData("FamilyZhenbaogeCut") |
| | | return self.ipyFamilyZhenbaogeCutLen
|
| | | def GetFamilyZhenbaogeCutByIndex(self, index): |
| | | self.CheckLoadData("FamilyZhenbaogeCut") |
| | | return self.ipyFamilyZhenbaogeCutCache[index]
|
| | | |
| | | def GetFamilyZhenbaogeItemCount(self): |
| | | self.CheckLoadData("FamilyZhenbaogeItem") |
| | | return self.ipyFamilyZhenbaogeItemLen
|
| | | def GetFamilyZhenbaogeItemByIndex(self, index): |
| | | self.CheckLoadData("FamilyZhenbaogeItem") |
| | | return self.ipyFamilyZhenbaogeItemCache[index]
|
| | | |
| | | def GetFamilyBossHurtAwardCount(self): |
| | | self.CheckLoadData("FamilyBossHurtAward") |
| | |
| | | self.CheckLoadData("ActGubaoBillTemp") |
| | | return self.ipyActGubaoBillTempCache[index]
|
| | | |
| | | def GetCrossActLianqiCount(self): |
| | | self.CheckLoadData("CrossActLianqi") |
| | | return self.ipyCrossActLianqiLen
|
| | | def GetCrossActLianqiByIndex(self, index): |
| | | self.CheckLoadData("CrossActLianqi") |
| | | return self.ipyCrossActLianqiCache[index]
|
| | | |
| | | def GetActLianqiBillTempCount(self): |
| | | self.CheckLoadData("ActLianqiBillTemp") |
| | | return self.ipyActLianqiBillTempLen
|
| | | def GetActLianqiBillTempByIndex(self, index): |
| | | self.CheckLoadData("ActLianqiBillTemp") |
| | | return self.ipyActLianqiBillTempCache[index]
|
| | | |
| | | def GetActXianXiaMJCount(self): |
| | | self.CheckLoadData("ActXianXiaMJ") |
| | | return self.ipyActXianXiaMJLen
|
| | |
| | | self.CheckLoadData("ActWeekParty") |
| | | return self.ipyActWeekPartyCache[index]
|
| | | |
| | | def GetActYunshiCount(self): |
| | | self.CheckLoadData("ActYunshi") |
| | | return self.ipyActYunshiLen
|
| | | def GetActYunshiByIndex(self, index): |
| | | self.CheckLoadData("ActYunshi") |
| | | return self.ipyActYunshiCache[index]
|
| | | |
| | | def GetActLunhuidianCount(self): |
| | | self.CheckLoadData("ActLunhuidian") |
| | | return self.ipyActLunhuidianLen
|
| | | def GetActLunhuidianByIndex(self, index): |
| | | self.CheckLoadData("ActLunhuidian") |
| | | return self.ipyActLunhuidianCache[index]
|
| | | |
| | | def GetActBuyCountGiftCount(self): |
| | | self.CheckLoadData("ActBuyCountGift") |
| | | return self.ipyActBuyCountGiftLen
|