From 388823edfe6308cba6f76ca6dc4f20022c5cb2be Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 30 六月 2025 19:03:50 +0800 Subject: [PATCH] 10431 【英文】看广告获得限时代金券 --- ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | 4439 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 3,008 insertions(+), 1,431 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py index cf44f8f..79c7e39 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py @@ -21,6 +21,7 @@ import hashlib import os +import gc '''表结构定义字典 { @@ -46,6 +47,16 @@ ("list", "LimitServerGroupIDList", 0), ), + "PlayerFace":( + ("DWORD", "FaceID", 1), + ("BYTE", "UnlockDefault", 0), + ), + + "PlayerFacePic":( + ("DWORD", "FacePicID", 1), + ("BYTE", "UnlockDefault", 0), + ), + "WorldLV":( ("WORD", "WorldLV", 1), ("DWORD", "OpenServerSecond", 0), @@ -59,6 +70,40 @@ ("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":( + ("BYTE", "AwardType", 1), + ("BYTE", "RecordIndex", 1), + ("DWORD", "NeedHurtTotal", 0), + ("list", "AwardItemList", 0), + ), + + "FamilyZhenfa":( + ("BYTE", "ZhenfaType", 1), + ("WORD", "ZhenfaLV", 1), + ("DWORD", "LVUpNeedExp", 0), ), "MarketQuery":( @@ -96,6 +141,13 @@ ("list", "ItemCountWeightList", 0), ("list", "AuctionItemWeightList", 0), ("list", "RandMailKeyList", 0), + ), + + "CrossDailyAction":( + ("DWORD", "DailyID", 1), + ("dict", "OpenTimeDict", 0), + ("DWORD", "Duration", 0), + ("dict", "NotifyInfo", 0), ), "DailyAction":( @@ -184,6 +236,17 @@ ("list", "DayFreeHelpCount", 0), ), + "FuncTeamSet":( + ("DWORD", "FuncMapID", 1), + ("BYTE", "NeedName", 0), + ("BYTE", "MemberMax", 0), + ("BYTE", "ApplyMax", 0), + ("BYTE", "ReqApplyMax", 0), + ("BYTE", "SortType", 0), + ("BYTE", "SortReverse", 0), + ("BYTE", "OPLimitInAct", 0), + ), + "ChinMap":( ("DWORD", "MapID", 1), ("char", "MapName", 0), @@ -207,6 +270,13 @@ "BOSSFirstKill":( ("DWORD", "NPCID", 1), ("list", "ServerFirstKillPlayerAward", 0), + ), + + "OSCBillRankAward":( + ("BYTE", "OSCBillType", 1), + ("BYTE", "RankA", 0), + ("BYTE", "RankB", 0), + ("dict", "RankAward", 0), ), "QuestionBank":( @@ -278,6 +348,16 @@ ("DWORD", "LimitLV", 0), ("DWORD", "LimitMagicWeapon", 0), ("WORD", "LimiRealmLV", 0), + ("BYTE", "LimitVIPLV", 0), + ), + + "ChinItem":( + ("DWORD", "ItemID", 1), + ("BYTE", "ItemType", 0), + ("DWORD", "Effect1", 0), + ("DWORD", "EffectValueA1", 0), + ("DWORD", "EffectValueB1", 0), + ("DWORD", "EffectValueC1", 0), ), "ChinNPC":( @@ -383,6 +463,29 @@ ("BYTE", "IsDayReset", 0), ), + "ActBuyOne":( + ("DWORD", "CfgID", 1), + ("list", "PlatformList", 0), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("dict", "NotifyInfoStart", 0), + ("dict", "NotifyInfoEnd", 0), + ("list", "NotifyInfoLoop", 0), + ("BYTE", "IsDayReset", 0), + ), + + "ActFamilyCTGAssist":( + ("DWORD", "CfgID", 1), + ("list", "PlatformList", 0), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("BYTE", "IsDayReset", 0), + ), + "ActCollectWords":( ("DWORD", "CfgID", 1), ("list", "PlatformList", 0), @@ -408,7 +511,223 @@ ("BYTE", "ResetType", 0), ), + "ActBossTrial":( + ("DWORD", "CfgID", 1), + ("list", "PlatformList", 0), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("char", "JoinStartTime", 0), + ("char", "JoinEndTime", 0), + ("dict", "NotifyInfoStart", 0), + ("dict", "NotifyInfoEnd", 0), + ("list", "NotifyInfoLoop", 0), + ("BYTE", "IsDayReset", 0), + ("BYTE", "ResetType", 0), + ("list", "TemplateIDList", 0), + ("list", "FamilyTemplateIDList", 0), + ), + + "ActBossTrialTemplate":( + ("DWORD", "TemplateID", 1), + ("BYTE", "Rank", 0), + ("list", "AwardItemList", 0), + ("list", "MemAwardItemList", 0), + ("DWORD", "NeedScore", 0), + ("dict", "ScoreAwardEx", 0), + ("WORD", "XiangongID", 0), + ), + + "CrossActBossTrial":( + ("DWORD", "CfgID", 1), + ("char", "ActGroupName", 0), + ("BYTE", "ZoneID", 0), + ("list", "ServerIDRangeList", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("char", "JoinStartTime", 0), + ("char", "JoinEndTime", 0), + ("dict", "NotifyInfoStart", 0), + ("dict", "NotifyInfoEnd", 0), + ("list", "NotifyInfoLoop", 0), + ("BYTE", "IsDayReset", 0), + ("BYTE", "ResetType", 0), + ("WORD", "PersonalTemplateID", 0), + ("WORD", "FamilyTemplateID", 0), + ), + + "ActHorsePetTrain":( + ("DWORD", "CfgID", 1), + ("list", "PlatformList", 0), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("char", "JoinStartTime", 0), + ("char", "JoinEndTime", 0), + ("WORD", "PersonalTemplateID", 0), + ), + + "CrossActHorsePetTrain":( + ("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", "PersonalTemplateID", 0), + ), + + "ActHorsePetTrainBillTemp":( + ("DWORD", "TemplateID", 1), + ("BYTE", "Rank", 0), + ("list", "AwardItemList", 0), + ("DWORD", "NeedScore", 0), + ("dict", "ScoreAwardEx", 0), + ("WORD", "XiangongID", 0), + ), + + "ActGubao":( + ("DWORD", "CfgID", 1), + ("list", "PlatformList", 0), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("char", "JoinStartTime", 0), + ("char", "JoinEndTime", 0), + ("WORD", "PersonalTemplateID", 0), + ), + + "CrossActGubao":( + ("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", "PersonalTemplateID", 0), + ), + + "ActGubaoBillTemp":( + ("DWORD", "TemplateID", 1), + ("BYTE", "Rank", 0), + ("list", "AwardItemList", 0), + ("DWORD", "NeedScore", 0), + ("dict", "ScoreAwardEx", 0), + ("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), + ), + + "ActTimeFlow":( + ("DWORD", "FlowID", 1), + ("BYTE", "StartDay", 0), + ("BYTE", "StartHour", 0), + ("BYTE", "StartMinute", 0), + ("BYTE", "EndDay", 0), + ("BYTE", "EndHour", 0), + ("BYTE", "EndMinute", 0), + ("WORD", "StateValue", 0), + ), + + "ActBillboardAwardTemp":( + ("DWORD", "TemplateID", 1), + ("BYTE", "Rank", 0), + ("DWORD", "NeedValue", 0), + ("dict", "ValueAwardEx", 0), + ("list", "AwardItemList", 0), + ("list", "LeaderAwardItemList", 0), + ("list", "EliteAwardItemList", 0), + ), + + "ActGuess":( + ("DWORD", "TemplateID", 1), + ("DWORD", "AwardID", 0), + ("list", "RightRankList", 0), + ("list", "AwardItemList", 0), + ), + + "CrossActFamilyGCZ":( + ("DWORD", "CfgID", 1), + ("char", "ActGroupName", 0), + ("BYTE", "ZoneID", 0), + ("list", "ServerIDRangeList", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("BYTE", "JoinFamilyCnt", 0), + ("WORD", "ActFlowID", 0), + ("WORD", "GuessTemplateID", 0), + ("WORD", "PersonalTemplateID", 0), + ("WORD", "FamilyTemplateID", 0), + ), + + "CrossActFamilyGCZCampLV":( + ("DWORD", "CampLV", 1), + ("DWORD", "LVUPNeedExp", 0), + ("DWORD", "AddHPPer", 0), + ), + "ActXianXiaMJ":( + ("DWORD", "CfgID", 1), + ("list", "PlatformList", 0), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("char", "JoinStartTime", 0), + ("char", "JoinEndTime", 0), + ("BYTE", "IsDayReset", 0), + ("WORD", "PersonalTemplateID", 0), + ), + + "CrossActXianXiaMJ":( + ("DWORD", "CfgID", 1), + ("char", "ActGroupName", 0), + ("BYTE", "ZoneID", 0), + ("list", "ServerIDRangeList", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("char", "JoinStartTime", 0), + ("char", "JoinEndTime", 0), + ("BYTE", "IsDayReset", 0), + ("WORD", "PersonalTemplateID", 0), + ), + + "ActXianXiaMJBillTemp":( + ("DWORD", "TemplateID", 1), + ("BYTE", "Rank", 0), + ("list", "AwardItemList", 0), + ("DWORD", "NeedScore", 0), + ("dict", "ScoreAwardEx", 0), + ("WORD", "XiangongID", 0), + ), + + "ActGodGift":( ("DWORD", "CfgID", 1), ("list", "PlatformList", 0), ("list", "ServerGroupIDList", 0), @@ -418,7 +737,7 @@ ("dict", "NotifyInfoStart", 0), ("dict", "NotifyInfoEnd", 0), ("list", "NotifyInfoLoop", 0), - ("BYTE", "ResetType", 0), + ("BYTE", "IsDayReset", 0), ), "ActHorsePetFeast":( @@ -497,7 +816,7 @@ ("list", "NotifyInfoLoop", 0), ("WORD", "LVLimit", 0), ("BYTE", "IsDayReset", 0), - ("list", "ShopTypeList", 0), + ("dict", "ShopTypeList", 0), ), "Store":( @@ -613,6 +932,12 @@ ("list", "ServerGroupIDList", 0), ), + "CrossZoneBattlefield":( + ("char", "CrossZoneName", 1), + ("BYTE", "ZoneID", 1), + ("list", "ServerGroupIDList", 0), + ), + "CrossZonePK":( ("char", "CrossZoneName", 1), ("BYTE", "ZoneID", 1), @@ -620,10 +945,36 @@ ("list", "ServerGroupIDList", 0), ), + "ChampionshipTime":( + ("DWORD", "ID", 1), + ("BYTE", "StartDay", 0), + ("BYTE", "StartHour", 0), + ("BYTE", "StartMinute", 0), + ("BYTE", "EndDay", 0), + ("BYTE", "EndHour", 0), + ("BYTE", "EndMinute", 0), + ("WORD", "StateValue", 0), + ("dict", "NotifyInfo", 0), + ), + + "ChampionshipRank":( + ("BYTE", "Rank", 1), + ("list", "RankAwardItemList", 0), + ("WORD", "MainOfficialID", 0), + ("WORD", "XiangongID", 0), + ), + + "ChampionshipOfficial":( + ("WORD", "OfficialID", 1), + ("list", "JuniorOfficialIDList", 0), + ("list", "DailyAwardItemList", 0), + ("BYTE", "CanBeReplace", 0), + ), + "CrossRealmPKSeason":( ("char", "CrossZoneName", 1), ("BYTE", "ZoneID", 1), - ("BYTE", "SeasonID", 0), + ("WORD", "SeasonID", 0), ("char", "StartDate", 0), ("char", "EndDate", 0), ("char", "EndTime", 0), @@ -643,6 +994,20 @@ ("BYTE", "CopyMapID", 1), ), + "CrossDemonLandZoneMap":( + ("BYTE", "ZoneID", 0), + ("DWORD", "MapID", 1), + ("DWORD", "DataMapID", 1), + ("BYTE", "CopyMapID", 1), + ), + + "CrossFamilyFlagwarZoneMap":( + ("BYTE", "ZoneID", 0), + ("DWORD", "MapID", 1), + ("DWORD", "DataMapID", 1), + ("BYTE", "CopyMapID", 1), + ), + "ActWeekParty":( ("DWORD", "CfgID", 1), ("char", "ActMark", 0), @@ -656,6 +1021,57 @@ ("dict", "NotifyInfoStart", 0), ("dict", "NotifyInfoEnd", 0), ("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), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("BYTE", "IsDayReset", 0), + ("BYTE", "ResetType", 0), + ), + + "ActTask":( + ("DWORD", "CfgID", 1), + ("list", "PlatformList", 0), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("BYTE", "IsDayReset", 0), + ("BYTE", "ResetType", 0), + ), + + "ActLoginNew":( + ("DWORD", "CfgID", 1), + ("list", "PlatformList", 0), + ("list", "ServerGroupIDList", 0), + ("BYTE", "ActNum", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), ), "ActLoginAward":( @@ -710,8 +1126,8 @@ "LoveGift":( ("BYTE", "GiftNum", 1), - ("DWORD", "AddCharmSelf", 0), - ("DWORD", "AddCharmTag", 0), + ("float", "AddCharmSelf", 0), + ("float", "AddCharmTag", 0), ("DWORD", "AddIntimacy", 0), ("char", "WorldNotifyKey", 0), ), @@ -742,9 +1158,52 @@ ("WORD", "LVLimit", 0), ), + "CrossActLuckyCloudBuy":( + ("DWORD", "CfgID", 1), + ("char", "ActGroupName", 0), + ("BYTE", "ZoneID", 0), + ("list", "ServerIDRangeList", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("list", "StartTimeList", 0), + ("list", "EndTimeList", 0), + ("list", "RoundMaxList", 0), + ("WORD", "LVLimit", 0), + ("list", "TemplateIDList", 0), + ), + + "CrossActLuckyCloudBuyTemplate":( + ("DWORD", "TemplateID", 1), + ("list", "BaseAwardInfo", 0), + ("list", "RandAwardWeightInfo", 0), + ("list", "SuperItemWeightInfo", 0), + ), + + "CrossActAllRecharge":( + ("DWORD", "CfgID", 1), + ("char", "ActGroupName", 0), + ("BYTE", "ZoneID", 0), + ("list", "ServerIDRangeList", 0), + ("char", "StartDate", 0), + ("char", "EndDate", 0), + ("dict", "NotifyInfoStart", 0), + ("dict", "NotifyInfoEnd", 0), + ("list", "NotifyInfoLoop", 0), + ("list", "TemplateIDList", 0), + ), + + "CrossActAllRechargeTemplate":( + ("DWORD", "TemplateID", 1), + ("DWORD", "CTGNeed", 0), + ("WORD", "NeedPlayerCount", 0), + ("BYTE", "AwardIndex", 0), + ("list", "AwardItemList", 0), + ), + "CrossActCTGBillboard":( ("DWORD", "CfgID", 1), ("char", "ActGroupName", 0), + ("BYTE", "ZoneID", 0), ("list", "ServerIDRangeList", 0), ("char", "StartDate", 0), ("char", "EndDate", 0), @@ -773,6 +1232,18 @@ ("BYTE", "UnSuitRate", 0), ), + "MineAreaItem":( + ("BYTE", "MineID", 1), + ("WORD", "LimitLV", 0), + ("DWORD", "ItemID", 0), + ("BYTE", "ItemLV", 0), + ("DWORD", "ItemCount", 0), + ("float", "ItemWeight", 0), + ("DWORD", "RefreshWeightSys", 0), + ("DWORD", "RefreshWeight", 0), + ("DWORD", "RefreshWeightSuper", 0), + ), + "FamilyWarRankAward":( ("WORD", "WarWorldLV", 1), ("BYTE", "WarRank", 0), @@ -782,6 +1253,26 @@ "AssistThanksGift":( ("DWORD", "GiftID", 1), ("BYTE", "AssistAwardCount", 0), + ), + + "Worship":( + ("BYTE", "WorshipType", 1), + ("DWORD", "WorshipValue", 1), + ("BYTE", "WorshipDays", 0), + ("BYTE", "MoneyType", 0), + ("list", "MoneyRange", 0), + ), + + "Xiangong":( + ("WORD", "XiangongID", 1), + ("BYTE", "ShowDays", 0), + ("BYTE", "MoneyType", 0), + ("DWORD", "MoneyValue", 0), + ("DWORD", "TitleID", 0), + ("list", "AwardItemList", 0), + ("char", "MailKey", 0), + ("BYTE", "WorshipType", 0), + ("DWORD", "WorshipValue", 0), ), "FairyDomain":( @@ -796,1588 +1287,1854 @@ class IPY_FuncConfig(): def __init__(self): - self.Key = "" - self.Numerical1 = "" - self.Numerical2 = "" - self.Numerical3 = "" - self.Numerical4 = "" - self.Numerical5 = "" + self.attrTuple = None return - def GetKey(self): return self.Key # 标识 - def GetNumerical1(self): return self.Numerical1 # 数据1 - def GetNumerical2(self): return self.Numerical2 # 数据2 - def GetNumerical3(self): return self.Numerical3 # 数据3 - def GetNumerical4(self): return self.Numerical4 # 数据4 - def GetNumerical5(self): return self.Numerical5 # 数据5 + def GetKey(self): return self.attrTuple[0] # 标识 char + def GetNumerical1(self): return self.attrTuple[1] # 数据1 char + def GetNumerical2(self): return self.attrTuple[2] # 数据2 char + def GetNumerical3(self): return self.attrTuple[3] # 数据3 char + def GetNumerical4(self): return self.attrTuple[4] # 数据4 char + def GetNumerical5(self): return self.attrTuple[5] # 数据5 char # 创角限制服务器配置表 class IPY_CreateRoleLimitServer(): def __init__(self): - self.LimitServerGroupIDRangeList = [] - self.LimitServerGroupIDList = [] + self.attrTuple = None return - def GetLimitServerGroupIDRangeList(self): return self.LimitServerGroupIDRangeList # 限制创角的服务器组ID范围列表 - def GetLimitServerGroupIDList(self): return self.LimitServerGroupIDList # 限制创角的服务器组ID列表 + def GetLimitServerGroupIDRangeList(self): return self.attrTuple[0] # 限制创角的服务器组ID范围列表 list + def GetLimitServerGroupIDList(self): return self.attrTuple[1] # 限制创角的服务器组ID列表 list + +# 头像表 +class IPY_PlayerFace(): + + def __init__(self): + self.attrTuple = None + return + + def GetFaceID(self): return self.attrTuple[0] # 头像ID DWORD + def GetUnlockDefault(self): return self.attrTuple[1] # 是否默认激活 BYTE + +# 头像框表 +class IPY_PlayerFacePic(): + + def __init__(self): + self.attrTuple = None + return + + def GetFacePicID(self): return self.attrTuple[0] # 头像框ID DWORD + def GetUnlockDefault(self): return self.attrTuple[1] # 是否默认激活 BYTE # 世界等级表格 class IPY_WorldLV(): def __init__(self): - self.WorldLV = 0 - self.OpenServerSecond = 0 + self.attrTuple = None return - def GetWorldLV(self): return self.WorldLV # 世界等级 - def GetOpenServerSecond(self): return self.OpenServerSecond # 开服时间秒 + def GetWorldLV(self): return self.attrTuple[0] # 世界等级 WORD + def GetOpenServerSecond(self): return self.attrTuple[1] # 开服时间秒 DWORD # 仙盟表格 class IPY_Family(): def __init__(self): - self.FamilyLV = 0 - self.MemberCnt = 0 - self.DeputyLeaderCnt = 0 - self.EliteCnt = 0 - self.NeedMoney = 0 - self.WeekMissionMoneyMax = 0 - self.BossFBCnt = 0 + self.attrTuple = None return - def GetFamilyLV(self): return self.FamilyLV # 仙盟等级 - def GetMemberCnt(self): return self.MemberCnt # 成员数量 - def GetDeputyLeaderCnt(self): return self.DeputyLeaderCnt # 副盟主数量 - def GetEliteCnt(self): return self.EliteCnt # 精英数量 - def GetNeedMoney(self): return self.NeedMoney # 升级需要资金 - def GetWeekMissionMoneyMax(self): return self.WeekMissionMoneyMax # 每周任务最大可获得仙盟资金 - def GetBossFBCnt(self): return self.BossFBCnt # BOSS副本次数 + def GetFamilyLV(self): return self.attrTuple[0] # 仙盟等级 BYTE + def GetMemberCnt(self): return self.attrTuple[1] # 成员数量 WORD + def GetDeputyLeaderCnt(self): return self.attrTuple[2] # 副盟主数量 BYTE + 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 GetZhenbaogeWeights(self): return self.attrTuple[7] # 珍宝阁总权重 DWORD + +# 仙盟徽章表 +class IPY_FamilyEmblem(): + + def __init__(self): + self.attrTuple = None + return + + 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 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 __init__(self): + self.attrTuple = None + return + + def GetAwardType(self): return self.attrTuple[0] # 奖励类型 1-个人;2-仙盟 BYTE + def GetRecordIndex(self): return self.attrTuple[1] # 奖励记录索引,同奖励类型时记录索引不可重复 BYTE + def GetNeedHurtTotal(self): return self.attrTuple[2] # 所需总伤血 DWORD + def GetAwardItemList(self): return self.attrTuple[3] # 奖励物品列表[[物品ID,个数,是否拍品], ...] list + +# 仙盟阵法表 +class IPY_FamilyZhenfa(): + + def __init__(self): + self.attrTuple = None + return + + def GetZhenfaType(self): return self.attrTuple[0] # 阵法类型 BYTE + def GetZhenfaLV(self): return self.attrTuple[1] # 阵法等级 WORD + def GetLVUpNeedExp(self): return self.attrTuple[2] # 升下一级所需经验 DWORD # 集市查询表 class IPY_MarketQuery(): def __init__(self): - self.QueryType = 0 - self.LimitInfo = {} + self.attrTuple = None return - def GetQueryType(self): return self.QueryType # 查询类型 - def GetLimitInfo(self): return self.LimitInfo # 限制条件 + def GetQueryType(self): return self.attrTuple[0] # 查询类型 WORD + def GetLimitInfo(self): return self.attrTuple[1] # 限制条件 dict # 拍卖物品表 class IPY_AuctionItem(): def __init__(self): - self.AuctionItemID = 0 - self.NoticeSaleMinutes = 0 - self.FamilySaleMinutes = 0 - self.WorldSaleMinutes = 0 - self.BasePrice = 0 - self.BuyoutPrice = 0 - self.BiddingAdd = 0 - self.NeedWorldNotify = 0 - self.Sortpriority = 0 + self.attrTuple = None return - def GetAuctionItemID(self): return self.AuctionItemID - def GetNoticeSaleMinutes(self): return self.NoticeSaleMinutes # 预告拍卖分钟 - def GetFamilySaleMinutes(self): return self.FamilySaleMinutes # 仙盟拍卖分钟 - def GetWorldSaleMinutes(self): return self.WorldSaleMinutes # 全服拍卖分钟 - def GetBasePrice(self): return self.BasePrice # 起拍价 - def GetBuyoutPrice(self): return self.BuyoutPrice # 一口价 - def GetBiddingAdd(self): return self.BiddingAdd # 竞价增加 - def GetNeedWorldNotify(self): return self.NeedWorldNotify # 是否需要广播 - def GetSortpriority(self): return self.Sortpriority # 排序优先级归组 + def GetAuctionItemID(self): return self.attrTuple[0] # DWORD + def GetNoticeSaleMinutes(self): return self.attrTuple[1] # 预告拍卖分钟 BYTE + def GetFamilySaleMinutes(self): return self.attrTuple[2] # 仙盟拍卖分钟 WORD + def GetWorldSaleMinutes(self): return self.attrTuple[3] # 全服拍卖分钟 WORD + def GetBasePrice(self): return self.attrTuple[4] # 起拍价 WORD + def GetBuyoutPrice(self): return self.attrTuple[5] # 一口价 WORD + def GetBiddingAdd(self): return self.attrTuple[6] # 竞价增加 WORD + def GetNeedWorldNotify(self): return self.attrTuple[7] # 是否需要广播 BYTE + def GetSortpriority(self): return self.attrTuple[8] # 排序优先级归组 BYTE # 拍卖行系统拍品表 class IPY_AuctionSystemItem(): def __init__(self): - self.CfgID = 0 - self.StartDate = "" - self.EndDate = "" - self.StartTime = "" - self.EndTime = "" - self.WorldLVRange = [] - self.AddRandSecondRange = [] - self.ReplenishCDMinutes = 0 - self.ReplenishAuctionCount = 0 - self.ReplenishItemID = 0 - self.ReplenishEquipInfo = [] - self.ReplenishEquipPlaces = [] - self.AuctionCount = 0 - self.RandMinuteRange = [] - self.ItemCountWeightList = [] - self.AuctionItemWeightList = [] - self.RandMailKeyList = [] + self.attrTuple = None return - def GetCfgID(self): return self.CfgID - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetStartTime(self): return self.StartTime # 开启时间 - def GetEndTime(self): return self.EndTime # 结束时间 - def GetWorldLVRange(self): return self.WorldLVRange # 世界等级范围限制 - def GetAddRandSecondRange(self): return self.AddRandSecondRange # 每件拍品随机间隔上架秒数 上限|下限 - def GetReplenishCDMinutes(self): return self.ReplenishCDMinutes # 动态补充拍品间隔分钟 - def GetReplenishAuctionCount(self): return self.ReplenishAuctionCount # 动态补充拍品保底数 - def GetReplenishItemID(self): return self.ReplenishItemID # 动态补充物品ID - def GetReplenishEquipInfo(self): return self.ReplenishEquipInfo # 动态补充装备信息 [阶,颜色,是否套装] - def GetReplenishEquipPlaces(self): return self.ReplenishEquipPlaces # 动态补充上架装备位列表 - def GetAuctionCount(self): return self.AuctionCount # 指定上架次数 - def GetRandMinuteRange(self): return self.RandMinuteRange # 指定上架随机间隔分钟下限|上限 - def GetItemCountWeightList(self): return self.ItemCountWeightList # 指定上架随机件数权重列表, [[权重, 件数], ...] - def GetAuctionItemWeightList(self): return self.AuctionItemWeightList # 指定上架物品随机权重, [[权重, 物品ID],[权重, [阶,颜色,部位集合,是否套装,星级]] ...] - def GetRandMailKeyList(self): return self.RandMailKeyList # 指定上架随机邮件列表,有配置时上架的时候在线玩家会收到一封上架邮件提醒 + def GetCfgID(self): return self.attrTuple[0] # DWORD + def GetStartDate(self): return self.attrTuple[1] # 开启日期 char + def GetEndDate(self): return self.attrTuple[2] # 结束日期 char + def GetStartTime(self): return self.attrTuple[3] # 开启时间 char + def GetEndTime(self): return self.attrTuple[4] # 结束时间 char + def GetWorldLVRange(self): return self.attrTuple[5] # 世界等级范围限制 list + def GetAddRandSecondRange(self): return self.attrTuple[6] # 每件拍品随机间隔上架秒数 上限|下限 list + def GetReplenishCDMinutes(self): return self.attrTuple[7] # 动态补充拍品间隔分钟 WORD + def GetReplenishAuctionCount(self): return self.attrTuple[8] # 动态补充拍品保底数 BYTE + def GetReplenishItemID(self): return self.attrTuple[9] # 动态补充物品ID DWORD + def GetReplenishEquipInfo(self): return self.attrTuple[10] # 动态补充装备信息 [阶,颜色,是否套装] list + def GetReplenishEquipPlaces(self): return self.attrTuple[11] # 动态补充上架装备位列表 list + def GetAuctionCount(self): return self.attrTuple[12] # 指定上架次数 BYTE + def GetRandMinuteRange(self): return self.attrTuple[13] # 指定上架随机间隔分钟下限|上限 list + def GetItemCountWeightList(self): return self.attrTuple[14] # 指定上架随机件数权重列表, [[权重, 件数], ...] list + def GetAuctionItemWeightList(self): return self.attrTuple[15] # 指定上架物品随机权重, [[权重, 物品ID],[权重, [阶,颜色,部位集合,是否套装,星级]] ...] list + def GetRandMailKeyList(self): return self.attrTuple[16] # 指定上架随机邮件列表,有配置时上架的时候在线玩家会收到一封上架邮件提醒 list + +# 跨服日常活动表 +class IPY_CrossDailyAction(): + + def __init__(self): + self.attrTuple = None + return + + def GetDailyID(self): return self.attrTuple[0] # 活动ID DWORD + def GetOpenTimeDict(self): return self.attrTuple[1] # 开启时间 dict + def GetDuration(self): return self.attrTuple[2] # 持续时间, 0为不限制 DWORD + def GetNotifyInfo(self): return self.attrTuple[3] # 广播提示信息 dict # 日常活动表 class IPY_DailyAction(): def __init__(self): - self.DailyID = 0 - self.OpenTimeDict = {} - self.Duration = 0 - self.NotifyInfo = {} + self.attrTuple = None return - def GetDailyID(self): return self.DailyID # 活动ID - def GetOpenTimeDict(self): return self.OpenTimeDict # 开启时间 - def GetDuration(self): return self.Duration # 持续时间, 0为不限制 - def GetNotifyInfo(self): return self.NotifyInfo # 广播提示信息 + def GetDailyID(self): return self.attrTuple[0] # 活动ID DWORD + def GetOpenTimeDict(self): return self.attrTuple[1] # 开启时间 dict + def GetDuration(self): return self.attrTuple[2] # 持续时间, 0为不限制 DWORD + def GetNotifyInfo(self): return self.attrTuple[3] # 广播提示信息 dict # 日常活动表定制表 class IPY_DailyActionCustom(): def __init__(self): - self.ID = 0 - self.OpenServerWeek = 0 - self.OpenServerDay = 0 - self.DailyID = 0 - self.OpenTimeList = [] - self.Duration = 0 - self.NotifyInfo = {} + self.attrTuple = None return - def GetID(self): return self.ID # ID - def GetOpenServerWeek(self): return self.OpenServerWeek # 开服是周几 - def GetOpenServerDay(self): return self.OpenServerDay # 开服第几天 - def GetDailyID(self): return self.DailyID # 日常活动ID - def GetOpenTimeList(self): return self.OpenTimeList # 开启时间列表 - def GetDuration(self): return self.Duration # 持续时间, 0为不限制 - def GetNotifyInfo(self): return self.NotifyInfo # 广播提示信息 + def GetID(self): return self.attrTuple[0] # ID DWORD + def GetOpenServerWeek(self): return self.attrTuple[1] # 开服是周几 BYTE + def GetOpenServerDay(self): return self.attrTuple[2] # 开服第几天 DWORD + def GetDailyID(self): return self.attrTuple[3] # 日常活动ID BYTE + def GetOpenTimeList(self): return self.attrTuple[4] # 开启时间列表 list + def GetDuration(self): return self.attrTuple[5] # 持续时间, 0为不限制 DWORD + def GetNotifyInfo(self): return self.attrTuple[6] # 广播提示信息 dict # 日常活动表定制表合服 class IPY_DailyActionCustomMix(): def __init__(self): - self.ID = 0 - self.MixServerDay = 0 - self.DailyID = 0 - self.OpenTimeList = [] - self.Duration = 0 - self.NotifyInfo = {} + self.attrTuple = None return - def GetID(self): return self.ID # ID - def GetMixServerDay(self): return self.MixServerDay # 合服第几天 - def GetDailyID(self): return self.DailyID # 日常活动ID - def GetOpenTimeList(self): return self.OpenTimeList # 开启时间列表 - def GetDuration(self): return self.Duration # 持续时间, 0为不限制 - def GetNotifyInfo(self): return self.NotifyInfo # 广播提示信息 + def GetID(self): return self.attrTuple[0] # ID DWORD + def GetMixServerDay(self): return self.attrTuple[1] # 合服第几天 DWORD + def GetDailyID(self): return self.attrTuple[2] # 日常活动ID BYTE + def GetOpenTimeList(self): return self.attrTuple[3] # 开启时间列表 list + def GetDuration(self): return self.attrTuple[4] # 持续时间, 0为不限制 DWORD + def GetNotifyInfo(self): return self.attrTuple[5] # 广播提示信息 dict # 副本状态时间表 class IPY_FBStateTime(): def __init__(self): - self.ID = 0 - self.DataMapID = 0 - self.StartWeekday = 0 - self.StartHour = 0 - self.StartMinute = 0 - self.EndHour = 0 - self.EndMinute = 0 - self.CanEnter = 0 - self.StateValue = 0 - self.NotifyInfoDict = {} + self.attrTuple = None return - def GetID(self): return self.ID # ID - def GetDataMapID(self): return self.DataMapID # 所属的玩法数据地图ID - def GetStartWeekday(self): return self.StartWeekday # 开始星期 - def GetStartHour(self): return self.StartHour # 开始时 - def GetStartMinute(self): return self.StartMinute # 开始分 - def GetEndHour(self): return self.EndHour # 结束时 - def GetEndMinute(self): return self.EndMinute # 结束分 - def GetCanEnter(self): return self.CanEnter # 是否可进入副本 - def GetStateValue(self): return self.StateValue # 状态值 - def GetNotifyInfoDict(self): return self.NotifyInfoDict # 广播提示信息 + def GetID(self): return self.attrTuple[0] # ID DWORD + def GetDataMapID(self): return self.attrTuple[1] # 所属的玩法数据地图ID DWORD + def GetStartWeekday(self): return self.attrTuple[2] # 开始星期 BYTE + def GetStartHour(self): return self.attrTuple[3] # 开始时 BYTE + def GetStartMinute(self): return self.attrTuple[4] # 开始分 BYTE + def GetEndHour(self): return self.attrTuple[5] # 结束时 BYTE + def GetEndMinute(self): return self.attrTuple[6] # 结束分 BYTE + def GetCanEnter(self): return self.attrTuple[7] # 是否可进入副本 BYTE + def GetStateValue(self): return self.attrTuple[8] # 状态值 BYTE + def GetNotifyInfoDict(self): return self.attrTuple[9] # 广播提示信息 dict # 副本状态时间定制表 class IPY_FBStateTimeCustom(): def __init__(self): - self.ID = 0 - self.OpenServerWeek = 0 - self.OpenServerDay = 0 - self.DataMapID = 0 - self.StartHour = 0 - self.StartMinute = 0 - self.EndHour = 0 - self.EndMinute = 0 - self.CanEnter = 0 - self.StateValue = 0 - self.NotifyInfoDict = {} + self.attrTuple = None return - def GetID(self): return self.ID # ID - def GetOpenServerWeek(self): return self.OpenServerWeek # 开服是周几 - def GetOpenServerDay(self): return self.OpenServerDay # 开服第几天 - def GetDataMapID(self): return self.DataMapID # 所属的玩法数据地图ID - def GetStartHour(self): return self.StartHour # 开始时 - def GetStartMinute(self): return self.StartMinute # 开始分 - def GetEndHour(self): return self.EndHour # 结束时 - def GetEndMinute(self): return self.EndMinute # 结束分 - def GetCanEnter(self): return self.CanEnter # 是否可进入副本 - def GetStateValue(self): return self.StateValue # 状态值 - def GetNotifyInfoDict(self): return self.NotifyInfoDict # 广播提示信息 + def GetID(self): return self.attrTuple[0] # ID DWORD + def GetOpenServerWeek(self): return self.attrTuple[1] # 开服是周几 BYTE + def GetOpenServerDay(self): return self.attrTuple[2] # 开服第几天 DWORD + def GetDataMapID(self): return self.attrTuple[3] # 所属的玩法数据地图ID DWORD + def GetStartHour(self): return self.attrTuple[4] # 开始时 BYTE + def GetStartMinute(self): return self.attrTuple[5] # 开始分 BYTE + def GetEndHour(self): return self.attrTuple[6] # 结束时 BYTE + def GetEndMinute(self): return self.attrTuple[7] # 结束分 BYTE + def GetCanEnter(self): return self.attrTuple[8] # 是否可进入副本 BYTE + def GetStateValue(self): return self.attrTuple[9] # 状态值 BYTE + def GetNotifyInfoDict(self): return self.attrTuple[10] # 广播提示信息 dict # 副本状态时间定制表合服 class IPY_FBStateTimeCustomMix(): def __init__(self): - self.ID = 0 - self.MixServerDay = 0 - self.DataMapID = 0 - self.StartHour = 0 - self.StartMinute = 0 - self.EndHour = 0 - self.EndMinute = 0 - self.CanEnter = 0 - self.StateValue = 0 - self.NotifyInfoDict = {} + self.attrTuple = None return - def GetID(self): return self.ID # ID - def GetMixServerDay(self): return self.MixServerDay # 合服第几天 - def GetDataMapID(self): return self.DataMapID # 所属的玩法数据地图ID - def GetStartHour(self): return self.StartHour # 开始时 - def GetStartMinute(self): return self.StartMinute # 开始分 - def GetEndHour(self): return self.EndHour # 结束时 - def GetEndMinute(self): return self.EndMinute # 结束分 - def GetCanEnter(self): return self.CanEnter # 是否可进入副本 - def GetStateValue(self): return self.StateValue # 状态值 - def GetNotifyInfoDict(self): return self.NotifyInfoDict # 广播提示信息 + def GetID(self): return self.attrTuple[0] # ID DWORD + def GetMixServerDay(self): return self.attrTuple[1] # 合服第几天 DWORD + def GetDataMapID(self): return self.attrTuple[2] # 所属的玩法数据地图ID DWORD + def GetStartHour(self): return self.attrTuple[3] # 开始时 BYTE + def GetStartMinute(self): return self.attrTuple[4] # 开始分 BYTE + def GetEndHour(self): return self.attrTuple[5] # 结束时 BYTE + def GetEndMinute(self): return self.attrTuple[6] # 结束分 BYTE + def GetCanEnter(self): return self.attrTuple[7] # 是否可进入副本 BYTE + def GetStateValue(self): return self.attrTuple[8] # 状态值 BYTE + def GetNotifyInfoDict(self): return self.attrTuple[9] # 广播提示信息 dict # 副本总表 class IPY_FBFunc(): def __init__(self): - self.DataMapID = 0 - self.HelpPoint = 0 + self.attrTuple = None return - def GetDataMapID(self): return self.DataMapID # 数据地图ID - def GetHelpPoint(self): return self.HelpPoint # 助战仙缘币(0代表不可助战) + def GetDataMapID(self): return self.attrTuple[0] # 数据地图ID DWORD + def GetHelpPoint(self): return self.attrTuple[1] # 助战仙缘币(0代表不可助战) WORD # 副本功能线路表 class IPY_FBLine(): def __init__(self): - self.DataMapID = 0 - self.LineID = 0 - self.MapID = 0 + self.attrTuple = None return - def GetDataMapID(self): return self.DataMapID # 数据地图ID - def GetLineID(self): return self.LineID # 功能线路ID - def GetMapID(self): return self.MapID # 场景地图ID + def GetDataMapID(self): return self.attrTuple[0] # 数据地图ID DWORD + def GetLineID(self): return self.attrTuple[1] # 功能线路ID BYTE + def GetMapID(self): return self.attrTuple[2] # 场景地图ID DWORD # 副本助战表 class IPY_FBHelpBattle(): def __init__(self): - self.DataMapID = 0 - self.LineID = 0 - self.FightPowerMin = 0 - self.FightPowerMax = 0 - self.LVLimit = 0 - self.DayFreeHelpCount = [] + self.attrTuple = None return - def GetDataMapID(self): return self.DataMapID # 数据地图ID - def GetLineID(self): return self.LineID # 功能线路ID - def GetFightPowerMin(self): return self.FightPowerMin # 助战最低战力,也是副本战力 - def GetFightPowerMax(self): return self.FightPowerMax # 助战最高战力,0为不限制 - def GetLVLimit(self): return self.LVLimit # 助战等级限制, 0为不限制 - def GetDayFreeHelpCount(self): return self.DayFreeHelpCount # 每日免费助战次数,[每日免费助战次数, 是否所有层通用] + def GetDataMapID(self): return self.attrTuple[0] # 数据地图ID DWORD + def GetLineID(self): return self.attrTuple[1] # 功能线路ID BYTE + def GetFightPowerMin(self): return self.attrTuple[2] # 助战最低战力,也是副本战力 DWORD + def GetFightPowerMax(self): return self.attrTuple[3] # 助战最高战力,0为不限制 DWORD + def GetLVLimit(self): return self.attrTuple[4] # 助战等级限制, 0为不限制 WORD + def GetDayFreeHelpCount(self): return self.attrTuple[5] # 每日免费助战次数,[每日免费助战次数, 是否所有层通用] list + +# 功能队伍设定表 +class IPY_FuncTeamSet(): + + def __init__(self): + self.attrTuple = None + return + + def GetFuncMapID(self): return self.attrTuple[0] # 功能地图ID DWORD + def GetNeedName(self): return self.attrTuple[1] # 需要队伍名 BYTE + def GetMemberMax(self): return self.attrTuple[2] # 最大人员数 BYTE + def GetApplyMax(self): return self.attrTuple[3] # 最大接受申请数 BYTE + def GetReqApplyMax(self): return self.attrTuple[4] # 最大申请数 BYTE + def GetSortType(self): return self.attrTuple[5] # 队伍列表排序方案 BYTE + def GetSortReverse(self): return self.attrTuple[6] # 是否倒序 BYTE + def GetOPLimitInAct(self): return self.attrTuple[7] # 活动期间限制队伍操作 BYTE # 地图表 class IPY_ChinMap(): def __init__(self): - self.MapID = 0 - self.MapName = "" - self.MapFBType = 0 - self.TeamLimit = 0 + self.attrTuple = None return - def GetMapID(self): return self.MapID # 地图ID - def GetMapName(self): return self.MapName # 地图名 - def GetMapFBType(self): return self.MapFBType # 地图类型 - def GetTeamLimit(self): return self.TeamLimit # 队伍限制类型;0不限,1-不可变更,2-不可存在队伍 + def GetMapID(self): return self.attrTuple[0] # 地图ID DWORD + def GetMapName(self): return self.attrTuple[1] # 地图名 char + def GetMapFBType(self): return self.attrTuple[2] # 地图类型 BYTE + def GetTeamLimit(self): return self.attrTuple[3] # 队伍限制类型;0不限,1-不可变更,2-不可存在队伍 BYTE # BOSS信息表 class IPY_BOSSInfo(): def __init__(self): - self.NPCID = 0 - self.MapID = 0 - self.RefreshTime = "" - self.LVLimit = [] - self.DiffPer = 0 - self.NoUpdataCnt = 0 - self.StoneNPCID = 0 - self.RebornPreNotifyTime = 0 - self.SourceName = "" - self.CanAssist = 0 + self.attrTuple = None return - def GetNPCID(self): return self.NPCID # ID - def GetMapID(self): return self.MapID # 地图ID - def GetRefreshTime(self): return self.RefreshTime # 刷新时间 参数 onlineCnt - def GetLVLimit(self): return self.LVLimit # 在线人物等级范围 - def GetDiffPer(self): return self.DiffPer # 百分比与之前的误差小于X%,则更新实时在线数量 - def GetNoUpdataCnt(self): return self.NoUpdataCnt # 多少次未更新实时在线数量字段时强制更新 - def GetStoneNPCID(self): return self.StoneNPCID # 墓碑NPCID - def GetRebornPreNotifyTime(self): return self.RebornPreNotifyTime # 复活前X秒通知 - def GetSourceName(self): return self.SourceName # BOSS来源 - def GetCanAssist(self): return self.CanAssist # 是否可协助 + def GetNPCID(self): return self.attrTuple[0] # ID DWORD + def GetMapID(self): return self.attrTuple[1] # 地图ID DWORD + def GetRefreshTime(self): return self.attrTuple[2] # 刷新时间 参数 onlineCnt char + def GetLVLimit(self): return self.attrTuple[3] # 在线人物等级范围 list + def GetDiffPer(self): return self.attrTuple[4] # 百分比与之前的误差小于X%,则更新实时在线数量 BYTE + def GetNoUpdataCnt(self): return self.attrTuple[5] # 多少次未更新实时在线数量字段时强制更新 BYTE + def GetStoneNPCID(self): return self.attrTuple[6] # 墓碑NPCID DWORD + def GetRebornPreNotifyTime(self): return self.attrTuple[7] # 复活前X秒通知 WORD + def GetSourceName(self): return self.attrTuple[8] # BOSS来源 char + def GetCanAssist(self): return self.attrTuple[9] # 是否可协助 BYTE # Boss首杀 class IPY_BOSSFirstKill(): def __init__(self): - self.NPCID = 0 - self.ServerFirstKillPlayerAward = [] + self.attrTuple = None return - def GetNPCID(self): return self.NPCID # ID - def GetServerFirstKillPlayerAward(self): return self.ServerFirstKillPlayerAward # 全服首杀玩家奖励 [[物品ID,个数,是否拍品], ...] + def GetNPCID(self): return self.attrTuple[0] # ID DWORD + def GetServerFirstKillPlayerAward(self): return self.attrTuple[1] # 全服首杀玩家奖励 [[物品ID,个数,是否拍品], ...] list + +# 全民冲榜排行奖励表 +class IPY_OSCBillRankAward(): + + def __init__(self): + self.attrTuple = None + return + + def GetOSCBillType(self): return self.attrTuple[0] # 冲榜类型 BYTE + def GetRankA(self): return self.attrTuple[1] # 排名A BYTE + def GetRankB(self): return self.attrTuple[2] # 至排名B BYTE + def GetRankAward(self): return self.attrTuple[3] # 排名奖励 {"职业":[[物品ID,个数],...], ...} dict # 宴会题库表 class IPY_QuestionBank(): def __init__(self): - self.ID = 0 - self.Answer = "" + self.attrTuple = None return - def GetID(self): return self.ID # ID - def GetAnswer(self): return self.Answer # 答案 + def GetID(self): return self.attrTuple[0] # ID DWORD + def GetAnswer(self): return self.attrTuple[1] # 答案 char # 仙盟红包表 class IPY_FamilyRedPack(): def __init__(self): - self.ID = 0 - self.GetType = 0 - self.MoneyNum = 0 - self.MoneyType = 0 - self.PacketCnt = 0 - self.LeaderOwn = 0 - self.PacketOpenTime = "" - self.ValidMinutes = 0 + self.attrTuple = None return - def GetID(self): return self.ID # ID - def GetGetType(self): return self.GetType # 获得途径 - def GetMoneyNum(self): return self.MoneyNum # 红包额度 - def GetMoneyType(self): return self.MoneyType # 金钱类型 - def GetPacketCnt(self): return self.PacketCnt # 红包个数 - def GetLeaderOwn(self): return self.LeaderOwn # 是否归属盟主 - def GetPacketOpenTime(self): return self.PacketOpenTime # 发放红包时间yyyy-MM-dd hh:mm - def GetValidMinutes(self): return self.ValidMinutes # 红包有效时长(分) + def GetID(self): return self.attrTuple[0] # ID WORD + def GetGetType(self): return self.attrTuple[1] # 获得途径 WORD + def GetMoneyNum(self): return self.attrTuple[2] # 红包额度 WORD + def GetMoneyType(self): return self.attrTuple[3] # 金钱类型 BYTE + def GetPacketCnt(self): return self.attrTuple[4] # 红包个数 BYTE + def GetLeaderOwn(self): return self.attrTuple[5] # 是否归属盟主 BYTE + def GetPacketOpenTime(self): return self.attrTuple[6] # 发放红包时间yyyy-MM-dd hh:mm char + def GetValidMinutes(self): return self.attrTuple[7] # 红包有效时长(分) BYTE # 节日红包时间表 class IPY_ActFeastRedPacket(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.IsDayReset = 0 - self.ResetType = 0 - self.RedPacketIDList = [] - self.LVLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetRedPacketIDList(self): return self.RedPacketIDList # 每日对应红包ID列表[[第一天红包ID列表], ...] - def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[7] # 重置类型,0-0点重置;1-5点重置 BYTE + def GetRedPacketIDList(self): return self.attrTuple[8] # 每日对应红包ID列表[[第一天红包ID列表], ...] list + def GetLVLimit(self): return self.attrTuple[9] # 限制等级 WORD # 节日登录奖励时间表 class IPY_ActFeastLogin(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char # 节日祝福时间表 class IPY_ActFeastWish(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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 + def GetNotifyInfoStart(self): return self.attrTuple[7] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[8] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[9] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list # 节日游历时间表 class IPY_ActFeastTravel(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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 + def GetNotifyInfoStart(self): return self.attrTuple[7] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[8] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[9] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list # 等级开启功能 class IPY_FuncOpenLV(): def __init__(self): - self.FuncId = 0 - self.LimitLV = 0 - self.LimitMagicWeapon = 0 - self.LimiRealmLV = 0 + self.attrTuple = None return - def GetFuncId(self): return self.FuncId # 功能标识 - def GetLimitLV(self): return self.LimitLV # 开启等级 - def GetLimitMagicWeapon(self): return self.LimitMagicWeapon # 需要解锁法宝ID - def GetLimiRealmLV(self): return self.LimiRealmLV # 需要境界等级 + def GetFuncId(self): return self.attrTuple[0] # 功能标识 DWORD + def GetLimitLV(self): return self.attrTuple[1] # 开启等级 DWORD + def GetLimitMagicWeapon(self): return self.attrTuple[2] # 需要解锁法宝ID DWORD + def GetLimiRealmLV(self): return self.attrTuple[3] # 需要境界等级 WORD + def GetLimitVIPLV(self): return self.attrTuple[4] # 需要VIP等级 BYTE + +# 物品表 +class IPY_ChinItem(): + + def __init__(self): + self.attrTuple = None + return + + def GetItemID(self): return self.attrTuple[0] # 物品ID DWORD + def GetItemType(self): return self.attrTuple[1] # 物品类型 BYTE + def GetEffect1(self): return self.attrTuple[2] # 道具使用效果1 DWORD + def GetEffectValueA1(self): return self.attrTuple[3] # 效果1的a值 DWORD + def GetEffectValueB1(self): return self.attrTuple[4] # 效果1的b值 DWORD + def GetEffectValueC1(self): return self.attrTuple[5] # 效果1的c值 DWORD # NPC表 class IPY_ChinNPC(): def __init__(self): - self.NPCID = 0 - self.NPCName = "" - self.LV = 0 + self.attrTuple = None return - def GetNPCID(self): return self.NPCID - def GetNPCName(self): return self.NPCName - def GetLV(self): return self.LV + def GetNPCID(self): return self.attrTuple[0] # DWORD + def GetNPCName(self): return self.attrTuple[1] # char + def GetLV(self): return self.attrTuple[2] # WORD # 玩家等级表 class IPY_PlayerLV(): def __init__(self): - self.LV = 0 - self.ReFightPower = 0 + self.attrTuple = None return - def GetLV(self): return self.LV # 玩家等级 - def GetReFightPower(self): return self.ReFightPower # 战斗力 + def GetLV(self): return self.attrTuple[0] # 玩家等级 WORD + def GetReFightPower(self): return self.attrTuple[1] # 战斗力 DWORD # VIP特权表 class IPY_VipPrivilege(): def __init__(self): - self.VIPPriID = 0 - self.VIP0 = 0 - self.VIP1 = 0 - self.VIP2 = 0 - self.VIP3 = 0 - self.VIP4 = 0 - self.VIP5 = 0 - self.VIP6 = 0 - self.VIP7 = 0 - self.VIP8 = 0 - self.VIP9 = 0 - self.VIP10 = 0 - self.VIP11 = 0 - self.VIP12 = 0 - self.VIP13 = 0 - self.VIP14 = 0 - self.VIP15 = 0 + self.attrTuple = None return - def GetVIPPriID(self): return self.VIPPriID # 特权ID - def GetVIP0(self): return self.VIP0 # VIP0对应的特权值 - def GetVIP1(self): return self.VIP1 # VIP1对应的特权值 - def GetVIP2(self): return self.VIP2 # VIP2对应的特权值 - def GetVIP3(self): return self.VIP3 # VIP3对应的特权值 - def GetVIP4(self): return self.VIP4 # VIP4对应的特权值 - def GetVIP5(self): return self.VIP5 # VIP5对应的特权值 - def GetVIP6(self): return self.VIP6 # VIP6对应的特权值 - def GetVIP7(self): return self.VIP7 # VIP7对应的特权值 - def GetVIP8(self): return self.VIP8 # VIP8对应的特权值 - def GetVIP9(self): return self.VIP9 # VIP9对应的特权值 - def GetVIP10(self): return self.VIP10 # VIP10对应的特权值 - def GetVIP11(self): return self.VIP11 # VIP11对应的特权值 - def GetVIP12(self): return self.VIP12 # VIP12对应的特权值 - def GetVIP13(self): return self.VIP13 # VIP13对应的特权值 - def GetVIP14(self): return self.VIP14 # VIP14对应的特权值 - def GetVIP15(self): return self.VIP15 # VIP15对应的特权值 + def GetVIPPriID(self): return self.attrTuple[0] # 特权ID DWORD + def GetVIP0(self): return self.attrTuple[1] # VIP0对应的特权值 DWORD + def GetVIP1(self): return self.attrTuple[2] # VIP1对应的特权值 DWORD + def GetVIP2(self): return self.attrTuple[3] # VIP2对应的特权值 DWORD + def GetVIP3(self): return self.attrTuple[4] # VIP3对应的特权值 DWORD + def GetVIP4(self): return self.attrTuple[5] # VIP4对应的特权值 DWORD + def GetVIP5(self): return self.attrTuple[6] # VIP5对应的特权值 DWORD + def GetVIP6(self): return self.attrTuple[7] # VIP6对应的特权值 DWORD + def GetVIP7(self): return self.attrTuple[8] # VIP7对应的特权值 DWORD + def GetVIP8(self): return self.attrTuple[9] # VIP8对应的特权值 DWORD + def GetVIP9(self): return self.attrTuple[10] # VIP9对应的特权值 DWORD + def GetVIP10(self): return self.attrTuple[11] # VIP10对应的特权值 DWORD + def GetVIP11(self): return self.attrTuple[12] # VIP11对应的特权值 DWORD + def GetVIP12(self): return self.attrTuple[13] # VIP12对应的特权值 DWORD + def GetVIP13(self): return self.attrTuple[14] # VIP13对应的特权值 DWORD + def GetVIP14(self): return self.attrTuple[15] # VIP14对应的特权值 DWORD + def GetVIP15(self): return self.attrTuple[16] # VIP15对应的特权值 DWORD # 限时特惠表 class IPY_ActSpringSale(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.StartTimeList = [] - self.EndTimeList = [] - self.AdvanceMinutes = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.LVLimit = 0 - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetStartTimeList(self): return self.StartTimeList # 开启时间列表, 支持多个时段 - def GetEndTimeList(self): return self.EndTimeList # 结束时间列表, 支持多个时段 - def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetLVLimit(self): return self.LVLimit # 限制等级 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + 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 GetStartTimeList(self): return self.attrTuple[6] # 开启时间列表, 支持多个时段 list + def GetEndTimeList(self): return self.attrTuple[7] # 结束时间列表, 支持多个时段 list + def GetAdvanceMinutes(self): return self.attrTuple[8] # 前端提前X分钟展示活动 WORD + def GetNotifyInfoStart(self): return self.attrTuple[9] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[10] # 全服提示信息 - 相对结束时间 dict + 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 # 限时礼包表 class IPY_ActFlashGiftbag(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.StartTimeList = [] - self.EndTimeList = [] - self.AdvanceMinutes = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.LimitWorldLV = 0 - self.LVLimit = 0 - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetStartTimeList(self): return self.StartTimeList # 开启时间列表, 支持多个时段 - def GetEndTimeList(self): return self.EndTimeList # 结束时间列表, 支持多个时段 - def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetLimitWorldLV(self): return self.LimitWorldLV # 限制开启的最低世界等级 - def GetLVLimit(self): return self.LVLimit # 限制等级 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + 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 GetStartTimeList(self): return self.attrTuple[6] # 开启时间列表, 支持多个时段 list + def GetEndTimeList(self): return self.attrTuple[7] # 结束时间列表, 支持多个时段 list + def GetAdvanceMinutes(self): return self.attrTuple[8] # 前端提前X分钟展示活动 WORD + def GetNotifyInfoStart(self): return self.attrTuple[9] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[10] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[11] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetLimitWorldLV(self): return self.attrTuple[12] # 限制开启的最低世界等级 WORD + def GetLVLimit(self): return self.attrTuple[13] # 限制等级 WORD + def GetIsDayReset(self): return self.attrTuple[14] # 是否每天重置 BYTE # 每日礼包表 class IPY_ActDailyGiftbag(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char # 双倍经验活动表 class IPY_ActExpRate(): def __init__(self): - self.CfgID = 0 - self.ServerGroupIDList = [] - self.ServerGroupIDListExcept = [] - self.StartDate = "" - self.EndDate = "" - self.StartTimeList = [] - self.EndTimeList = [] - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.LVLimit = 0 - self.AddExpRate = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器组ID列表 - def GetServerGroupIDListExcept(self): return self.ServerGroupIDListExcept # 排除的服务器组ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetStartTimeList(self): return self.StartTimeList # 开启时间列表, 支持多个时段 - def GetEndTimeList(self): return self.EndTimeList # 结束时间列表, 支持多个时段 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key, [可选参数1, ...]] - def GetLVLimit(self): return self.LVLimit # 限制等级 - def GetAddExpRate(self): return self.AddExpRate # 经验倍率加成,万分率 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetServerGroupIDList(self): return self.attrTuple[1] # 服务器组ID列表 list + def GetServerGroupIDListExcept(self): return self.attrTuple[2] # 排除的服务器组ID列表 list + def GetStartDate(self): return self.attrTuple[3] # 开启日期 char + def GetEndDate(self): return self.attrTuple[4] # 结束日期 char + def GetStartTimeList(self): return self.attrTuple[5] # 开启时间列表, 支持多个时段 list + def GetEndTimeList(self): return self.attrTuple[6] # 结束时间列表, 支持多个时段 list + def GetNotifyInfoStart(self): return self.attrTuple[7] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[8] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[9] # 全服提示信息 - 循环广播[间隔分钟, 广播key, [可选参数1, ...]] list + def GetLVLimit(self): return self.attrTuple[10] # 限制等级 WORD + def GetAddExpRate(self): return self.attrTuple[11] # 经验倍率加成,万分率 DWORD # 消费返利活动表 class IPY_ActCostRebate(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE + +# 买一送多活动表 +class IPY_ActBuyOne(): + + def __init__(self): + self.attrTuple = None + return + + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE + +# 仙盟充值协助活动表 +class IPY_ActFamilyCTGAssist(): + + 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 GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE # 集字活动时间表 class IPY_ActCollectWords(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list # 垃圾分类活动时间表 class IPY_ActGarbageSorting(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.ResetType = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetResetType(self): return self.attrTuple[9] # 重置类型,0-0点重置;1-5点重置 BYTE + +# Boss历练活动表 +class IPY_ActBossTrial(): + + 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 GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char + def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char + def GetNotifyInfoStart(self): return self.attrTuple[8] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[9] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[10] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetIsDayReset(self): return self.attrTuple[11] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[12] # 重置类型,0-0点重置;1-5点重置 BYTE + def GetTemplateIDList(self): return self.attrTuple[13] # 榜单模板编号列表 list + def GetFamilyTemplateIDList(self): return self.attrTuple[14] # 仙盟榜单模板编号列表 list + +# Boss历练榜单模版表 +class IPY_ActBossTrialTemplate(): + + 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 GetMemAwardItemList(self): return self.attrTuple[3] # 仙盟榜成员奖励物品信息列表[[物品ID,个数,是否拍品], ...] list + def GetNeedScore(self): return self.attrTuple[4] # 上榜所需积分 DWORD + def GetScoreAwardEx(self): return self.attrTuple[5] # 达标积分额外奖励 {积分:[[物品ID,个数,是否拍品], ...], ...} dict + def GetXiangongID(self): return self.attrTuple[6] # 晋升仙宫ID WORD + +# Boss历练跨服活动表 +class IPY_CrossActBossTrial(): + + 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 GetNotifyInfoStart(self): return self.attrTuple[8] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[9] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[10] # 全服提示信息 - 循环广播[循环分钟, 广播key, [广播参数列表可选]] list + def GetIsDayReset(self): return self.attrTuple[11] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[12] # 重置类型,0-0点重置;1-5点重置 BYTE + def GetPersonalTemplateID(self): return self.attrTuple[13] # 个人排行模板编号 WORD + def GetFamilyTemplateID(self): return self.attrTuple[14] # 仙盟排行模板编号 WORD + +# 骑宠养成活动时间表 +class IPY_ActHorsePetTrain(): + + 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 GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char + def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char + def GetPersonalTemplateID(self): return self.attrTuple[8] # 个人排行模板编号 WORD + +# 骑宠养成活动跨服表 +class IPY_CrossActHorsePetTrain(): + + 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 GetPersonalTemplateID(self): return self.attrTuple[8] # 个人排行模板编号 WORD + +# 骑宠养成榜单模版表 +class IPY_ActHorsePetTrainBillTemp(): + + 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 + def GetXiangongID(self): return self.attrTuple[5] # 晋升仙宫ID WORD + +# 古宝养成活动时间表 +class IPY_ActGubao(): + + 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 GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char + def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char + def GetPersonalTemplateID(self): return self.attrTuple[8] # 个人排行模板编号 WORD + +# 古宝养成活动跨服表 +class IPY_CrossActGubao(): + + 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 GetPersonalTemplateID(self): return self.attrTuple[8] # 个人排行模板编号 WORD + +# 古宝养成榜单模版表 +class IPY_ActGubaoBillTemp(): + + 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 + 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_ActTimeFlow(): + + def __init__(self): + self.attrTuple = None + return + + def GetFlowID(self): return self.attrTuple[0] # DWORD + def GetStartDay(self): return self.attrTuple[1] # 开始天 BYTE + def GetStartHour(self): return self.attrTuple[2] # 开始时 BYTE + def GetStartMinute(self): return self.attrTuple[3] # 开始分 BYTE + def GetEndDay(self): return self.attrTuple[4] # 结束天 BYTE + def GetEndHour(self): return self.attrTuple[5] # 结束时 BYTE + def GetEndMinute(self): return self.attrTuple[6] # 结束分 BYTE + def GetStateValue(self): return self.attrTuple[7] # 状态值 WORD + +# 活动榜单奖励模版表 +class IPY_ActBillboardAwardTemp(): + + def __init__(self): + self.attrTuple = None + return + + def GetTemplateID(self): return self.attrTuple[0] # 模板编号 DWORD + def GetRank(self): return self.attrTuple[1] # 名次 BYTE + def GetNeedValue(self): return self.attrTuple[2] # 上榜所需值 DWORD + def GetValueAwardEx(self): return self.attrTuple[3] # 达标值额外奖励 {值:[[物品ID,个数,是否拍品], ...], ...} dict + def GetAwardItemList(self): return self.attrTuple[4] # 奖励物品列表[[物品ID,个数,是否拍品], ...] list + def GetLeaderAwardItemList(self): return self.attrTuple[5] # 仙盟榜盟主奖励物品信息列表[[物品ID,个数,是否拍品], ...] list + def GetEliteAwardItemList(self): return self.attrTuple[6] # 仙盟榜精英奖励物品信息列表[[物品ID,个数,是否拍品], ...] list + +# 活动竞猜表 +class IPY_ActGuess(): + + def __init__(self): + self.attrTuple = None + return + + def GetTemplateID(self): return self.attrTuple[0] # 模板编号 DWORD + def GetAwardID(self): return self.attrTuple[1] # 奖励ID DWORD + def GetRightRankList(self): return self.attrTuple[2] # 猜对名次列表 list + def GetAwardItemList(self): return self.attrTuple[3] # 对应奖励列表 [[物品ID,个数,是否拍品], ...] list + +# 仙盟攻城战活动表 +class IPY_CrossActFamilyGCZ(): + + 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 GetJoinFamilyCnt(self): return self.attrTuple[6] # 参与仙盟数 BYTE + def GetActFlowID(self): return self.attrTuple[7] # 活动流程ID,对应H.活动时间流程表 WORD + def GetGuessTemplateID(self): return self.attrTuple[8] # 竞猜奖励模版,对应H.活动竞猜表 WORD + def GetPersonalTemplateID(self): return self.attrTuple[9] # 个人伤害排行奖励模版,对应H.活动榜单奖励模版表 WORD + def GetFamilyTemplateID(self): return self.attrTuple[10] # 仙盟积分排行奖励模版,对应H.活动榜单奖励模版表 WORD + +# 仙盟攻城战大本营等级表 +class IPY_CrossActFamilyGCZCampLV(): + + def __init__(self): + self.attrTuple = None + return + + def GetCampLV(self): return self.attrTuple[0] # 大本营等级 DWORD + def GetLVUPNeedExp(self): return self.attrTuple[1] # 升下一级所需经验 DWORD + def GetAddHPPer(self): return self.attrTuple[2] # 生命累计总加成百分比 DWORD # 仙匣秘境活动时间表 class IPY_ActXianXiaMJ(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.ResetType = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 + 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 GetJoinStartTime(self): return self.attrTuple[6] # 参与开始时间点 char + def GetJoinEndTime(self): return self.attrTuple[7] # 参与结束时间点 char + def GetIsDayReset(self): return self.attrTuple[8] # 是否每天重置 BYTE + def GetPersonalTemplateID(self): return self.attrTuple[9] # 个人排行模板编号 WORD + +# 仙匣秘境活动跨服表 +class IPY_CrossActXianXiaMJ(): + + 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 GetIsDayReset(self): return self.attrTuple[8] # 是否每天重置 BYTE + def GetPersonalTemplateID(self): return self.attrTuple[9] # 个人排行模板编号 WORD + +# 仙匣秘境榜单模版表 +class IPY_ActXianXiaMJBillTemp(): + + 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 + def GetXiangongID(self): return self.attrTuple[5] # 晋升仙宫ID WORD + +# 天帝礼包活动时间表 +class IPY_ActGodGift(): + + def __init__(self): + self.attrTuple = None + return + + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE # 骑宠盛宴活动 class IPY_ActHorsePetFeast(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.StartTimeList = [] - self.EndTimeList = [] - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetStartTimeList(self): return self.StartTimeList # 开启时间列表, 支持多个时段 - def GetEndTimeList(self): return self.EndTimeList # 结束时间列表, 支持多个时段 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + 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 GetStartTimeList(self): return self.attrTuple[6] # 开启时间列表, 支持多个时段 list + def GetEndTimeList(self): return self.attrTuple[7] # 结束时间列表, 支持多个时段 list + def GetNotifyInfoStart(self): return self.attrTuple[8] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[9] # 全服提示信息 - 相对结束时间 dict + def GetIsDayReset(self): return self.attrTuple[10] # 是否每天重置 BYTE # BOSS复活活动时间表 class IPY_ActBossReborn(): def __init__(self): - self.CfgID = 0 - self.ServerGroupIDList = [] - self.ServerGroupIDListExcept = [] - self.StartDate = "" - self.EndDate = "" - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.LVLimit = 0 - self.TemplateID = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器组ID列表 - def GetServerGroupIDListExcept(self): return self.ServerGroupIDListExcept # 排除的服务器组ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetLVLimit(self): return self.LVLimit # 限制等级 - def GetTemplateID(self): return self.TemplateID # 模板编号 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetServerGroupIDList(self): return self.attrTuple[1] # 服务器组ID列表 list + def GetServerGroupIDListExcept(self): return self.attrTuple[2] # 排除的服务器组ID列表 list + def GetStartDate(self): return self.attrTuple[3] # 开启日期 char + def GetEndDate(self): return self.attrTuple[4] # 结束日期 char + def GetResetType(self): return self.attrTuple[5] # 重置类型,0-0点重置;1-5点重置 BYTE + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetLVLimit(self): return self.attrTuple[8] # 限制等级 WORD + def GetTemplateID(self): return self.attrTuple[9] # 模板编号 BYTE # 仙界盛典活动时间表 class IPY_ActFairyCeremony(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.LVLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置;2-5点开始0点结束 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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点重置;2-5点开始0点结束 BYTE + def GetNotifyInfoStart(self): return self.attrTuple[7] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[8] # 全服提示信息 - 相对结束时间 dict + def GetLVLimit(self): return self.attrTuple[9] # 限制等级 WORD # 仙界盛典-绝版降临表 class IPY_UniquenessArrive(): def __init__(self): - self.WorldLvNum = 0 - self.Rank = 0 - self.Award = {} + self.attrTuple = None return - def GetWorldLvNum(self): return self.WorldLvNum # 世界等级档 - def GetRank(self): return self.Rank # 排名 - def GetAward(self): return self.Award # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...} + def GetWorldLvNum(self): return self.attrTuple[0] # 世界等级档 BYTE + def GetRank(self): return self.attrTuple[1] # 排名 DWORD + def GetAward(self): return self.attrTuple[2] # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...} dict # 多倍修行点活动时间表 class IPY_ActRealmPoint(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.Multiple = 0 - self.LVLimit = 0 - self.PointLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetMultiple(self): return self.Multiple # 倍数 - def GetLVLimit(self): return self.LVLimit # 限制等级 - def GetPointLimit(self): return self.PointLimit # 限制额外修行点 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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 + def GetNotifyInfoStart(self): return self.attrTuple[7] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[8] # 全服提示信息 - 相对结束时间 dict + def GetMultiple(self): return self.attrTuple[9] # 倍数 WORD + def GetLVLimit(self): return self.attrTuple[10] # 限制等级 WORD + def GetPointLimit(self): return self.attrTuple[11] # 限制额外修行点 DWORD # 限时抢购表 class IPY_ActFlashSale(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.StartTimeList = [] - self.EndTimeList = [] - self.AdvanceMinutes = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.LVLimit = 0 - self.IsDayReset = 0 - self.ShopTypeList = [] + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetStartTimeList(self): return self.StartTimeList # 开启时间列表, 支持多个时段 - def GetEndTimeList(self): return self.EndTimeList # 结束时间列表, 支持多个时段 - def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetLVLimit(self): return self.LVLimit # 限制等级 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 - def GetShopTypeList(self): return self.ShopTypeList # 商店类型列表 + 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 GetStartTimeList(self): return self.attrTuple[6] # 开启时间列表, 支持多个时段 list + def GetEndTimeList(self): return self.attrTuple[7] # 结束时间列表, 支持多个时段 list + def GetAdvanceMinutes(self): return self.attrTuple[8] # 前端提前X分钟展示活动 WORD + def GetNotifyInfoStart(self): return self.attrTuple[9] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[10] # 全服提示信息 - 相对结束时间 dict + 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] # 商店类型列表 dict # 商城表 class IPY_Store(): def __init__(self): - self.ID = 0 - self.ShopType = 0 - self.RefreshType = 0 - self.ServerLimitCnt = 0 + self.attrTuple = None return - def GetID(self): return self.ID # ID - def GetShopType(self): return self.ShopType # 商店类型 - def GetRefreshType(self): return self.RefreshType # 刷新类型 0-不重置,1-onWeek0点,2-onWeek5点,3-OnDay0点,4-OnDay5点 - def GetServerLimitCnt(self): return self.ServerLimitCnt # 全服限制数量 + def GetID(self): return self.attrTuple[0] # ID DWORD + def GetShopType(self): return self.attrTuple[1] # 商店类型 DWORD + def GetRefreshType(self): return self.attrTuple[2] # 刷新类型 0-不重置,1-onWeek0点,2-onWeek5点,3-OnDay0点,4-OnDay5点 BYTE + def GetServerLimitCnt(self): return self.attrTuple[3] # 全服限制数量 DWORD # 许愿池活动时间表 class IPY_ActWishingWell(): def __init__(self): - self.CfgID = 0 - self.ServerGroupIDList = [] - self.ServerGroupIDListExcept = [] - self.StartDate = "" - self.EndDate = "" - self.IsDayReset = 0 - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.LVLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器组ID列表 - def GetServerGroupIDListExcept(self): return self.ServerGroupIDListExcept # 排除的服务器组ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetServerGroupIDList(self): return self.attrTuple[1] # 服务器组ID列表 list + def GetServerGroupIDListExcept(self): return self.attrTuple[2] # 排除的服务器组ID列表 list + def GetStartDate(self): return self.attrTuple[3] # 开启日期 char + def GetEndDate(self): return self.attrTuple[4] # 结束日期 char + def GetIsDayReset(self): return self.attrTuple[5] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[6] # 重置类型,0-0点重置;1-5点重置 BYTE + def GetNotifyInfoStart(self): return self.attrTuple[7] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[8] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[9] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetLVLimit(self): return self.attrTuple[10] # 限制等级 WORD # 充值返利活动表 class IPY_ActRechargePrize(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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 # 累计充值返利仙玉活动表 class IPY_ActRechargeRebateGold(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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 # 成长必买活动表 class IPY_ActGrowupBuy(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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 # 单笔累充活动表 class IPY_ActSingleRecharge(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE # 转盘活动表 class IPY_ActTurntable(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + 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 GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE # 多日连充活动表 class IPY_ActManyDayRecharge(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list # 累计充值活动表 class IPY_ActTotalRecharge(): def __init__(self): - self.CfgID = 0 - self.PlatformList = [] - self.ServerGroupIDList = [] - self.ActNum = 0 - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.IsDayReset = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetActNum(self): return self.ActNum # 活动分组编号, 活动类型 * 10 + 不同界面编号 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetNotifyInfoStart(self): return self.attrTuple[6] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[7] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[8] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetIsDayReset(self): return self.attrTuple[9] # 是否每天重置 BYTE # 跨服分区表通用 class IPY_CrossZoneComm(): def __init__(self): - self.CrossZoneName = "" - self.ZoneID = 0 - self.ServerGroupIDList = [] + self.attrTuple = None return - def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名 - def GetZoneID(self): return self.ZoneID # 赛区ID - def GetServerGroupIDList(self): return self.ServerGroupIDList # 赛区服务器组ID列表 + def GetCrossZoneName(self): return self.attrTuple[0] # 跨服分区名 char + def GetZoneID(self): return self.attrTuple[1] # 赛区ID BYTE + def GetServerGroupIDList(self): return self.attrTuple[2] # 赛区服务器组ID列表 list + +# 跨服分区表古神战场 +class IPY_CrossZoneBattlefield(): + + def __init__(self): + self.attrTuple = None + return + + def GetCrossZoneName(self): return self.attrTuple[0] # 跨服分区名 char + def GetZoneID(self): return self.attrTuple[1] # 赛区ID BYTE + def GetServerGroupIDList(self): return self.attrTuple[2] # 赛区服务器组ID列表 list # 跨服分区表竞技场 class IPY_CrossZonePK(): def __init__(self): - self.CrossZoneName = "" - self.ZoneID = 0 - self.ZoneName = "" - self.ServerGroupIDList = [] + self.attrTuple = None return - def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名 - def GetZoneID(self): return self.ZoneID # 赛区ID - def GetZoneName(self): return self.ZoneName # 赛区名字 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 赛区服务器组ID列表 + def GetCrossZoneName(self): return self.attrTuple[0] # 跨服分区名 char + def GetZoneID(self): return self.attrTuple[1] # 赛区ID BYTE + def GetZoneName(self): return self.attrTuple[2] # 赛区名字 char + def GetServerGroupIDList(self): return self.attrTuple[3] # 赛区服务器组ID列表 list + +# 跨服排位赛流程表 +class IPY_ChampionshipTime(): + + def __init__(self): + self.attrTuple = None + return + + def GetID(self): return self.attrTuple[0] # DWORD + def GetStartDay(self): return self.attrTuple[1] # 开始天 BYTE + def GetStartHour(self): return self.attrTuple[2] # 开始时 BYTE + def GetStartMinute(self): return self.attrTuple[3] # 开始分 BYTE + def GetEndDay(self): return self.attrTuple[4] # 结束天 BYTE + def GetEndHour(self): return self.attrTuple[5] # 结束时 BYTE + def GetEndMinute(self): return self.attrTuple[6] # 结束分 BYTE + def GetStateValue(self): return self.attrTuple[7] # 状态值 WORD + def GetNotifyInfo(self): return self.attrTuple[8] # 广播提示信息 dict + +# 跨服排位奖励表 +class IPY_ChampionshipRank(): + + def __init__(self): + self.attrTuple = None + return + + def GetRank(self): return self.attrTuple[0] # 名次 BYTE + def GetRankAwardItemList(self): return self.attrTuple[1] # 名次奖励物品列表 list + def GetMainOfficialID(self): return self.attrTuple[2] # 主官职ID WORD + def GetXiangongID(self): return self.attrTuple[3] # 晋升仙宫ID WORD + +# 跨服排位官职表 +class IPY_ChampionshipOfficial(): + + def __init__(self): + self.attrTuple = None + return + + def GetOfficialID(self): return self.attrTuple[0] # 官职ID WORD + def GetJuniorOfficialIDList(self): return self.attrTuple[1] # 下级官职ID列表 list + def GetDailyAwardItemList(self): return self.attrTuple[2] # 官职每日邮件奖励物品列表 list + def GetCanBeReplace(self): return self.attrTuple[3] # 是否可被挑战替换 BYTE # 跨服竞技场赛季表 class IPY_CrossRealmPKSeason(): def __init__(self): - self.CrossZoneName = "" - self.ZoneID = 0 - self.SeasonID = 0 - self.StartDate = "" - self.EndDate = "" - self.EndTime = "" + self.attrTuple = None return - def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名 - def GetZoneID(self): return self.ZoneID # 赛区ID - def GetSeasonID(self): return self.SeasonID # 赛季ID - def GetStartDate(self): return self.StartDate # 开始日期 yyyy-MM-dd - def GetEndDate(self): return self.EndDate # 结束日期 yyyy-MM-dd - def GetEndTime(self): return self.EndTime # 结算时间 hh:mm + def GetCrossZoneName(self): return self.attrTuple[0] # 跨服分区名 char + def GetZoneID(self): return self.attrTuple[1] # 赛区ID BYTE + def GetSeasonID(self): return self.attrTuple[2] # 赛季ID WORD + def GetStartDate(self): return self.attrTuple[3] # 开始日期 yyyy-MM-dd char + def GetEndDate(self): return self.attrTuple[4] # 结束日期 yyyy-MM-dd char + def GetEndTime(self): return self.attrTuple[5] # 结算时间 hh:mm char # 跨服竞技场段位表 class IPY_CrossRealmPKDan(): def __init__(self): - self.DanLV = 0 - self.LVUpScore = 0 - self.MatchRobotRate = 0 - self.MatchRobotRateEx = 0 + self.attrTuple = None return - def GetDanLV(self): return self.DanLV # 段位等级 - def GetLVUpScore(self): return self.LVUpScore # 升段位所需积分 - def GetMatchRobotRate(self): return self.MatchRobotRate # 匹配机器人基础概率,百分率 - def GetMatchRobotRateEx(self): return self.MatchRobotRateEx # 匹配机器人失败次数附加概率,百分率 + def GetDanLV(self): return self.attrTuple[0] # 段位等级 BYTE + def GetLVUpScore(self): return self.attrTuple[1] # 升段位所需积分 WORD + def GetMatchRobotRate(self): return self.attrTuple[2] # 匹配机器人基础概率,百分率 BYTE + def GetMatchRobotRateEx(self): return self.attrTuple[3] # 匹配机器人失败次数附加概率,百分率 BYTE # 跨服Boss蓬莱仙境分区地图表 class IPY_CrossPenglaiZoneMap(): def __init__(self): - self.ZoneID = 0 - self.MapID = 0 - self.DataMapID = 0 - self.CopyMapID = 0 + self.attrTuple = None return - def GetZoneID(self): return self.ZoneID # 分区ID - def GetMapID(self): return self.MapID # 场景地图ID - def GetDataMapID(self): return self.DataMapID # 数据地图ID - def GetCopyMapID(self): return self.CopyMapID # 虚拟线路ID + def GetZoneID(self): return self.attrTuple[0] # 分区ID BYTE + def GetMapID(self): return self.attrTuple[1] # 场景地图ID DWORD + def GetDataMapID(self): return self.attrTuple[2] # 数据地图ID DWORD + def GetCopyMapID(self): return self.attrTuple[3] # 虚拟线路ID BYTE + +# 跨服Boss魔化之地分区地图表 +class IPY_CrossDemonLandZoneMap(): + + def __init__(self): + self.attrTuple = None + return + + def GetZoneID(self): return self.attrTuple[0] # 分区ID BYTE + def GetMapID(self): return self.attrTuple[1] # 场景地图ID DWORD + def GetDataMapID(self): return self.attrTuple[2] # 数据地图ID DWORD + def GetCopyMapID(self): return self.attrTuple[3] # 虚拟线路ID BYTE + +# 跨服分区地图逐鹿万界 +class IPY_CrossFamilyFlagwarZoneMap(): + + def __init__(self): + self.attrTuple = None + return + + def GetZoneID(self): return self.attrTuple[0] # 分区ID BYTE + def GetMapID(self): return self.attrTuple[1] # 场景地图ID DWORD + def GetDataMapID(self): return self.attrTuple[2] # 数据地图ID DWORD + def GetCopyMapID(self): return self.attrTuple[3] # 虚拟线路ID BYTE # 周狂欢活动时间表 class IPY_ActWeekParty(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.AdvanceMinutes = 0 - self.IsDayReset = 0 - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.LVLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetAdvanceMinutes(self): return self.attrTuple[6] # 前端提前X分钟展示活动 WORD + def GetIsDayReset(self): return self.attrTuple[7] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[8] # 重置类型,0-0点重置;1-5点重置 BYTE + def GetNotifyInfoStart(self): return self.attrTuple[9] # 全服提示信息 - 相对开始时间 dict + 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 __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 GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[7] # 重置类型,0-0点重置;1-5点重置 BYTE + +# 任务活动时间表 +class IPY_ActTask(): + + def __init__(self): + self.attrTuple = None + return + + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetPlatformList(self): return self.attrTuple[1] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[2] # 服务器ID列表 list + def GetActNum(self): return self.attrTuple[3] # 活动分组编号, 活动类型 * 10 + 不同界面编号 BYTE + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetIsDayReset(self): return self.attrTuple[6] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[7] # 重置类型,0-0点重置;1-5点重置 BYTE + +# 登录活动奖励时间表新 +class IPY_ActLoginNew(): + + 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 # 登录奖励时间表 class IPY_ActLoginAward(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.AdvanceMinutes = 0 - self.IsDayReset = 0 - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.LVLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetAdvanceMinutes(self): return self.attrTuple[6] # 前端提前X分钟展示活动 WORD + def GetIsDayReset(self): return self.attrTuple[7] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[8] # 重置类型,0-0点重置;1-5点重置 BYTE + def GetNotifyInfoStart(self): return self.attrTuple[9] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[10] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[11] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetLVLimit(self): return self.attrTuple[12] # 限制等级 WORD # 节日巡礼活动时间表 class IPY_ActFeastWeekParty(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.AdvanceMinutes = 0 - self.IsDayReset = 0 - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.LVLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动 - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + def GetStartDate(self): return self.attrTuple[4] # 开启日期 char + def GetEndDate(self): return self.attrTuple[5] # 结束日期 char + def GetAdvanceMinutes(self): return self.attrTuple[6] # 前端提前X分钟展示活动 WORD + def GetIsDayReset(self): return self.attrTuple[7] # 是否每天重置 BYTE + def GetResetType(self): return self.attrTuple[8] # 重置类型,0-0点重置;1-5点重置 BYTE + def GetNotifyInfoStart(self): return self.attrTuple[9] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[10] # 全服提示信息 - 相对结束时间 dict + def GetLVLimit(self): return self.attrTuple[11] # 限制等级 WORD # 新仙界盛典活动时间表 class IPY_ActNewFairyCeremony(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.LVLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置;2-5点开始0点结束 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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点重置;2-5点开始0点结束 BYTE + def GetNotifyInfoStart(self): return self.attrTuple[7] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[8] # 全服提示信息 - 相对结束时间 dict + def GetLVLimit(self): return self.attrTuple[9] # 限制等级 WORD # 新仙界盛典-绝版降临表 class IPY_NewUniquenessArrive(): def __init__(self): - self.WorldLvNum = 0 - self.Rank = 0 - self.Award = {} + self.attrTuple = None return - def GetWorldLvNum(self): return self.WorldLvNum # 世界等级档 - def GetRank(self): return self.Rank # 排名 - def GetAward(self): return self.Award # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...} + def GetWorldLvNum(self): return self.attrTuple[0] # 世界等级档 BYTE + def GetRank(self): return self.attrTuple[1] # 排名 DWORD + def GetAward(self): return self.attrTuple[2] # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...} dict # 情缘礼物表 class IPY_LoveGift(): def __init__(self): - self.GiftNum = 0 - self.AddCharmSelf = 0 - self.AddCharmTag = 0 - self.AddIntimacy = 0 - self.WorldNotifyKey = "" + self.attrTuple = None return - def GetGiftNum(self): return self.GiftNum # 聘礼ID - def GetAddCharmSelf(self): return self.AddCharmSelf # 单个增加自身魅力 - def GetAddCharmTag(self): return self.AddCharmTag # 单个增加对方魅力 - def GetAddIntimacy(self): return self.AddIntimacy # 单个增加双方亲密度 - def GetWorldNotifyKey(self): return self.WorldNotifyKey # 广播key + def GetGiftNum(self): return self.attrTuple[0] # 聘礼ID BYTE + def GetAddCharmSelf(self): return self.attrTuple[1] # 单个增加自身魅力 float + def GetAddCharmTag(self): return self.attrTuple[2] # 单个增加对方魅力 float + def GetAddIntimacy(self): return self.attrTuple[3] # 单个增加双方亲密度 DWORD + def GetWorldNotifyKey(self): return self.attrTuple[4] # 广播key char # 情缘提亲表 class IPY_Marry(): def __init__(self): - self.BridePriceID = 0 - self.CanBuyCount = 0 - self.IsDayReset = 0 - self.Prosperity = 0 - self.CandyTimes = 0 - self.CandyItemWeightInfo = [] - self.CandyNotifyItemInfo = [] - self.BrideGiftItemInfo = [] - self.WorldNotifyKey = "" + self.attrTuple = None return - def GetBridePriceID(self): return self.BridePriceID # 聘礼ID - def GetCanBuyCount(self): return self.CanBuyCount # 可购买次数 - def GetIsDayReset(self): return self.IsDayReset # 是否每日重置 - def GetProsperity(self): return self.Prosperity # 初始繁荣度 - def GetCandyTimes(self): return self.CandyTimes # 喜糖持续时间秒 - def GetCandyItemWeightInfo(self): return self.CandyItemWeightInfo # 喜糖物品库权重列表[[权重, 物品ID,个数,是否拍品], ...] - def GetCandyNotifyItemInfo(self): return self.CandyNotifyItemInfo # 喜糖需要广播的物品ID列表 - def GetBrideGiftItemInfo(self): return self.BrideGiftItemInfo # 聘礼物品列表[[物品ID,个数,是否拍品], ...] - def GetWorldNotifyKey(self): return self.WorldNotifyKey # 广播key + def GetBridePriceID(self): return self.attrTuple[0] # 聘礼ID BYTE + def GetCanBuyCount(self): return self.attrTuple[1] # 可购买次数 BYTE + def GetIsDayReset(self): return self.attrTuple[2] # 是否每日重置 BYTE + def GetProsperity(self): return self.attrTuple[3] # 初始繁荣度 DWORD + def GetCandyTimes(self): return self.attrTuple[4] # 喜糖持续时间秒 WORD + def GetCandyItemWeightInfo(self): return self.attrTuple[5] # 喜糖物品库权重列表[[权重, 物品ID,个数,是否拍品], ...] list + def GetCandyNotifyItemInfo(self): return self.attrTuple[6] # 喜糖需要广播的物品ID列表 list + def GetBrideGiftItemInfo(self): return self.attrTuple[7] # 聘礼物品列表[[物品ID,个数,是否拍品], ...] list + def GetWorldNotifyKey(self): return self.attrTuple[8] # 广播key char # 幸运鉴宝活动时间表 class IPY_ActLuckyTreasure(): def __init__(self): - self.CfgID = 0 - self.ActMark = "" - self.PlatformList = [] - self.ServerGroupIDList = [] - self.StartDate = "" - self.EndDate = "" - self.ResetType = 0 - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.LVLimit = 0 + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActMark(self): return self.ActMark # 活动组标记 - def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有 - def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表 - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key] - def GetLVLimit(self): return self.LVLimit # 限制等级 + def GetCfgID(self): return self.attrTuple[0] # 配置ID DWORD + def GetActMark(self): return self.attrTuple[1] # 活动组标记 char + def GetPlatformList(self): return self.attrTuple[2] # 活动平台列表["平台A", "平台A", ...],配[]代表所有 list + def GetServerGroupIDList(self): return self.attrTuple[3] # 服务器ID列表 list + 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 + def GetNotifyInfoStart(self): return self.attrTuple[7] # 全服提示信息 - 相对开始时间 dict + def GetNotifyInfoEnd(self): return self.attrTuple[8] # 全服提示信息 - 相对结束时间 dict + def GetNotifyInfoLoop(self): return self.attrTuple[9] # 全服提示信息 - 循环广播[间隔分钟, 广播key] list + def GetLVLimit(self): return self.attrTuple[10] # 限制等级 WORD + +# 跨服幸运云购表 +class IPY_CrossActLuckyCloudBuy(): + + 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 GetStartTimeList(self): return self.attrTuple[6] # 开启时间列表, 支持多个时段 list + def GetEndTimeList(self): return self.attrTuple[7] # 结束时间列表, 支持多个时段 list + def GetRoundMaxList(self): return self.attrTuple[8] # 开启轮次列表 list + def GetLVLimit(self): return self.attrTuple[9] # 限制等级 WORD + def GetTemplateIDList(self): return self.attrTuple[10] # 模板ID列表 list + +# 跨服幸运云购模板表 +class IPY_CrossActLuckyCloudBuyTemplate(): + + def __init__(self): + self.attrTuple = None + return + + def GetTemplateID(self): return self.attrTuple[0] # 模板ID DWORD + def GetBaseAwardInfo(self): return self.attrTuple[1] # 每次购买固定奖励 [[物品ID,个数,是否拍品], ...] list + def GetRandAwardWeightInfo(self): return self.attrTuple[2] # 每次购买随机奖励权重信息 [[权重,物品ID,个数,是否拍品], ...] list + def GetSuperItemWeightInfo(self): return self.attrTuple[3] # 大奖随机权重信息 [[权重,物品ID,个数,是否拍品,价值货币类型,货币值], ...] list + +# 跨服全民充值时间表 +class IPY_CrossActAllRecharge(): + + 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 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 GetTemplateIDList(self): return self.attrTuple[9] # 模板ID列表 list + +# 跨服全民充值模板表 +class IPY_CrossActAllRechargeTemplate(): + + def __init__(self): + self.attrTuple = None + return + + def GetTemplateID(self): return self.attrTuple[0] # 模板ID DWORD + def GetCTGNeed(self): return self.attrTuple[1] # 全民充值RMB DWORD + def GetNeedPlayerCount(self): return self.attrTuple[2] # 所需充值达到该档玩家数 WORD + def GetAwardIndex(self): return self.attrTuple[3] # 奖励记录索引,从0开始,同个模板不可重复,不可变更 BYTE + def GetAwardItemList(self): return self.attrTuple[4] # 奖励物品列表[[物品ID,个数,是否拍品], ...] list # 跨服充值排行活动时间表 class IPY_CrossActCTGBillboard(): def __init__(self): - self.CfgID = 0 - self.ActGroupName = "" - self.ServerIDRangeList = [] - self.StartDate = "" - self.EndDate = "" - self.NotifyInfoStart = {} - self.NotifyInfoEnd = {} - self.NotifyInfoLoop = [] - self.IsDayReset = 0 - self.TemplateIDList = [] + self.attrTuple = None return - def GetCfgID(self): return self.CfgID # 配置ID - def GetActGroupName(self): return self.ActGroupName # 活动组名(同组活动的名字需相同) - def GetServerIDRangeList(self): return self.ServerIDRangeList # 活动的账号服务器ID范围列表 [[serverIDA, serverIDB], ...] - def GetStartDate(self): return self.StartDate # 开启日期 - def GetEndDate(self): return self.EndDate # 结束日期 - def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间 - def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间 - def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[循环分钟, 广播key, [广播参数列表可选]] - def GetIsDayReset(self): return self.IsDayReset # 是否每天重置 - def GetTemplateIDList(self): return self.TemplateIDList # 模板ID列表 + 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 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 GetTemplateIDList(self): return self.attrTuple[10] # 模板ID列表 list # 跨服充值排行模板名次奖励表 class IPY_CrossActCTGBillboardOrder(): def __init__(self): - self.TemplateID = 0 - self.OrderA = 0 - self.OrderB = 0 - self.CTGAtleast = 0.0 - self.AwardItemList = [] + self.attrTuple = None return - def GetTemplateID(self): return self.TemplateID # 模板ID - def GetOrderA(self): return self.OrderA # 名次A - def GetOrderB(self): return self.OrderB # 至名次B - def GetCTGAtleast(self): return self.CTGAtleast # 至少充值RMB - def GetAwardItemList(self): return self.AwardItemList # 奖励物品列表[[物品ID,个数,是否拍品], ...] + def GetTemplateID(self): return self.attrTuple[0] # 模板ID DWORD + def GetOrderA(self): return self.attrTuple[1] # 名次A WORD + def GetOrderB(self): return self.attrTuple[2] # 至名次B WORD + def GetCTGAtleast(self): return self.attrTuple[3] # 至少充值RMB float + def GetAwardItemList(self): return self.attrTuple[4] # 奖励物品列表[[物品ID,个数,是否拍品], ...] list # 装备升星表 class IPY_EquipStarUp(): def __init__(self): - self.ClassLV = 0 - self.EquipPlace = 0 - self.Star = 0 - self.CostEquipPlace = [] - self.IsJobLimit = 0 - self.CostEquipColor = [] - self.UnSuitRate = 0 + self.attrTuple = None return - def GetClassLV(self): return self.ClassLV # 阶级 - def GetEquipPlace(self): return self.EquipPlace # 装备位 - def GetStar(self): return self.Star # 星数 - def GetCostEquipPlace(self): return self.CostEquipPlace # 可用装备部位 - def GetIsJobLimit(self): return self.IsJobLimit # 是否只用本职业装备材料 - def GetCostEquipColor(self): return self.CostEquipColor # 可用装备品质 - def GetUnSuitRate(self): return self.UnSuitRate # 单件非套装加成概率 + def GetClassLV(self): return self.attrTuple[0] # 阶级 BYTE + def GetEquipPlace(self): return self.attrTuple[1] # 装备位 BYTE + def GetStar(self): return self.attrTuple[2] # 星数 BYTE + def GetCostEquipPlace(self): return self.attrTuple[3] # 可用装备部位 list + def GetIsJobLimit(self): return self.attrTuple[4] # 是否只用本职业装备材料 BYTE + def GetCostEquipColor(self): return self.attrTuple[5] # 可用装备品质 list + def GetUnSuitRate(self): return self.attrTuple[6] # 单件非套装加成概率 BYTE + +# 福地物品表 +class IPY_MineAreaItem(): + + def __init__(self): + self.attrTuple = None + return + + def GetMineID(self): return self.attrTuple[0] # 矿物ID BYTE + def GetLimitLV(self): return self.attrTuple[1] # 解锁等级 WORD + def GetItemID(self): return self.attrTuple[2] # 物品ID DWORD + def GetItemLV(self): return self.attrTuple[3] # 物品等级 BYTE + def GetItemCount(self): return self.attrTuple[4] # 物品个数 DWORD + def GetItemWeight(self): return self.attrTuple[5] # 物品总重量 float + def GetRefreshWeightSys(self): return self.attrTuple[6] # 系统刷新权重 DWORD + def GetRefreshWeight(self): return self.attrTuple[7] # 常规刷新权重 DWORD + def GetRefreshWeightSuper(self): return self.attrTuple[8] # 超级刷新权重 DWORD # 仙盟联赛排名奖励表 class IPY_FamilyWarRankAward(): def __init__(self): - self.WarWorldLV = 0 - self.WarRank = 0 - self.RankAuctionItem = [] + self.attrTuple = None return - def GetWarWorldLV(self): return self.WarWorldLV # 联赛世界等级 - def GetWarRank(self): return self.WarRank # 联赛排名 - def GetRankAuctionItem(self): return self.RankAuctionItem # 拍品奖励[[拍品ID,个数], ...] + def GetWarWorldLV(self): return self.attrTuple[0] # 联赛世界等级 WORD + def GetWarRank(self): return self.attrTuple[1] # 联赛排名 BYTE + def GetRankAuctionItem(self): return self.attrTuple[2] # 拍品奖励[[拍品ID,个数], ...] list # 协助感谢礼盒表 class IPY_AssistThanksGift(): def __init__(self): - self.GiftID = 0 - self.AssistAwardCount = 0 + self.attrTuple = None return - def GetGiftID(self): return self.GiftID # 礼盒物品ID - def GetAssistAwardCount(self): return self.AssistAwardCount # 协助奖励每日次数 + def GetGiftID(self): return self.attrTuple[0] # 礼盒物品ID DWORD + def GetAssistAwardCount(self): return self.attrTuple[1] # 协助奖励每日次数 BYTE + +# 膜拜表 +class IPY_Worship(): + + def __init__(self): + self.attrTuple = None + return + + def GetWorshipType(self): return self.attrTuple[0] # 膜拜类型 BYTE + def GetWorshipValue(self): return self.attrTuple[1] # 膜拜值 DWORD + def GetWorshipDays(self): return self.attrTuple[2] # 膜拜天数 BYTE + def GetMoneyType(self): return self.attrTuple[3] # 膜拜货币类型 BYTE + def GetMoneyRange(self): return self.attrTuple[4] # 货币值范围 list + +# 仙宫表 +class IPY_Xiangong(): + + def __init__(self): + self.attrTuple = None + return + + def GetXiangongID(self): return self.attrTuple[0] # 仙宫ID WORD + def GetShowDays(self): return self.attrTuple[1] # 展示天数 BYTE + def GetMoneyType(self): return self.attrTuple[2] # 点赞货币类型 BYTE + def GetMoneyValue(self): return self.attrTuple[3] # 货币值 DWORD + def GetTitleID(self): return self.attrTuple[4] # 称号ID DWORD + def GetAwardItemList(self): return self.attrTuple[5] # 晋级仙宫奖励物品列表 list + def GetMailKey(self): return self.attrTuple[6] # 仙官通知邮件 char + def GetWorshipType(self): return self.attrTuple[7] # 膜拜类型 BYTE + def GetWorshipValue(self): return self.attrTuple[8] # 膜拜值 DWORD # 缥缈仙域表 class IPY_FairyDomain(): def __init__(self): - self.ID = 0 - self.HourCntPubLimit = 0 - self.DayCntPubLimit = 0 + self.attrTuple = None return - def GetID(self): return self.ID # 事件编号 - def GetHourCntPubLimit(self): return self.HourCntPubLimit # 全服每小时次数限制 - def GetDayCntPubLimit(self): return self.DayCntPubLimit # 全服每天次数限制 + def GetID(self): return self.attrTuple[0] # 事件编号 WORD + def GetHourCntPubLimit(self): return self.attrTuple[1] # 全服每小时次数限制 DWORD + def GetDayCntPubLimit(self): return self.attrTuple[2] # 全服每天次数限制 DWORD def Log(msg, playerID=0, par=0): @@ -2392,196 +3149,222 @@ class IPY_DataMgr(): def __init__(self): + Log("IPY_DataMgr Init...") self.fileMD5Dict = {} # 数据表文件md5字典, 用于对比文件差异判断是否重读 {dtName:md5, ...} self.ipyConfigEx = {} # 自定义数据缓存 {key:configData, ...} self.ipyDataIndexMap = {} # 数据表索引查询缓存 {dtName:{args:[index, ...], ...}, ...} self.ipyDataIndexMapEx = {} # 数据表自定义查询条件查询缓存 {dtName_(findKey,...):{(findKeyValue, ...):[index, ...], ...}, ...} self.ipyFuncConfigDict = {} # 功能配置表缓存 {key:IPY_FuncConfig, ...} + self.classSizeDict = {} # 数据表类对象占用内存大小 {dtName:size, ...} + self.IpyDataClear(True) + return + + def Recycle(self): + Log("IPY_DataMgr Recycle") + for tableName in Def_IpyTable.keys(): + if not hasattr(self, "ipy%sLen" % tableName): + continue + cacheList = getattr(self, "ipy%sCache" % tableName) + del cacheList + delattr(self, "ipy%sLen" % tableName) + delattr(self, "ipy%sCache" % tableName) + Log("Recycle IPY_%s" % tableName) + + del self.fileMD5Dict, self.ipyConfigEx, self.ipyDataIndexMap, self.ipyDataIndexMapEx, self.ipyFuncConfigDict, self.classSizeDict + self.fileMD5Dict = {} + self.ipyConfigEx = {} + self.ipyDataIndexMap = {} + self.ipyDataIndexMapEx = {} + self.ipyFuncConfigDict = {} + self.classSizeDict = {} + gc.collect() + return + + def LoadAll(self): + ## 加载全部数据,测试内存用,实际应用中不调用 + for tableName in Def_IpyTable.keys(): + setattr(self, "ipy%sLen" % tableName, 0) self.IpyDataClear() return - def IpyDataClear(self): - Log("IPY_DataMgr Init...") - self.ipyConfigEx = {} - self.ipyFuncConfigCache = self.__LoadFileData("FuncConfig", IPY_FuncConfig) - self.ipyFuncConfigLen = len(self.ipyFuncConfigCache) - self.ipyCreateRoleLimitServerCache = self.__LoadFileData("CreateRoleLimitServer", IPY_CreateRoleLimitServer) - self.ipyCreateRoleLimitServerLen = len(self.ipyCreateRoleLimitServerCache) - self.ipyWorldLVCache = self.__LoadFileData("WorldLV", IPY_WorldLV) - self.ipyWorldLVLen = len(self.ipyWorldLVCache) - self.ipyFamilyCache = self.__LoadFileData("Family", IPY_Family) - self.ipyFamilyLen = len(self.ipyFamilyCache) - self.ipyMarketQueryCache = self.__LoadFileData("MarketQuery", IPY_MarketQuery) - self.ipyMarketQueryLen = len(self.ipyMarketQueryCache) - self.ipyAuctionItemCache = self.__LoadFileData("AuctionItem", IPY_AuctionItem) - self.ipyAuctionItemLen = len(self.ipyAuctionItemCache) - self.ipyAuctionSystemItemCache = self.__LoadFileData("AuctionSystemItem", IPY_AuctionSystemItem) - self.ipyAuctionSystemItemLen = len(self.ipyAuctionSystemItemCache) - self.ipyDailyActionCache = self.__LoadFileData("DailyAction", IPY_DailyAction) - self.ipyDailyActionLen = len(self.ipyDailyActionCache) - self.ipyDailyActionCustomCache = self.__LoadFileData("DailyActionCustom", IPY_DailyActionCustom) - self.ipyDailyActionCustomLen = len(self.ipyDailyActionCustomCache) - self.ipyDailyActionCustomMixCache = self.__LoadFileData("DailyActionCustomMix", IPY_DailyActionCustomMix) - self.ipyDailyActionCustomMixLen = len(self.ipyDailyActionCustomMixCache) - self.ipyFBStateTimeCache = self.__LoadFileData("FBStateTime", IPY_FBStateTime) - self.ipyFBStateTimeLen = len(self.ipyFBStateTimeCache) - self.ipyFBStateTimeCustomCache = self.__LoadFileData("FBStateTimeCustom", IPY_FBStateTimeCustom) - self.ipyFBStateTimeCustomLen = len(self.ipyFBStateTimeCustomCache) - self.ipyFBStateTimeCustomMixCache = self.__LoadFileData("FBStateTimeCustomMix", IPY_FBStateTimeCustomMix) - self.ipyFBStateTimeCustomMixLen = len(self.ipyFBStateTimeCustomMixCache) - self.ipyFBFuncCache = self.__LoadFileData("FBFunc", IPY_FBFunc) - self.ipyFBFuncLen = len(self.ipyFBFuncCache) - self.ipyFBLineCache = self.__LoadFileData("FBLine", IPY_FBLine) - self.ipyFBLineLen = len(self.ipyFBLineCache) - self.ipyFBHelpBattleCache = self.__LoadFileData("FBHelpBattle", IPY_FBHelpBattle) - self.ipyFBHelpBattleLen = len(self.ipyFBHelpBattleCache) - self.ipyChinMapCache = self.__LoadFileData("ChinMap", IPY_ChinMap) - self.ipyChinMapLen = len(self.ipyChinMapCache) - self.ipyBOSSInfoCache = self.__LoadFileData("BOSSInfo", IPY_BOSSInfo) - self.ipyBOSSInfoLen = len(self.ipyBOSSInfoCache) - self.ipyBOSSFirstKillCache = self.__LoadFileData("BOSSFirstKill", IPY_BOSSFirstKill) - self.ipyBOSSFirstKillLen = len(self.ipyBOSSFirstKillCache) - self.ipyQuestionBankCache = self.__LoadFileData("QuestionBank", IPY_QuestionBank) - self.ipyQuestionBankLen = len(self.ipyQuestionBankCache) - self.ipyFamilyRedPackCache = self.__LoadFileData("FamilyRedPack", IPY_FamilyRedPack) - self.ipyFamilyRedPackLen = len(self.ipyFamilyRedPackCache) - self.ipyActFeastRedPacketCache = self.__LoadFileData("ActFeastRedPacket", IPY_ActFeastRedPacket) - self.ipyActFeastRedPacketLen = len(self.ipyActFeastRedPacketCache) - self.ipyActFeastLoginCache = self.__LoadFileData("ActFeastLogin", IPY_ActFeastLogin) - self.ipyActFeastLoginLen = len(self.ipyActFeastLoginCache) - self.ipyActFeastWishCache = self.__LoadFileData("ActFeastWish", IPY_ActFeastWish) - self.ipyActFeastWishLen = len(self.ipyActFeastWishCache) - self.ipyActFeastTravelCache = self.__LoadFileData("ActFeastTravel", IPY_ActFeastTravel) - self.ipyActFeastTravelLen = len(self.ipyActFeastTravelCache) - self.ipyFuncOpenLVCache = self.__LoadFileData("FuncOpenLV", IPY_FuncOpenLV) - self.ipyFuncOpenLVLen = len(self.ipyFuncOpenLVCache) - self.ipyChinNPCCache = self.__LoadFileData("ChinNPC", IPY_ChinNPC) - self.ipyChinNPCLen = len(self.ipyChinNPCCache) - self.ipyPlayerLVCache = self.__LoadFileData("PlayerLV", IPY_PlayerLV) - self.ipyPlayerLVLen = len(self.ipyPlayerLVCache) - self.ipyVipPrivilegeCache = self.__LoadFileData("VipPrivilege", IPY_VipPrivilege) - self.ipyVipPrivilegeLen = len(self.ipyVipPrivilegeCache) - self.ipyActSpringSaleCache = self.__LoadFileData("ActSpringSale", IPY_ActSpringSale) - self.ipyActSpringSaleLen = len(self.ipyActSpringSaleCache) - self.ipyActFlashGiftbagCache = self.__LoadFileData("ActFlashGiftbag", IPY_ActFlashGiftbag) - self.ipyActFlashGiftbagLen = len(self.ipyActFlashGiftbagCache) - self.ipyActDailyGiftbagCache = self.__LoadFileData("ActDailyGiftbag", IPY_ActDailyGiftbag) - self.ipyActDailyGiftbagLen = len(self.ipyActDailyGiftbagCache) - self.ipyActExpRateCache = self.__LoadFileData("ActExpRate", IPY_ActExpRate) - self.ipyActExpRateLen = len(self.ipyActExpRateCache) - self.ipyActCostRebateCache = self.__LoadFileData("ActCostRebate", IPY_ActCostRebate) - self.ipyActCostRebateLen = len(self.ipyActCostRebateCache) - self.ipyActCollectWordsCache = self.__LoadFileData("ActCollectWords", IPY_ActCollectWords) - self.ipyActCollectWordsLen = len(self.ipyActCollectWordsCache) - self.ipyActGarbageSortingCache = self.__LoadFileData("ActGarbageSorting", IPY_ActGarbageSorting) - self.ipyActGarbageSortingLen = len(self.ipyActGarbageSortingCache) - self.ipyActXianXiaMJCache = self.__LoadFileData("ActXianXiaMJ", IPY_ActXianXiaMJ) - self.ipyActXianXiaMJLen = len(self.ipyActXianXiaMJCache) - self.ipyActHorsePetFeastCache = self.__LoadFileData("ActHorsePetFeast", IPY_ActHorsePetFeast) - self.ipyActHorsePetFeastLen = len(self.ipyActHorsePetFeastCache) - self.ipyActBossRebornCache = self.__LoadFileData("ActBossReborn", IPY_ActBossReborn) - self.ipyActBossRebornLen = len(self.ipyActBossRebornCache) - self.ipyActFairyCeremonyCache = self.__LoadFileData("ActFairyCeremony", IPY_ActFairyCeremony) - self.ipyActFairyCeremonyLen = len(self.ipyActFairyCeremonyCache) - self.ipyUniquenessArriveCache = self.__LoadFileData("UniquenessArrive", IPY_UniquenessArrive) - self.ipyUniquenessArriveLen = len(self.ipyUniquenessArriveCache) - self.ipyActRealmPointCache = self.__LoadFileData("ActRealmPoint", IPY_ActRealmPoint) - self.ipyActRealmPointLen = len(self.ipyActRealmPointCache) - self.ipyActFlashSaleCache = self.__LoadFileData("ActFlashSale", IPY_ActFlashSale) - self.ipyActFlashSaleLen = len(self.ipyActFlashSaleCache) - self.ipyStoreCache = self.__LoadFileData("Store", IPY_Store) - self.ipyStoreLen = len(self.ipyStoreCache) - self.ipyActWishingWellCache = self.__LoadFileData("ActWishingWell", IPY_ActWishingWell) - self.ipyActWishingWellLen = len(self.ipyActWishingWellCache) - self.ipyActRechargePrizeCache = self.__LoadFileData("ActRechargePrize", IPY_ActRechargePrize) - self.ipyActRechargePrizeLen = len(self.ipyActRechargePrizeCache) - self.ipyActRechargeRebateGoldCache = self.__LoadFileData("ActRechargeRebateGold", IPY_ActRechargeRebateGold) - self.ipyActRechargeRebateGoldLen = len(self.ipyActRechargeRebateGoldCache) - self.ipyActGrowupBuyCache = self.__LoadFileData("ActGrowupBuy", IPY_ActGrowupBuy) - self.ipyActGrowupBuyLen = len(self.ipyActGrowupBuyCache) - self.ipyActSingleRechargeCache = self.__LoadFileData("ActSingleRecharge", IPY_ActSingleRecharge) - self.ipyActSingleRechargeLen = len(self.ipyActSingleRechargeCache) - self.ipyActTurntableCache = self.__LoadFileData("ActTurntable", IPY_ActTurntable) - self.ipyActTurntableLen = len(self.ipyActTurntableCache) - self.ipyActManyDayRechargeCache = self.__LoadFileData("ActManyDayRecharge", IPY_ActManyDayRecharge) - self.ipyActManyDayRechargeLen = len(self.ipyActManyDayRechargeCache) - self.ipyActTotalRechargeCache = self.__LoadFileData("ActTotalRecharge", IPY_ActTotalRecharge) - self.ipyActTotalRechargeLen = len(self.ipyActTotalRechargeCache) - self.ipyCrossZoneCommCache = self.__LoadFileData("CrossZoneComm", IPY_CrossZoneComm) - self.ipyCrossZoneCommLen = len(self.ipyCrossZoneCommCache) - self.ipyCrossZonePKCache = self.__LoadFileData("CrossZonePK", IPY_CrossZonePK) - self.ipyCrossZonePKLen = len(self.ipyCrossZonePKCache) - self.ipyCrossRealmPKSeasonCache = self.__LoadFileData("CrossRealmPKSeason", IPY_CrossRealmPKSeason) - self.ipyCrossRealmPKSeasonLen = len(self.ipyCrossRealmPKSeasonCache) - self.ipyCrossRealmPKDanCache = self.__LoadFileData("CrossRealmPKDan", IPY_CrossRealmPKDan) - self.ipyCrossRealmPKDanLen = len(self.ipyCrossRealmPKDanCache) - self.ipyCrossPenglaiZoneMapCache = self.__LoadFileData("CrossPenglaiZoneMap", IPY_CrossPenglaiZoneMap) - self.ipyCrossPenglaiZoneMapLen = len(self.ipyCrossPenglaiZoneMapCache) - self.ipyActWeekPartyCache = self.__LoadFileData("ActWeekParty", IPY_ActWeekParty) - self.ipyActWeekPartyLen = len(self.ipyActWeekPartyCache) - self.ipyActLoginAwardCache = self.__LoadFileData("ActLoginAward", IPY_ActLoginAward) - self.ipyActLoginAwardLen = len(self.ipyActLoginAwardCache) - self.ipyActFeastWeekPartyCache = self.__LoadFileData("ActFeastWeekParty", IPY_ActFeastWeekParty) - self.ipyActFeastWeekPartyLen = len(self.ipyActFeastWeekPartyCache) - self.ipyActNewFairyCeremonyCache = self.__LoadFileData("ActNewFairyCeremony", IPY_ActNewFairyCeremony) - self.ipyActNewFairyCeremonyLen = len(self.ipyActNewFairyCeremonyCache) - self.ipyNewUniquenessArriveCache = self.__LoadFileData("NewUniquenessArrive", IPY_NewUniquenessArrive) - self.ipyNewUniquenessArriveLen = len(self.ipyNewUniquenessArriveCache) - self.ipyLoveGiftCache = self.__LoadFileData("LoveGift", IPY_LoveGift) - self.ipyLoveGiftLen = len(self.ipyLoveGiftCache) - self.ipyMarryCache = self.__LoadFileData("Marry", IPY_Marry) - self.ipyMarryLen = len(self.ipyMarryCache) - self.ipyActLuckyTreasureCache = self.__LoadFileData("ActLuckyTreasure", IPY_ActLuckyTreasure) - self.ipyActLuckyTreasureLen = len(self.ipyActLuckyTreasureCache) - self.ipyCrossActCTGBillboardCache = self.__LoadFileData("CrossActCTGBillboard", IPY_CrossActCTGBillboard) - self.ipyCrossActCTGBillboardLen = len(self.ipyCrossActCTGBillboardCache) - self.ipyCrossActCTGBillboardOrderCache = self.__LoadFileData("CrossActCTGBillboardOrder", IPY_CrossActCTGBillboardOrder) - self.ipyCrossActCTGBillboardOrderLen = len(self.ipyCrossActCTGBillboardOrderCache) - self.ipyEquipStarUpCache = self.__LoadFileData("EquipStarUp", IPY_EquipStarUp) - self.ipyEquipStarUpLen = len(self.ipyEquipStarUpCache) - self.ipyFamilyWarRankAwardCache = self.__LoadFileData("FamilyWarRankAward", IPY_FamilyWarRankAward) - self.ipyFamilyWarRankAwardLen = len(self.ipyFamilyWarRankAwardCache) - self.ipyAssistThanksGiftCache = self.__LoadFileData("AssistThanksGift", IPY_AssistThanksGift) - self.ipyAssistThanksGiftLen = len(self.ipyAssistThanksGiftCache) - self.ipyFairyDomainCache = self.__LoadFileData("FairyDomain", IPY_FairyDomain) - self.ipyFairyDomainLen = len(self.ipyFairyDomainCache) - Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict)) - Log("IPY_DataMgr InitOK!") + def IpyDataClear(self, onlyCheck=False): + Log("IPY_DataMgr Reload... onlyCheck=%s" % onlyCheck) + if not onlyCheck: + self.ipyConfigEx = {} + self.__LoadFileData("FuncConfig", onlyCheck) + self.__LoadFileData("CreateRoleLimitServer", onlyCheck) + self.__LoadFileData("PlayerFace", onlyCheck) + self.__LoadFileData("PlayerFacePic", onlyCheck) + 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("AuctionItem", onlyCheck) + self.__LoadFileData("AuctionSystemItem", onlyCheck) + self.__LoadFileData("CrossDailyAction", onlyCheck) + self.__LoadFileData("DailyAction", onlyCheck) + self.__LoadFileData("DailyActionCustom", onlyCheck) + self.__LoadFileData("DailyActionCustomMix", onlyCheck) + self.__LoadFileData("FBStateTime", onlyCheck) + self.__LoadFileData("FBStateTimeCustom", onlyCheck) + self.__LoadFileData("FBStateTimeCustomMix", onlyCheck) + self.__LoadFileData("FBFunc", onlyCheck) + self.__LoadFileData("FBLine", onlyCheck) + self.__LoadFileData("FBHelpBattle", onlyCheck) + self.__LoadFileData("FuncTeamSet", onlyCheck) + self.__LoadFileData("ChinMap", onlyCheck) + self.__LoadFileData("BOSSInfo", onlyCheck) + self.__LoadFileData("BOSSFirstKill", onlyCheck) + self.__LoadFileData("OSCBillRankAward", onlyCheck) + self.__LoadFileData("QuestionBank", onlyCheck) + self.__LoadFileData("FamilyRedPack", onlyCheck) + self.__LoadFileData("ActFeastRedPacket", onlyCheck) + self.__LoadFileData("ActFeastLogin", onlyCheck) + self.__LoadFileData("ActFeastWish", onlyCheck) + self.__LoadFileData("ActFeastTravel", onlyCheck) + self.__LoadFileData("FuncOpenLV", onlyCheck) + self.__LoadFileData("ChinItem", onlyCheck) + self.__LoadFileData("ChinNPC", onlyCheck) + self.__LoadFileData("PlayerLV", onlyCheck) + self.__LoadFileData("VipPrivilege", onlyCheck) + self.__LoadFileData("ActSpringSale", onlyCheck) + self.__LoadFileData("ActFlashGiftbag", onlyCheck) + self.__LoadFileData("ActDailyGiftbag", onlyCheck) + self.__LoadFileData("ActExpRate", onlyCheck) + self.__LoadFileData("ActCostRebate", onlyCheck) + self.__LoadFileData("ActBuyOne", onlyCheck) + self.__LoadFileData("ActFamilyCTGAssist", onlyCheck) + self.__LoadFileData("ActCollectWords", onlyCheck) + self.__LoadFileData("ActGarbageSorting", onlyCheck) + self.__LoadFileData("ActBossTrial", onlyCheck) + self.__LoadFileData("ActBossTrialTemplate", onlyCheck) + self.__LoadFileData("CrossActBossTrial", onlyCheck) + self.__LoadFileData("ActHorsePetTrain", onlyCheck) + self.__LoadFileData("CrossActHorsePetTrain", onlyCheck) + self.__LoadFileData("ActHorsePetTrainBillTemp", onlyCheck) + self.__LoadFileData("ActGubao", onlyCheck) + self.__LoadFileData("CrossActGubao", onlyCheck) + self.__LoadFileData("ActGubaoBillTemp", onlyCheck) + self.__LoadFileData("CrossActLianqi", onlyCheck) + self.__LoadFileData("ActLianqiBillTemp", onlyCheck) + self.__LoadFileData("ActTimeFlow", onlyCheck) + self.__LoadFileData("ActBillboardAwardTemp", onlyCheck) + self.__LoadFileData("ActGuess", onlyCheck) + self.__LoadFileData("CrossActFamilyGCZ", onlyCheck) + self.__LoadFileData("CrossActFamilyGCZCampLV", onlyCheck) + self.__LoadFileData("ActXianXiaMJ", onlyCheck) + self.__LoadFileData("CrossActXianXiaMJ", onlyCheck) + self.__LoadFileData("ActXianXiaMJBillTemp", onlyCheck) + self.__LoadFileData("ActGodGift", onlyCheck) + self.__LoadFileData("ActHorsePetFeast", onlyCheck) + self.__LoadFileData("ActBossReborn", onlyCheck) + self.__LoadFileData("ActFairyCeremony", onlyCheck) + self.__LoadFileData("UniquenessArrive", onlyCheck) + self.__LoadFileData("ActRealmPoint", onlyCheck) + self.__LoadFileData("ActFlashSale", onlyCheck) + self.__LoadFileData("Store", onlyCheck) + self.__LoadFileData("ActWishingWell", onlyCheck) + self.__LoadFileData("ActRechargePrize", onlyCheck) + self.__LoadFileData("ActRechargeRebateGold", onlyCheck) + self.__LoadFileData("ActGrowupBuy", onlyCheck) + self.__LoadFileData("ActSingleRecharge", onlyCheck) + self.__LoadFileData("ActTurntable", onlyCheck) + self.__LoadFileData("ActManyDayRecharge", onlyCheck) + self.__LoadFileData("ActTotalRecharge", onlyCheck) + self.__LoadFileData("CrossZoneComm", onlyCheck) + self.__LoadFileData("CrossZoneBattlefield", onlyCheck) + self.__LoadFileData("CrossZonePK", onlyCheck) + self.__LoadFileData("ChampionshipTime", onlyCheck) + self.__LoadFileData("ChampionshipRank", onlyCheck) + self.__LoadFileData("ChampionshipOfficial", onlyCheck) + self.__LoadFileData("CrossRealmPKSeason", onlyCheck) + self.__LoadFileData("CrossRealmPKDan", onlyCheck) + self.__LoadFileData("CrossPenglaiZoneMap", 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) + self.__LoadFileData("ActLoginAward", onlyCheck) + self.__LoadFileData("ActFeastWeekParty", onlyCheck) + self.__LoadFileData("ActNewFairyCeremony", onlyCheck) + self.__LoadFileData("NewUniquenessArrive", onlyCheck) + self.__LoadFileData("LoveGift", onlyCheck) + self.__LoadFileData("Marry", onlyCheck) + self.__LoadFileData("ActLuckyTreasure", onlyCheck) + self.__LoadFileData("CrossActLuckyCloudBuy", onlyCheck) + self.__LoadFileData("CrossActLuckyCloudBuyTemplate", onlyCheck) + self.__LoadFileData("CrossActAllRecharge", onlyCheck) + self.__LoadFileData("CrossActAllRechargeTemplate", onlyCheck) + self.__LoadFileData("CrossActCTGBillboard", onlyCheck) + self.__LoadFileData("CrossActCTGBillboardOrder", onlyCheck) + self.__LoadFileData("EquipStarUp", onlyCheck) + self.__LoadFileData("MineAreaItem", onlyCheck) + self.__LoadFileData("FamilyWarRankAward", onlyCheck) + self.__LoadFileData("AssistThanksGift", onlyCheck) + self.__LoadFileData("Worship", onlyCheck) + self.__LoadFileData("Xiangong", onlyCheck) + self.__LoadFileData("FairyDomain", onlyCheck) + Log("IPY_DataMgr ReloadOK! onlyCheck=%s" % onlyCheck) return - def __LoadFileData(self, tableName, Class): + def CheckLoadData(self, dtName): + if hasattr(self, "ipy%sLen" % dtName): + return + setattr(self, "ipy%sLen" % dtName, 0) # 设置该属性,通过判断是否有该属性决定是否加载 + self.__LoadFileData(dtName) + return + + def __LoadFileData(self, tableName, onlyCheck=False): + # @param onlyCheck: 是否仅检查格式,一般启动时用 curPath = ChConfig.GetAppPath() + "\\PySysDB\\tag" + tableName + ".txt" if not os.path.isfile(curPath): ErrLog("can not find file = %s,%s" % (tableName, curPath)) raise Exception("can not find file = %s,%s" % (tableName, curPath)) + if not onlyCheck: + if not hasattr(self, "ipy%sLen" % tableName): + # 没有该属性的不加载 + return + fileObj = open(curPath, 'rb') content = fileObj.read() fileObj.close() - md5_obj = hashlib.md5() - md5_obj.update(content) - newMD5Code = md5_obj.hexdigest() - if tableName in self.fileMD5Dict: - oldMD5Code = self.fileMD5Dict[tableName] - if newMD5Code == oldMD5Code: - return getattr(self, "ipy%sCache" % tableName) + if not onlyCheck: + md5_obj = hashlib.md5() + md5_obj.update(content) + newMD5Code = md5_obj.hexdigest() + if tableName in self.fileMD5Dict: + oldMD5Code = self.fileMD5Dict[tableName] + if newMD5Code == oldMD5Code: + return getattr(self, "ipy%sCache" % tableName) + + if tableName in self.ipyDataIndexMap: + self.ipyDataIndexMap.pop(tableName) + for dtName_Findkey in self.ipyDataIndexMapEx.keys(): + findStr = "%s_" % tableName + if findStr in dtName_Findkey: + self.ipyDataIndexMapEx.pop(dtName_Findkey) + if tableName == "FuncConfig": + self.ipyFuncConfigDict = {} + self.fileMD5Dict[tableName] = newMD5Code - if tableName in self.ipyDataIndexMap: - self.ipyDataIndexMap.pop(tableName) - for dtName_Findkey in self.ipyDataIndexMapEx.keys(): - findStr = "%s_" % tableName - if findStr in dtName_Findkey: - self.ipyDataIndexMapEx.pop(dtName_Findkey) - if tableName == "FuncConfig": - self.ipyFuncConfigDict = {} - self.fileMD5Dict[tableName] = newMD5Code - dataIndex = 0 indexDict = {} cacheList = [] fieldList = Def_IpyTable[tableName] infoList = content.split('\r\n') + curClassSizeTotal = 0 + dataCount = 0 + Class = eval("IPY_%s" % tableName) for line in xrange(len(infoList)): if line == 0: continue @@ -2592,27 +3375,43 @@ if len(fieldList) != len(rowList): ErrLog("field count error!, %s, line=%s, len=%s,rowCount=%s" % (tableName, line, len(fieldList), len(rowList))) raise Exception("field count error!, %s, line=%s, len=%s,rowCount=%s" % (tableName, line,len(fieldList), len(rowList))) - + if tableName == "FuncConfig": + classObj = self.__LoadFuncConfigData(fieldList, rowList, onlyCheck) + dataCount += 1 + if onlyCheck: + continue + curClassSizeTotal += ChConfig.GetSizeof(classObj) + continue try: indexKey = [] - classObj = Class() + valueList = [] for j, value in enumerate(rowList): fieldType, fieldName, isIndex = fieldList[j] if fieldType == "char": 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": attrValue = float(value) else: attrValue = 0 if not value.isdigit() else int(value) - setattr(classObj, "%s" % fieldName, attrValue) + valueList.append(attrValue) if isIndex: indexKey.append(attrValue) + dataCount += 1 + if onlyCheck: + continue + classObj = Class() + setattr(classObj, "attrTuple", tuple(valueList)) + curClassSizeTotal += ChConfig.GetSizeof(classObj) cacheList.append(classObj) indexKey = tuple(indexKey) indexList = indexDict.get(indexKey, []) @@ -2622,22 +3421,26 @@ except BaseException: ErrLog("SetIpyDataError: tableName=%s,line=%s,fieldName=%s,fieldType=%s,value=%s" % (tableName, line, fieldName, fieldType, value)) raise - if tableName == "FuncConfig": - self.__LoadFuncConfigData(fieldList, rowList) + if onlyCheck: + Log("CheckIpydata: %s, dataCount=%s OK" % (tableName, dataCount)) + return if tableName != "FuncConfig": self.ipyDataIndexMap[tableName] = indexDict - Log("LoadIpydata: %s, content count=%s" % (tableName, len(cacheList))) - return cacheList + self.classSizeDict[tableName] = curClassSizeTotal + classSizeTotal = sum(self.classSizeDict.values()) + alreadyLoad = len(self.classSizeDict) + setattr(self, "ipy%sCache" % tableName, cacheList) + setattr(self, "ipy%sLen" % tableName, len(cacheList)) + Log("LoadIpydata: %s, dataCount=%s, alreadyLoad=%s" % (tableName, dataCount, alreadyLoad), curClassSizeTotal, classSizeTotal) + return - def __LoadFuncConfigData(self, fieldList, rowList): - funcConfigObj = IPY_FuncConfig() + def __LoadFuncConfigData(self, fieldList, rowList, onlyCheck): key = rowList[0] - funcConfigObj.Key = key + valueList = [key] for i, strValue in enumerate(rowList): if i == 0: continue try: - fieldName = fieldList[i][1] strValue = strValue.lstrip().rstrip() if strValue.isdigit(): configValue = int(strValue) @@ -2656,9 +3459,15 @@ except BaseException: ErrLog("SetIpyDataError: tableName=%s,key=%s,i=%s,value=%s" % ("FuncConfig", key, i, strValue)) raise - setattr(funcConfigObj, fieldName, configValue) + if onlyCheck: + continue + valueList.append(configValue) + if onlyCheck: + return + funcConfigObj = IPY_FuncConfig() + setattr(funcConfigObj, "attrTuple", tuple(valueList)) self.ipyFuncConfigDict[key] = funcConfigObj - return + return funcConfigObj def __ToFloat(self, strValue): try: @@ -2711,148 +3520,853 @@ setList = tuple(setList) return setList - def GetFuncConfigCount(self): return self.ipyFuncConfigLen - def GetFuncConfigByIndex(self, index): return self.ipyFuncConfigCache[index] - def GetCreateRoleLimitServerCount(self): return self.ipyCreateRoleLimitServerLen - def GetCreateRoleLimitServerByIndex(self, index): return self.ipyCreateRoleLimitServerCache[index] - def GetWorldLVCount(self): return self.ipyWorldLVLen - def GetWorldLVByIndex(self, index): return self.ipyWorldLVCache[index] - def GetFamilyCount(self): return self.ipyFamilyLen - def GetFamilyByIndex(self, index): return self.ipyFamilyCache[index] - def GetMarketQueryCount(self): return self.ipyMarketQueryLen - def GetMarketQueryByIndex(self, index): return self.ipyMarketQueryCache[index] - def GetAuctionItemCount(self): return self.ipyAuctionItemLen - def GetAuctionItemByIndex(self, index): return self.ipyAuctionItemCache[index] - def GetAuctionSystemItemCount(self): return self.ipyAuctionSystemItemLen - def GetAuctionSystemItemByIndex(self, index): return self.ipyAuctionSystemItemCache[index] - def GetDailyActionCount(self): return self.ipyDailyActionLen - def GetDailyActionByIndex(self, index): return self.ipyDailyActionCache[index] - def GetDailyActionCustomCount(self): return self.ipyDailyActionCustomLen - def GetDailyActionCustomByIndex(self, index): return self.ipyDailyActionCustomCache[index] - def GetDailyActionCustomMixCount(self): return self.ipyDailyActionCustomMixLen - def GetDailyActionCustomMixByIndex(self, index): return self.ipyDailyActionCustomMixCache[index] - def GetFBStateTimeCount(self): return self.ipyFBStateTimeLen - def GetFBStateTimeByIndex(self, index): return self.ipyFBStateTimeCache[index] - def GetFBStateTimeCustomCount(self): return self.ipyFBStateTimeCustomLen - def GetFBStateTimeCustomByIndex(self, index): return self.ipyFBStateTimeCustomCache[index] - def GetFBStateTimeCustomMixCount(self): return self.ipyFBStateTimeCustomMixLen - def GetFBStateTimeCustomMixByIndex(self, index): return self.ipyFBStateTimeCustomMixCache[index] - def GetFBFuncCount(self): return self.ipyFBFuncLen - def GetFBFuncByIndex(self, index): return self.ipyFBFuncCache[index] - def GetFBLineCount(self): return self.ipyFBLineLen - def GetFBLineByIndex(self, index): return self.ipyFBLineCache[index] - def GetFBHelpBattleCount(self): return self.ipyFBHelpBattleLen - def GetFBHelpBattleByIndex(self, index): return self.ipyFBHelpBattleCache[index] - def GetChinMapCount(self): return self.ipyChinMapLen - def GetChinMapByIndex(self, index): return self.ipyChinMapCache[index] - def GetBOSSInfoCount(self): return self.ipyBOSSInfoLen - def GetBOSSInfoByIndex(self, index): return self.ipyBOSSInfoCache[index] - def GetBOSSFirstKillCount(self): return self.ipyBOSSFirstKillLen - def GetBOSSFirstKillByIndex(self, index): return self.ipyBOSSFirstKillCache[index] - def GetQuestionBankCount(self): return self.ipyQuestionBankLen - def GetQuestionBankByIndex(self, index): return self.ipyQuestionBankCache[index] - def GetFamilyRedPackCount(self): return self.ipyFamilyRedPackLen - def GetFamilyRedPackByIndex(self, index): return self.ipyFamilyRedPackCache[index] - def GetActFeastRedPacketCount(self): return self.ipyActFeastRedPacketLen - def GetActFeastRedPacketByIndex(self, index): return self.ipyActFeastRedPacketCache[index] - def GetActFeastLoginCount(self): return self.ipyActFeastLoginLen - def GetActFeastLoginByIndex(self, index): return self.ipyActFeastLoginCache[index] - def GetActFeastWishCount(self): return self.ipyActFeastWishLen - def GetActFeastWishByIndex(self, index): return self.ipyActFeastWishCache[index] - def GetActFeastTravelCount(self): return self.ipyActFeastTravelLen - def GetActFeastTravelByIndex(self, index): return self.ipyActFeastTravelCache[index] - def GetFuncOpenLVCount(self): return self.ipyFuncOpenLVLen - def GetFuncOpenLVByIndex(self, index): return self.ipyFuncOpenLVCache[index] - def GetChinNPCCount(self): return self.ipyChinNPCLen - def GetChinNPCByIndex(self, index): return self.ipyChinNPCCache[index] - def GetPlayerLVCount(self): return self.ipyPlayerLVLen - def GetPlayerLVByIndex(self, index): return self.ipyPlayerLVCache[index] - def GetVipPrivilegeCount(self): return self.ipyVipPrivilegeLen - def GetVipPrivilegeByIndex(self, index): return self.ipyVipPrivilegeCache[index] - def GetActSpringSaleCount(self): return self.ipyActSpringSaleLen - def GetActSpringSaleByIndex(self, index): return self.ipyActSpringSaleCache[index] - def GetActFlashGiftbagCount(self): return self.ipyActFlashGiftbagLen - def GetActFlashGiftbagByIndex(self, index): return self.ipyActFlashGiftbagCache[index] - def GetActDailyGiftbagCount(self): return self.ipyActDailyGiftbagLen - def GetActDailyGiftbagByIndex(self, index): return self.ipyActDailyGiftbagCache[index] - def GetActExpRateCount(self): return self.ipyActExpRateLen - def GetActExpRateByIndex(self, index): return self.ipyActExpRateCache[index] - def GetActCostRebateCount(self): return self.ipyActCostRebateLen - def GetActCostRebateByIndex(self, index): return self.ipyActCostRebateCache[index] - def GetActCollectWordsCount(self): return self.ipyActCollectWordsLen - def GetActCollectWordsByIndex(self, index): return self.ipyActCollectWordsCache[index] - def GetActGarbageSortingCount(self): return self.ipyActGarbageSortingLen - def GetActGarbageSortingByIndex(self, index): return self.ipyActGarbageSortingCache[index] - def GetActXianXiaMJCount(self): return self.ipyActXianXiaMJLen - def GetActXianXiaMJByIndex(self, index): return self.ipyActXianXiaMJCache[index] - def GetActHorsePetFeastCount(self): return self.ipyActHorsePetFeastLen - def GetActHorsePetFeastByIndex(self, index): return self.ipyActHorsePetFeastCache[index] - def GetActBossRebornCount(self): return self.ipyActBossRebornLen - def GetActBossRebornByIndex(self, index): return self.ipyActBossRebornCache[index] - def GetActFairyCeremonyCount(self): return self.ipyActFairyCeremonyLen - def GetActFairyCeremonyByIndex(self, index): return self.ipyActFairyCeremonyCache[index] - def GetUniquenessArriveCount(self): return self.ipyUniquenessArriveLen - def GetUniquenessArriveByIndex(self, index): return self.ipyUniquenessArriveCache[index] - def GetActRealmPointCount(self): return self.ipyActRealmPointLen - def GetActRealmPointByIndex(self, index): return self.ipyActRealmPointCache[index] - def GetActFlashSaleCount(self): return self.ipyActFlashSaleLen - def GetActFlashSaleByIndex(self, index): return self.ipyActFlashSaleCache[index] - def GetStoreCount(self): return self.ipyStoreLen - def GetStoreByIndex(self, index): return self.ipyStoreCache[index] - def GetActWishingWellCount(self): return self.ipyActWishingWellLen - def GetActWishingWellByIndex(self, index): return self.ipyActWishingWellCache[index] - def GetActRechargePrizeCount(self): return self.ipyActRechargePrizeLen - def GetActRechargePrizeByIndex(self, index): return self.ipyActRechargePrizeCache[index] - def GetActRechargeRebateGoldCount(self): return self.ipyActRechargeRebateGoldLen - def GetActRechargeRebateGoldByIndex(self, index): return self.ipyActRechargeRebateGoldCache[index] - def GetActGrowupBuyCount(self): return self.ipyActGrowupBuyLen - def GetActGrowupBuyByIndex(self, index): return self.ipyActGrowupBuyCache[index] - def GetActSingleRechargeCount(self): return self.ipyActSingleRechargeLen - def GetActSingleRechargeByIndex(self, index): return self.ipyActSingleRechargeCache[index] - def GetActTurntableCount(self): return self.ipyActTurntableLen - def GetActTurntableByIndex(self, index): return self.ipyActTurntableCache[index] - def GetActManyDayRechargeCount(self): return self.ipyActManyDayRechargeLen - def GetActManyDayRechargeByIndex(self, index): return self.ipyActManyDayRechargeCache[index] - def GetActTotalRechargeCount(self): return self.ipyActTotalRechargeLen - def GetActTotalRechargeByIndex(self, index): return self.ipyActTotalRechargeCache[index] - def GetCrossZoneCommCount(self): return self.ipyCrossZoneCommLen - def GetCrossZoneCommByIndex(self, index): return self.ipyCrossZoneCommCache[index] - def GetCrossZonePKCount(self): return self.ipyCrossZonePKLen - def GetCrossZonePKByIndex(self, index): return self.ipyCrossZonePKCache[index] - def GetCrossRealmPKSeasonCount(self): return self.ipyCrossRealmPKSeasonLen - def GetCrossRealmPKSeasonByIndex(self, index): return self.ipyCrossRealmPKSeasonCache[index] - def GetCrossRealmPKDanCount(self): return self.ipyCrossRealmPKDanLen - def GetCrossRealmPKDanByIndex(self, index): return self.ipyCrossRealmPKDanCache[index] - def GetCrossPenglaiZoneMapCount(self): return self.ipyCrossPenglaiZoneMapLen - def GetCrossPenglaiZoneMapByIndex(self, index): return self.ipyCrossPenglaiZoneMapCache[index] - def GetActWeekPartyCount(self): return self.ipyActWeekPartyLen - def GetActWeekPartyByIndex(self, index): return self.ipyActWeekPartyCache[index] - def GetActLoginAwardCount(self): return self.ipyActLoginAwardLen - def GetActLoginAwardByIndex(self, index): return self.ipyActLoginAwardCache[index] - def GetActFeastWeekPartyCount(self): return self.ipyActFeastWeekPartyLen - def GetActFeastWeekPartyByIndex(self, index): return self.ipyActFeastWeekPartyCache[index] - def GetActNewFairyCeremonyCount(self): return self.ipyActNewFairyCeremonyLen - def GetActNewFairyCeremonyByIndex(self, index): return self.ipyActNewFairyCeremonyCache[index] - def GetNewUniquenessArriveCount(self): return self.ipyNewUniquenessArriveLen - def GetNewUniquenessArriveByIndex(self, index): return self.ipyNewUniquenessArriveCache[index] - def GetLoveGiftCount(self): return self.ipyLoveGiftLen - def GetLoveGiftByIndex(self, index): return self.ipyLoveGiftCache[index] - def GetMarryCount(self): return self.ipyMarryLen - def GetMarryByIndex(self, index): return self.ipyMarryCache[index] - def GetActLuckyTreasureCount(self): return self.ipyActLuckyTreasureLen - def GetActLuckyTreasureByIndex(self, index): return self.ipyActLuckyTreasureCache[index] - def GetCrossActCTGBillboardCount(self): return self.ipyCrossActCTGBillboardLen - def GetCrossActCTGBillboardByIndex(self, index): return self.ipyCrossActCTGBillboardCache[index] - def GetCrossActCTGBillboardOrderCount(self): return self.ipyCrossActCTGBillboardOrderLen - def GetCrossActCTGBillboardOrderByIndex(self, index): return self.ipyCrossActCTGBillboardOrderCache[index] - def GetEquipStarUpCount(self): return self.ipyEquipStarUpLen - def GetEquipStarUpByIndex(self, index): return self.ipyEquipStarUpCache[index] - def GetFamilyWarRankAwardCount(self): return self.ipyFamilyWarRankAwardLen - def GetFamilyWarRankAwardByIndex(self, index): return self.ipyFamilyWarRankAwardCache[index] - def GetAssistThanksGiftCount(self): return self.ipyAssistThanksGiftLen - def GetAssistThanksGiftByIndex(self, index): return self.ipyAssistThanksGiftCache[index] - def GetFairyDomainCount(self): return self.ipyFairyDomainLen - def GetFairyDomainByIndex(self, index): return self.ipyFairyDomainCache[index] + + def GetFuncConfigCount(self): + self.CheckLoadData("FuncConfig") + return self.ipyFuncConfigLen + def GetFuncConfigByIndex(self, index): + self.CheckLoadData("FuncConfig") + return self.ipyFuncConfigCache[index] + + def GetCreateRoleLimitServerCount(self): + self.CheckLoadData("CreateRoleLimitServer") + return self.ipyCreateRoleLimitServerLen + def GetCreateRoleLimitServerByIndex(self, index): + self.CheckLoadData("CreateRoleLimitServer") + return self.ipyCreateRoleLimitServerCache[index] + + def GetPlayerFaceCount(self): + self.CheckLoadData("PlayerFace") + return self.ipyPlayerFaceLen + def GetPlayerFaceByIndex(self, index): + self.CheckLoadData("PlayerFace") + return self.ipyPlayerFaceCache[index] + + def GetPlayerFacePicCount(self): + self.CheckLoadData("PlayerFacePic") + return self.ipyPlayerFacePicLen + def GetPlayerFacePicByIndex(self, index): + self.CheckLoadData("PlayerFacePic") + return self.ipyPlayerFacePicCache[index] + + def GetWorldLVCount(self): + self.CheckLoadData("WorldLV") + return self.ipyWorldLVLen + def GetWorldLVByIndex(self, index): + self.CheckLoadData("WorldLV") + return self.ipyWorldLVCache[index] + + def GetFamilyCount(self): + self.CheckLoadData("Family") + return self.ipyFamilyLen + def GetFamilyByIndex(self, index): + self.CheckLoadData("Family") + return self.ipyFamilyCache[index] + + def GetFamilyEmblemCount(self): + self.CheckLoadData("FamilyEmblem") + return self.ipyFamilyEmblemLen + 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") + return self.ipyFamilyBossHurtAwardLen + def GetFamilyBossHurtAwardByIndex(self, index): + self.CheckLoadData("FamilyBossHurtAward") + return self.ipyFamilyBossHurtAwardCache[index] + + def GetFamilyZhenfaCount(self): + self.CheckLoadData("FamilyZhenfa") + return self.ipyFamilyZhenfaLen + def GetFamilyZhenfaByIndex(self, index): + self.CheckLoadData("FamilyZhenfa") + return self.ipyFamilyZhenfaCache[index] + + def GetMarketQueryCount(self): + self.CheckLoadData("MarketQuery") + return self.ipyMarketQueryLen + def GetMarketQueryByIndex(self, index): + self.CheckLoadData("MarketQuery") + return self.ipyMarketQueryCache[index] + + def GetAuctionItemCount(self): + self.CheckLoadData("AuctionItem") + return self.ipyAuctionItemLen + def GetAuctionItemByIndex(self, index): + self.CheckLoadData("AuctionItem") + return self.ipyAuctionItemCache[index] + + def GetAuctionSystemItemCount(self): + self.CheckLoadData("AuctionSystemItem") + return self.ipyAuctionSystemItemLen + def GetAuctionSystemItemByIndex(self, index): + self.CheckLoadData("AuctionSystemItem") + return self.ipyAuctionSystemItemCache[index] + + def GetCrossDailyActionCount(self): + self.CheckLoadData("CrossDailyAction") + return self.ipyCrossDailyActionLen + def GetCrossDailyActionByIndex(self, index): + self.CheckLoadData("CrossDailyAction") + return self.ipyCrossDailyActionCache[index] + + def GetDailyActionCount(self): + self.CheckLoadData("DailyAction") + return self.ipyDailyActionLen + def GetDailyActionByIndex(self, index): + self.CheckLoadData("DailyAction") + return self.ipyDailyActionCache[index] + + def GetDailyActionCustomCount(self): + self.CheckLoadData("DailyActionCustom") + return self.ipyDailyActionCustomLen + def GetDailyActionCustomByIndex(self, index): + self.CheckLoadData("DailyActionCustom") + return self.ipyDailyActionCustomCache[index] + + def GetDailyActionCustomMixCount(self): + self.CheckLoadData("DailyActionCustomMix") + return self.ipyDailyActionCustomMixLen + def GetDailyActionCustomMixByIndex(self, index): + self.CheckLoadData("DailyActionCustomMix") + return self.ipyDailyActionCustomMixCache[index] + + def GetFBStateTimeCount(self): + self.CheckLoadData("FBStateTime") + return self.ipyFBStateTimeLen + def GetFBStateTimeByIndex(self, index): + self.CheckLoadData("FBStateTime") + return self.ipyFBStateTimeCache[index] + + def GetFBStateTimeCustomCount(self): + self.CheckLoadData("FBStateTimeCustom") + return self.ipyFBStateTimeCustomLen + def GetFBStateTimeCustomByIndex(self, index): + self.CheckLoadData("FBStateTimeCustom") + return self.ipyFBStateTimeCustomCache[index] + + def GetFBStateTimeCustomMixCount(self): + self.CheckLoadData("FBStateTimeCustomMix") + return self.ipyFBStateTimeCustomMixLen + def GetFBStateTimeCustomMixByIndex(self, index): + self.CheckLoadData("FBStateTimeCustomMix") + return self.ipyFBStateTimeCustomMixCache[index] + + def GetFBFuncCount(self): + self.CheckLoadData("FBFunc") + return self.ipyFBFuncLen + def GetFBFuncByIndex(self, index): + self.CheckLoadData("FBFunc") + return self.ipyFBFuncCache[index] + + def GetFBLineCount(self): + self.CheckLoadData("FBLine") + return self.ipyFBLineLen + def GetFBLineByIndex(self, index): + self.CheckLoadData("FBLine") + return self.ipyFBLineCache[index] + + def GetFBHelpBattleCount(self): + self.CheckLoadData("FBHelpBattle") + return self.ipyFBHelpBattleLen + def GetFBHelpBattleByIndex(self, index): + self.CheckLoadData("FBHelpBattle") + return self.ipyFBHelpBattleCache[index] + + def GetFuncTeamSetCount(self): + self.CheckLoadData("FuncTeamSet") + return self.ipyFuncTeamSetLen + def GetFuncTeamSetByIndex(self, index): + self.CheckLoadData("FuncTeamSet") + return self.ipyFuncTeamSetCache[index] + + def GetChinMapCount(self): + self.CheckLoadData("ChinMap") + return self.ipyChinMapLen + def GetChinMapByIndex(self, index): + self.CheckLoadData("ChinMap") + return self.ipyChinMapCache[index] + + def GetBOSSInfoCount(self): + self.CheckLoadData("BOSSInfo") + return self.ipyBOSSInfoLen + def GetBOSSInfoByIndex(self, index): + self.CheckLoadData("BOSSInfo") + return self.ipyBOSSInfoCache[index] + + def GetBOSSFirstKillCount(self): + self.CheckLoadData("BOSSFirstKill") + return self.ipyBOSSFirstKillLen + def GetBOSSFirstKillByIndex(self, index): + self.CheckLoadData("BOSSFirstKill") + return self.ipyBOSSFirstKillCache[index] + + def GetOSCBillRankAwardCount(self): + self.CheckLoadData("OSCBillRankAward") + return self.ipyOSCBillRankAwardLen + def GetOSCBillRankAwardByIndex(self, index): + self.CheckLoadData("OSCBillRankAward") + return self.ipyOSCBillRankAwardCache[index] + + def GetQuestionBankCount(self): + self.CheckLoadData("QuestionBank") + return self.ipyQuestionBankLen + def GetQuestionBankByIndex(self, index): + self.CheckLoadData("QuestionBank") + return self.ipyQuestionBankCache[index] + + def GetFamilyRedPackCount(self): + self.CheckLoadData("FamilyRedPack") + return self.ipyFamilyRedPackLen + def GetFamilyRedPackByIndex(self, index): + self.CheckLoadData("FamilyRedPack") + return self.ipyFamilyRedPackCache[index] + + def GetActFeastRedPacketCount(self): + self.CheckLoadData("ActFeastRedPacket") + return self.ipyActFeastRedPacketLen + def GetActFeastRedPacketByIndex(self, index): + self.CheckLoadData("ActFeastRedPacket") + return self.ipyActFeastRedPacketCache[index] + + def GetActFeastLoginCount(self): + self.CheckLoadData("ActFeastLogin") + return self.ipyActFeastLoginLen + def GetActFeastLoginByIndex(self, index): + self.CheckLoadData("ActFeastLogin") + return self.ipyActFeastLoginCache[index] + + def GetActFeastWishCount(self): + self.CheckLoadData("ActFeastWish") + return self.ipyActFeastWishLen + def GetActFeastWishByIndex(self, index): + self.CheckLoadData("ActFeastWish") + return self.ipyActFeastWishCache[index] + + def GetActFeastTravelCount(self): + self.CheckLoadData("ActFeastTravel") + return self.ipyActFeastTravelLen + def GetActFeastTravelByIndex(self, index): + self.CheckLoadData("ActFeastTravel") + return self.ipyActFeastTravelCache[index] + + def GetFuncOpenLVCount(self): + self.CheckLoadData("FuncOpenLV") + return self.ipyFuncOpenLVLen + def GetFuncOpenLVByIndex(self, index): + self.CheckLoadData("FuncOpenLV") + return self.ipyFuncOpenLVCache[index] + + def GetChinItemCount(self): + self.CheckLoadData("ChinItem") + return self.ipyChinItemLen + def GetChinItemByIndex(self, index): + self.CheckLoadData("ChinItem") + return self.ipyChinItemCache[index] + + def GetChinNPCCount(self): + self.CheckLoadData("ChinNPC") + return self.ipyChinNPCLen + def GetChinNPCByIndex(self, index): + self.CheckLoadData("ChinNPC") + return self.ipyChinNPCCache[index] + + def GetPlayerLVCount(self): + self.CheckLoadData("PlayerLV") + return self.ipyPlayerLVLen + def GetPlayerLVByIndex(self, index): + self.CheckLoadData("PlayerLV") + return self.ipyPlayerLVCache[index] + + def GetVipPrivilegeCount(self): + self.CheckLoadData("VipPrivilege") + return self.ipyVipPrivilegeLen + def GetVipPrivilegeByIndex(self, index): + self.CheckLoadData("VipPrivilege") + return self.ipyVipPrivilegeCache[index] + + def GetActSpringSaleCount(self): + self.CheckLoadData("ActSpringSale") + return self.ipyActSpringSaleLen + def GetActSpringSaleByIndex(self, index): + self.CheckLoadData("ActSpringSale") + return self.ipyActSpringSaleCache[index] + + def GetActFlashGiftbagCount(self): + self.CheckLoadData("ActFlashGiftbag") + return self.ipyActFlashGiftbagLen + def GetActFlashGiftbagByIndex(self, index): + self.CheckLoadData("ActFlashGiftbag") + return self.ipyActFlashGiftbagCache[index] + + def GetActDailyGiftbagCount(self): + self.CheckLoadData("ActDailyGiftbag") + return self.ipyActDailyGiftbagLen + def GetActDailyGiftbagByIndex(self, index): + self.CheckLoadData("ActDailyGiftbag") + return self.ipyActDailyGiftbagCache[index] + + def GetActExpRateCount(self): + self.CheckLoadData("ActExpRate") + return self.ipyActExpRateLen + def GetActExpRateByIndex(self, index): + self.CheckLoadData("ActExpRate") + return self.ipyActExpRateCache[index] + + def GetActCostRebateCount(self): + self.CheckLoadData("ActCostRebate") + return self.ipyActCostRebateLen + def GetActCostRebateByIndex(self, index): + self.CheckLoadData("ActCostRebate") + return self.ipyActCostRebateCache[index] + + def GetActBuyOneCount(self): + self.CheckLoadData("ActBuyOne") + return self.ipyActBuyOneLen + def GetActBuyOneByIndex(self, index): + self.CheckLoadData("ActBuyOne") + return self.ipyActBuyOneCache[index] + + def GetActFamilyCTGAssistCount(self): + self.CheckLoadData("ActFamilyCTGAssist") + return self.ipyActFamilyCTGAssistLen + def GetActFamilyCTGAssistByIndex(self, index): + self.CheckLoadData("ActFamilyCTGAssist") + return self.ipyActFamilyCTGAssistCache[index] + + def GetActCollectWordsCount(self): + self.CheckLoadData("ActCollectWords") + return self.ipyActCollectWordsLen + def GetActCollectWordsByIndex(self, index): + self.CheckLoadData("ActCollectWords") + return self.ipyActCollectWordsCache[index] + + def GetActGarbageSortingCount(self): + self.CheckLoadData("ActGarbageSorting") + return self.ipyActGarbageSortingLen + def GetActGarbageSortingByIndex(self, index): + self.CheckLoadData("ActGarbageSorting") + return self.ipyActGarbageSortingCache[index] + + def GetActBossTrialCount(self): + self.CheckLoadData("ActBossTrial") + return self.ipyActBossTrialLen + def GetActBossTrialByIndex(self, index): + self.CheckLoadData("ActBossTrial") + return self.ipyActBossTrialCache[index] + + def GetActBossTrialTemplateCount(self): + self.CheckLoadData("ActBossTrialTemplate") + return self.ipyActBossTrialTemplateLen + def GetActBossTrialTemplateByIndex(self, index): + self.CheckLoadData("ActBossTrialTemplate") + return self.ipyActBossTrialTemplateCache[index] + + def GetCrossActBossTrialCount(self): + self.CheckLoadData("CrossActBossTrial") + return self.ipyCrossActBossTrialLen + def GetCrossActBossTrialByIndex(self, index): + self.CheckLoadData("CrossActBossTrial") + return self.ipyCrossActBossTrialCache[index] + + def GetActHorsePetTrainCount(self): + self.CheckLoadData("ActHorsePetTrain") + return self.ipyActHorsePetTrainLen + def GetActHorsePetTrainByIndex(self, index): + self.CheckLoadData("ActHorsePetTrain") + return self.ipyActHorsePetTrainCache[index] + + def GetCrossActHorsePetTrainCount(self): + self.CheckLoadData("CrossActHorsePetTrain") + return self.ipyCrossActHorsePetTrainLen + def GetCrossActHorsePetTrainByIndex(self, index): + self.CheckLoadData("CrossActHorsePetTrain") + return self.ipyCrossActHorsePetTrainCache[index] + + def GetActHorsePetTrainBillTempCount(self): + self.CheckLoadData("ActHorsePetTrainBillTemp") + return self.ipyActHorsePetTrainBillTempLen + def GetActHorsePetTrainBillTempByIndex(self, index): + self.CheckLoadData("ActHorsePetTrainBillTemp") + return self.ipyActHorsePetTrainBillTempCache[index] + + def GetActGubaoCount(self): + self.CheckLoadData("ActGubao") + return self.ipyActGubaoLen + def GetActGubaoByIndex(self, index): + self.CheckLoadData("ActGubao") + return self.ipyActGubaoCache[index] + + def GetCrossActGubaoCount(self): + self.CheckLoadData("CrossActGubao") + return self.ipyCrossActGubaoLen + def GetCrossActGubaoByIndex(self, index): + self.CheckLoadData("CrossActGubao") + return self.ipyCrossActGubaoCache[index] + + def GetActGubaoBillTempCount(self): + self.CheckLoadData("ActGubaoBillTemp") + return self.ipyActGubaoBillTempLen + def GetActGubaoBillTempByIndex(self, index): + 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 GetActTimeFlowCount(self): + self.CheckLoadData("ActTimeFlow") + return self.ipyActTimeFlowLen + def GetActTimeFlowByIndex(self, index): + self.CheckLoadData("ActTimeFlow") + return self.ipyActTimeFlowCache[index] + + def GetActBillboardAwardTempCount(self): + self.CheckLoadData("ActBillboardAwardTemp") + return self.ipyActBillboardAwardTempLen + def GetActBillboardAwardTempByIndex(self, index): + self.CheckLoadData("ActBillboardAwardTemp") + return self.ipyActBillboardAwardTempCache[index] + + def GetActGuessCount(self): + self.CheckLoadData("ActGuess") + return self.ipyActGuessLen + def GetActGuessByIndex(self, index): + self.CheckLoadData("ActGuess") + return self.ipyActGuessCache[index] + + def GetCrossActFamilyGCZCount(self): + self.CheckLoadData("CrossActFamilyGCZ") + return self.ipyCrossActFamilyGCZLen + def GetCrossActFamilyGCZByIndex(self, index): + self.CheckLoadData("CrossActFamilyGCZ") + return self.ipyCrossActFamilyGCZCache[index] + + def GetCrossActFamilyGCZCampLVCount(self): + self.CheckLoadData("CrossActFamilyGCZCampLV") + return self.ipyCrossActFamilyGCZCampLVLen + def GetCrossActFamilyGCZCampLVByIndex(self, index): + self.CheckLoadData("CrossActFamilyGCZCampLV") + return self.ipyCrossActFamilyGCZCampLVCache[index] + + def GetActXianXiaMJCount(self): + self.CheckLoadData("ActXianXiaMJ") + return self.ipyActXianXiaMJLen + def GetActXianXiaMJByIndex(self, index): + self.CheckLoadData("ActXianXiaMJ") + return self.ipyActXianXiaMJCache[index] + + def GetCrossActXianXiaMJCount(self): + self.CheckLoadData("CrossActXianXiaMJ") + return self.ipyCrossActXianXiaMJLen + def GetCrossActXianXiaMJByIndex(self, index): + self.CheckLoadData("CrossActXianXiaMJ") + return self.ipyCrossActXianXiaMJCache[index] + + def GetActXianXiaMJBillTempCount(self): + self.CheckLoadData("ActXianXiaMJBillTemp") + return self.ipyActXianXiaMJBillTempLen + def GetActXianXiaMJBillTempByIndex(self, index): + self.CheckLoadData("ActXianXiaMJBillTemp") + return self.ipyActXianXiaMJBillTempCache[index] + + def GetActGodGiftCount(self): + self.CheckLoadData("ActGodGift") + return self.ipyActGodGiftLen + def GetActGodGiftByIndex(self, index): + self.CheckLoadData("ActGodGift") + return self.ipyActGodGiftCache[index] + + def GetActHorsePetFeastCount(self): + self.CheckLoadData("ActHorsePetFeast") + return self.ipyActHorsePetFeastLen + def GetActHorsePetFeastByIndex(self, index): + self.CheckLoadData("ActHorsePetFeast") + return self.ipyActHorsePetFeastCache[index] + + def GetActBossRebornCount(self): + self.CheckLoadData("ActBossReborn") + return self.ipyActBossRebornLen + def GetActBossRebornByIndex(self, index): + self.CheckLoadData("ActBossReborn") + return self.ipyActBossRebornCache[index] + + def GetActFairyCeremonyCount(self): + self.CheckLoadData("ActFairyCeremony") + return self.ipyActFairyCeremonyLen + def GetActFairyCeremonyByIndex(self, index): + self.CheckLoadData("ActFairyCeremony") + return self.ipyActFairyCeremonyCache[index] + + def GetUniquenessArriveCount(self): + self.CheckLoadData("UniquenessArrive") + return self.ipyUniquenessArriveLen + def GetUniquenessArriveByIndex(self, index): + self.CheckLoadData("UniquenessArrive") + return self.ipyUniquenessArriveCache[index] + + def GetActRealmPointCount(self): + self.CheckLoadData("ActRealmPoint") + return self.ipyActRealmPointLen + def GetActRealmPointByIndex(self, index): + self.CheckLoadData("ActRealmPoint") + return self.ipyActRealmPointCache[index] + + def GetActFlashSaleCount(self): + self.CheckLoadData("ActFlashSale") + return self.ipyActFlashSaleLen + def GetActFlashSaleByIndex(self, index): + self.CheckLoadData("ActFlashSale") + return self.ipyActFlashSaleCache[index] + + def GetStoreCount(self): + self.CheckLoadData("Store") + return self.ipyStoreLen + def GetStoreByIndex(self, index): + self.CheckLoadData("Store") + return self.ipyStoreCache[index] + + def GetActWishingWellCount(self): + self.CheckLoadData("ActWishingWell") + return self.ipyActWishingWellLen + def GetActWishingWellByIndex(self, index): + self.CheckLoadData("ActWishingWell") + return self.ipyActWishingWellCache[index] + + def GetActRechargePrizeCount(self): + self.CheckLoadData("ActRechargePrize") + return self.ipyActRechargePrizeLen + def GetActRechargePrizeByIndex(self, index): + self.CheckLoadData("ActRechargePrize") + return self.ipyActRechargePrizeCache[index] + + def GetActRechargeRebateGoldCount(self): + self.CheckLoadData("ActRechargeRebateGold") + return self.ipyActRechargeRebateGoldLen + def GetActRechargeRebateGoldByIndex(self, index): + self.CheckLoadData("ActRechargeRebateGold") + return self.ipyActRechargeRebateGoldCache[index] + + def GetActGrowupBuyCount(self): + self.CheckLoadData("ActGrowupBuy") + return self.ipyActGrowupBuyLen + def GetActGrowupBuyByIndex(self, index): + self.CheckLoadData("ActGrowupBuy") + return self.ipyActGrowupBuyCache[index] + + def GetActSingleRechargeCount(self): + self.CheckLoadData("ActSingleRecharge") + return self.ipyActSingleRechargeLen + def GetActSingleRechargeByIndex(self, index): + self.CheckLoadData("ActSingleRecharge") + return self.ipyActSingleRechargeCache[index] + + def GetActTurntableCount(self): + self.CheckLoadData("ActTurntable") + return self.ipyActTurntableLen + def GetActTurntableByIndex(self, index): + self.CheckLoadData("ActTurntable") + return self.ipyActTurntableCache[index] + + def GetActManyDayRechargeCount(self): + self.CheckLoadData("ActManyDayRecharge") + return self.ipyActManyDayRechargeLen + def GetActManyDayRechargeByIndex(self, index): + self.CheckLoadData("ActManyDayRecharge") + return self.ipyActManyDayRechargeCache[index] + + def GetActTotalRechargeCount(self): + self.CheckLoadData("ActTotalRecharge") + return self.ipyActTotalRechargeLen + def GetActTotalRechargeByIndex(self, index): + self.CheckLoadData("ActTotalRecharge") + return self.ipyActTotalRechargeCache[index] + + def GetCrossZoneCommCount(self): + self.CheckLoadData("CrossZoneComm") + return self.ipyCrossZoneCommLen + def GetCrossZoneCommByIndex(self, index): + self.CheckLoadData("CrossZoneComm") + return self.ipyCrossZoneCommCache[index] + + def GetCrossZoneBattlefieldCount(self): + self.CheckLoadData("CrossZoneBattlefield") + return self.ipyCrossZoneBattlefieldLen + def GetCrossZoneBattlefieldByIndex(self, index): + self.CheckLoadData("CrossZoneBattlefield") + return self.ipyCrossZoneBattlefieldCache[index] + + def GetCrossZonePKCount(self): + self.CheckLoadData("CrossZonePK") + return self.ipyCrossZonePKLen + def GetCrossZonePKByIndex(self, index): + self.CheckLoadData("CrossZonePK") + return self.ipyCrossZonePKCache[index] + + def GetChampionshipTimeCount(self): + self.CheckLoadData("ChampionshipTime") + return self.ipyChampionshipTimeLen + def GetChampionshipTimeByIndex(self, index): + self.CheckLoadData("ChampionshipTime") + return self.ipyChampionshipTimeCache[index] + + def GetChampionshipRankCount(self): + self.CheckLoadData("ChampionshipRank") + return self.ipyChampionshipRankLen + def GetChampionshipRankByIndex(self, index): + self.CheckLoadData("ChampionshipRank") + return self.ipyChampionshipRankCache[index] + + def GetChampionshipOfficialCount(self): + self.CheckLoadData("ChampionshipOfficial") + return self.ipyChampionshipOfficialLen + def GetChampionshipOfficialByIndex(self, index): + self.CheckLoadData("ChampionshipOfficial") + return self.ipyChampionshipOfficialCache[index] + + def GetCrossRealmPKSeasonCount(self): + self.CheckLoadData("CrossRealmPKSeason") + return self.ipyCrossRealmPKSeasonLen + def GetCrossRealmPKSeasonByIndex(self, index): + self.CheckLoadData("CrossRealmPKSeason") + return self.ipyCrossRealmPKSeasonCache[index] + + def GetCrossRealmPKDanCount(self): + self.CheckLoadData("CrossRealmPKDan") + return self.ipyCrossRealmPKDanLen + def GetCrossRealmPKDanByIndex(self, index): + self.CheckLoadData("CrossRealmPKDan") + return self.ipyCrossRealmPKDanCache[index] + + def GetCrossPenglaiZoneMapCount(self): + self.CheckLoadData("CrossPenglaiZoneMap") + return self.ipyCrossPenglaiZoneMapLen + def GetCrossPenglaiZoneMapByIndex(self, index): + self.CheckLoadData("CrossPenglaiZoneMap") + return self.ipyCrossPenglaiZoneMapCache[index] + + def GetCrossDemonLandZoneMapCount(self): + self.CheckLoadData("CrossDemonLandZoneMap") + return self.ipyCrossDemonLandZoneMapLen + def GetCrossDemonLandZoneMapByIndex(self, index): + self.CheckLoadData("CrossDemonLandZoneMap") + return self.ipyCrossDemonLandZoneMapCache[index] + + def GetCrossFamilyFlagwarZoneMapCount(self): + self.CheckLoadData("CrossFamilyFlagwarZoneMap") + return self.ipyCrossFamilyFlagwarZoneMapLen + def GetCrossFamilyFlagwarZoneMapByIndex(self, index): + self.CheckLoadData("CrossFamilyFlagwarZoneMap") + return self.ipyCrossFamilyFlagwarZoneMapCache[index] + + def GetActWeekPartyCount(self): + self.CheckLoadData("ActWeekParty") + return self.ipyActWeekPartyLen + def GetActWeekPartyByIndex(self, index): + 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 + def GetActBuyCountGiftByIndex(self, index): + self.CheckLoadData("ActBuyCountGift") + return self.ipyActBuyCountGiftCache[index] + + def GetActTaskCount(self): + self.CheckLoadData("ActTask") + return self.ipyActTaskLen + def GetActTaskByIndex(self, index): + self.CheckLoadData("ActTask") + return self.ipyActTaskCache[index] + + def GetActLoginNewCount(self): + self.CheckLoadData("ActLoginNew") + return self.ipyActLoginNewLen + def GetActLoginNewByIndex(self, index): + self.CheckLoadData("ActLoginNew") + return self.ipyActLoginNewCache[index] + + def GetActLoginAwardCount(self): + self.CheckLoadData("ActLoginAward") + return self.ipyActLoginAwardLen + def GetActLoginAwardByIndex(self, index): + self.CheckLoadData("ActLoginAward") + return self.ipyActLoginAwardCache[index] + + def GetActFeastWeekPartyCount(self): + self.CheckLoadData("ActFeastWeekParty") + return self.ipyActFeastWeekPartyLen + def GetActFeastWeekPartyByIndex(self, index): + self.CheckLoadData("ActFeastWeekParty") + return self.ipyActFeastWeekPartyCache[index] + + def GetActNewFairyCeremonyCount(self): + self.CheckLoadData("ActNewFairyCeremony") + return self.ipyActNewFairyCeremonyLen + def GetActNewFairyCeremonyByIndex(self, index): + self.CheckLoadData("ActNewFairyCeremony") + return self.ipyActNewFairyCeremonyCache[index] + + def GetNewUniquenessArriveCount(self): + self.CheckLoadData("NewUniquenessArrive") + return self.ipyNewUniquenessArriveLen + def GetNewUniquenessArriveByIndex(self, index): + self.CheckLoadData("NewUniquenessArrive") + return self.ipyNewUniquenessArriveCache[index] + + def GetLoveGiftCount(self): + self.CheckLoadData("LoveGift") + return self.ipyLoveGiftLen + def GetLoveGiftByIndex(self, index): + self.CheckLoadData("LoveGift") + return self.ipyLoveGiftCache[index] + + def GetMarryCount(self): + self.CheckLoadData("Marry") + return self.ipyMarryLen + def GetMarryByIndex(self, index): + self.CheckLoadData("Marry") + return self.ipyMarryCache[index] + + def GetActLuckyTreasureCount(self): + self.CheckLoadData("ActLuckyTreasure") + return self.ipyActLuckyTreasureLen + def GetActLuckyTreasureByIndex(self, index): + self.CheckLoadData("ActLuckyTreasure") + return self.ipyActLuckyTreasureCache[index] + + def GetCrossActLuckyCloudBuyCount(self): + self.CheckLoadData("CrossActLuckyCloudBuy") + return self.ipyCrossActLuckyCloudBuyLen + def GetCrossActLuckyCloudBuyByIndex(self, index): + self.CheckLoadData("CrossActLuckyCloudBuy") + return self.ipyCrossActLuckyCloudBuyCache[index] + + def GetCrossActLuckyCloudBuyTemplateCount(self): + self.CheckLoadData("CrossActLuckyCloudBuyTemplate") + return self.ipyCrossActLuckyCloudBuyTemplateLen + def GetCrossActLuckyCloudBuyTemplateByIndex(self, index): + self.CheckLoadData("CrossActLuckyCloudBuyTemplate") + return self.ipyCrossActLuckyCloudBuyTemplateCache[index] + + def GetCrossActAllRechargeCount(self): + self.CheckLoadData("CrossActAllRecharge") + return self.ipyCrossActAllRechargeLen + def GetCrossActAllRechargeByIndex(self, index): + self.CheckLoadData("CrossActAllRecharge") + return self.ipyCrossActAllRechargeCache[index] + + def GetCrossActAllRechargeTemplateCount(self): + self.CheckLoadData("CrossActAllRechargeTemplate") + return self.ipyCrossActAllRechargeTemplateLen + def GetCrossActAllRechargeTemplateByIndex(self, index): + self.CheckLoadData("CrossActAllRechargeTemplate") + return self.ipyCrossActAllRechargeTemplateCache[index] + + def GetCrossActCTGBillboardCount(self): + self.CheckLoadData("CrossActCTGBillboard") + return self.ipyCrossActCTGBillboardLen + def GetCrossActCTGBillboardByIndex(self, index): + self.CheckLoadData("CrossActCTGBillboard") + return self.ipyCrossActCTGBillboardCache[index] + + def GetCrossActCTGBillboardOrderCount(self): + self.CheckLoadData("CrossActCTGBillboardOrder") + return self.ipyCrossActCTGBillboardOrderLen + def GetCrossActCTGBillboardOrderByIndex(self, index): + self.CheckLoadData("CrossActCTGBillboardOrder") + return self.ipyCrossActCTGBillboardOrderCache[index] + + def GetEquipStarUpCount(self): + self.CheckLoadData("EquipStarUp") + return self.ipyEquipStarUpLen + def GetEquipStarUpByIndex(self, index): + self.CheckLoadData("EquipStarUp") + return self.ipyEquipStarUpCache[index] + + def GetMineAreaItemCount(self): + self.CheckLoadData("MineAreaItem") + return self.ipyMineAreaItemLen + def GetMineAreaItemByIndex(self, index): + self.CheckLoadData("MineAreaItem") + return self.ipyMineAreaItemCache[index] + + def GetFamilyWarRankAwardCount(self): + self.CheckLoadData("FamilyWarRankAward") + return self.ipyFamilyWarRankAwardLen + def GetFamilyWarRankAwardByIndex(self, index): + self.CheckLoadData("FamilyWarRankAward") + return self.ipyFamilyWarRankAwardCache[index] + + def GetAssistThanksGiftCount(self): + self.CheckLoadData("AssistThanksGift") + return self.ipyAssistThanksGiftLen + def GetAssistThanksGiftByIndex(self, index): + self.CheckLoadData("AssistThanksGift") + return self.ipyAssistThanksGiftCache[index] + + def GetWorshipCount(self): + self.CheckLoadData("Worship") + return self.ipyWorshipLen + def GetWorshipByIndex(self, index): + self.CheckLoadData("Worship") + return self.ipyWorshipCache[index] + + def GetXiangongCount(self): + self.CheckLoadData("Xiangong") + return self.ipyXiangongLen + def GetXiangongByIndex(self, index): + self.CheckLoadData("Xiangong") + return self.ipyXiangongCache[index] + + def GetFairyDomainCount(self): + self.CheckLoadData("FairyDomain") + return self.ipyFairyDomainLen + def GetFairyDomainByIndex(self, index): + self.CheckLoadData("FairyDomain") + return self.ipyFairyDomainCache[index] IPYData = IPY_DataMgr() def IPY_Data(): return IPYData @@ -2879,6 +4393,7 @@ @return: 对应查询条件的 ipyData 数据实例,只返回单个实例 @使用说明: IpyGameDataPY.GetIpyGameData(表名, 索引1查询值, 索引2查询值, … ) ''' + IPYData.CheckLoadData(dtName) if dtName not in IPYData.ipyDataIndexMap: ErrLog("Can not found ipyData dtName=%s" % (dtName)) return @@ -2896,6 +4411,7 @@ @return: 对应查询条件的 ipyData 数据实例列表 @使用说明: 与 GetIpyGameData 函数相同 ''' + IPYData.CheckLoadData(dtName) if dtName not in IPYData.ipyDataIndexMap: ErrLog("Can not found ipyDataList dtName=%s" % (dtName)) return @@ -2910,6 +4426,7 @@ def GetIpyGameDataNotLog(dtName, *args): '''与 GetIpyGameData 函数相同, 只是找不到数据时不会输出日志 ''' + IPYData.CheckLoadData(dtName) if dtName not in IPYData.ipyDataIndexMap: #ErrLog("Can not found ipyData dtName=%s" % (dtName)) return @@ -2923,6 +4440,7 @@ def GetIpyGameDataListNotLog(dtName, *args): '''与 GetIpyGameDataList 函数相同, 只是找不到数据时不会输出日志 ''' + IPYData.CheckLoadData(dtName) if dtName not in IPYData.ipyDataIndexMap: #ErrLog("Can not found ipyDataList dtName=%s" % (dtName)) return @@ -2942,6 +4460,7 @@ @param isLogNone: 找不到数据时是否数据日志,默认是 @return: 找不到数据时返回 None,有数据时根据参数是否返回列表返回对应的数据实例或数据实例列表 ''' + IPYData.CheckLoadData(dtName) fieldList = keyDict.keys() valueList = keyDict.values() findFieldKey = "%s_%s" % (dtName, fieldList) @@ -2951,7 +4470,7 @@ if findFieldKey not in IPYData.ipyDataIndexMapEx: indexMapDict = {} for index, iData in enumerate(cacheList): - valuekey = tuple([getattr(iData, "%s" % field) for field in fieldList]) + valuekey = tuple([getattr(iData, "Get%s" % field)() for field in fieldList]) indexList = indexMapDict.get(valuekey, []) indexList.append(index) indexMapDict[valuekey] = indexList @@ -2972,6 +4491,7 @@ @param key: 配置key @return: 直接返回该配置key对应的配置ipyData实例 ''' + IPYData.CheckLoadData("FuncConfig") if key not in IPYData.ipyFuncConfigDict: ErrLog("Can not found ipyData FuncConfig key=%s!" % key) return "" @@ -2983,20 +4503,21 @@ @param index: 第几个配置值,支持1~5 @return: 直接返回对应的数据类型 int、str,不用再手动转int ''' + IPYData.CheckLoadData("FuncConfig") if key not in IPYData.ipyFuncConfigDict: ErrLog("Can not found ipyData FuncConfig key=%s!" % key) return "" cfgObj = IPYData.ipyFuncConfigDict[key] if index == 1: - return cfgObj.Numerical1 + return cfgObj.attrTuple[1] if index == 2: - return cfgObj.Numerical2 + return cfgObj.attrTuple[2] if index == 3: - return cfgObj.Numerical3 + return cfgObj.attrTuple[3] if index == 4: - return cfgObj.Numerical4 + return cfgObj.attrTuple[4] if index == 5: - return cfgObj.Numerical5 + return cfgObj.attrTuple[5] ErrLog("Can not found ipyData FuncConfig key=%s,index=%s!" % (key, index)) return "" @@ -3011,20 +4532,21 @@ 当然如果配置的内容本身就为python的列表、字典结构的话可使用上面的函数 不过为了统一,建议功能配置表读列表、字典时都使用该函数 ''' + IPYData.CheckLoadData("FuncConfig") if key not in IPYData.ipyFuncConfigDict: ErrLog("Can not found ipyData FuncConfig key=%s!" % key) return defaultValue cfgObj = IPYData.ipyFuncConfigDict[key] if index == 1: - curConfig = cfgObj.Numerical1 + curConfig = cfgObj.attrTuple[1] elif index == 2: - curConfig = cfgObj.Numerical2 + curConfig = cfgObj.attrTuple[2] elif index == 3: - curConfig = cfgObj.Numerical3 + curConfig = cfgObj.attrTuple[3] elif index == 4: - curConfig = cfgObj.Numerical4 + curConfig = cfgObj.attrTuple[4] elif index == 5: - curConfig = cfgObj.Numerical5 + curConfig = cfgObj.attrTuple[5] else: ErrLog("Can not found ipyData FuncConfig key=%s,index=%s!" % (key, index)) return defaultValue @@ -3051,6 +4573,7 @@ @param conditionDict: 查询条件,{查询字段名:字段值, ...} @return: 找不到数据返回 None , 否则返回对应的 ipyData 数据实例 ''' + IPYData.CheckLoadData(dtName) if not conditionDict: dataList = getattr(IPYData, "ipy%sCache" % dtName) else: @@ -3060,34 +4583,88 @@ low = 0 lowData = dataList[0] - lowValue = getattr(lowData, "%s" % keyName) + lowValue = getattr(lowData, "Get%s" % keyName)() if keyValue < lowValue: return high = len(dataList) - 1 highData = dataList[high] - highValue = getattr(highData, "%s" % keyName) + highValue = getattr(highData, "Get%s" % keyName)() if keyValue >= highValue: return highData near = low + int((high - low) * (keyValue - lowValue)/(highValue - lowValue)) nearData = dataList[near] - nearValue = getattr(nearData, "%s" % keyName) + nearValue = getattr(nearData, "Get%s" % keyName)() if keyValue < nearValue: for i in xrange(near - 1, low - 1, -1): nearData = dataList[i] - nearValue = getattr(nearData, "%s" % keyName) + nearValue = getattr(nearData, "Get%s" % keyName)() if nearValue <= keyValue: return nearData elif keyValue > nearValue: for i in xrange(near + 1, high + 1): nearData = dataList[i] - nearValue = getattr(nearData, "%s" % keyName) + nearValue = getattr(nearData, "Get%s" % keyName)() if nearValue > keyValue: return dataList[i - 1] return nearData +#if __name__ == "__main__": +# IPYDataTotalSize = ChConfig.GetSizeof(IPYData) +# classSizeSum = sum(IPYData.classSizeDict.values()) +# Log("数据类内存: %s b = %s M" % (classSizeSum, str(classSizeSum/float(1024*1024)))) +# Log("总占用内存: %s b = %s M" % (IPYDataTotalSize, str(IPYDataTotalSize/float(1024*1024)))) +# for key in ["OpenBagItem", "RuneUnlock", "IceLodeNeedPoint", "RealmDifficulty", "TongTianLing", "TongTianLingaaa"]: +# for i in range(1, 6): +# v = GetFuncCfg(key, i) +# Log("key:%s,i=%s,value=%s\t%s" % (key, i, type(v), str(v))) +# +# ipyData = GetIpyGameData("FlashGiftbag", 303) +# giftbagIpyDataList = GetIpyGameDataByCondition("FlashGiftbag", {"GiftbagType":1002}, True, True) +# for ipyData in giftbagIpyDataList: +# print +# print type(ipyData.GetGiftbagID()), ipyData.GetGiftbagID() +# print type(ipyData.GetGiftbagType()), ipyData.GetGiftbagType() +# print type(ipyData.GetOriginalRMB()), ipyData.GetOriginalRMB() +# print type(ipyData.GetBuyCountLimit()), ipyData.GetBuyCountLimit() +# print type(ipyData.GetGiftItemList()), ipyData.GetGiftItemList() +# print type(ipyData.GetMainItemID()), ipyData.GetMainItemID() +# print type(ipyData.GetNotifyKey()), ipyData.GetNotifyKey() +# +# collNPCIpyDataList = GetIpyGameDataListNotLog("MapRefreshNPC", 32050) +# if collNPCIpyDataList: +# npcIDList = [] +# for ipyData in collNPCIpyDataList: +# print +# print type(ipyData.GetMapID()), ipyData.GetMapID() +# print type(ipyData.GetNPCIDList()), ipyData.GetNPCIDList() +# print type(ipyData.GetRefreshMarkList()), ipyData.GetRefreshMarkList() +# npcIDList += ipyData.GetNPCIDList() +# print "npcIDList", npcIDList +# else: +# print "None" +# +# ipyData = GetIpyGameData("RuneCompound", 4415) +# if ipyData: +# print +# print type(ipyData.GetTagItemID()), ipyData.GetTagItemID() +# print type(ipyData.GetNeedItem()), ipyData.GetNeedItem() +# print type(ipyData.GetNeedMJ()), ipyData.GetNeedMJ() +# else: +# print "None" +# +# ipyData = GetIpyGameData("DailyGiftbag", 703, 105) +# if ipyData: +# print +# print type(ipyData.GetGiftbagType()), ipyData.GetGiftbagType() +# print type(ipyData.GetGiftbagID()), ipyData.GetGiftbagID() +# print type(ipyData.GetBuyCountLimit()), ipyData.GetBuyCountLimit() +# print type(ipyData.GetGiftItemList()), ipyData.GetGiftItemList() +# else: +# print "None" + \ No newline at end of file -- Gitblit v1.8.0