ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -61,21 +61,36 @@
                        ("dict", "LimitInfo", 0),
                        ),
                "ActionControl":(
                        ("WORD", "ID", 1),
                        ("char", "Mark", 0),
                        ("char", "Data", 0),
                        ("WORD", "LVLimit", 0),
                        ("char", "OpenDate", 0),
                        ("char", "CloseDate", 0),
                        ("char", "ValidOpenServerDay", 0),
                        ("char", "ValidMixServerDay", 0),
                        ("char", "VaildWeek", 0),
                        ("char", "OpenTime", 0),
                        ("char", "CloseTime", 0),
                        ("BYTE", "TimeValidType", 0),
                        ("char", "SpecTimeState", 0),
                        ("char", "NotifyInfo", 0),
                "AuctionItem":(
                        ("DWORD", "AuctionItemID", 1),
                        ("BYTE", "NoticeSaleMinutes", 0),
                        ("WORD", "FamilySaleMinutes", 0),
                        ("WORD", "WorldSaleMinutes", 0),
                        ("WORD", "BasePrice", 0),
                        ("WORD", "BuyoutPrice", 0),
                        ("WORD", "BiddingAdd", 0),
                        ("BYTE", "NeedWorldNotify", 0),
                        ("BYTE", "Sortpriority", 0),
                        ),
                "AuctionSystemItem":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "StartTime", 0),
                        ("char", "EndTime", 0),
                        ("list", "WorldLVRange", 0),
                        ("list", "AddRandSecondRange", 0),
                        ("WORD", "ReplenishCDMinutes", 0),
                        ("BYTE", "ReplenishAuctionCount", 0),
                        ("DWORD", "ReplenishItemID", 0),
                        ("list", "ReplenishEquipInfo", 0),
                        ("list", "ReplenishEquipPlaces", 0),
                        ("BYTE", "AuctionCount", 0),
                        ("list", "RandMinuteRange", 0),
                        ("list", "ItemCountWeightList", 0),
                        ("list", "AuctionItemWeightList", 0),
                        ("list", "RandMailKeyList", 0),
                        ),
                "DailyAction":(
@@ -89,6 +104,15 @@
                        ("DWORD", "ID", 0),
                        ("BYTE", "OpenServerWeek", 1),
                        ("DWORD", "OpenServerDay", 0),
                        ("BYTE", "DailyID", 0),
                        ("list", "OpenTimeList", 0),
                        ("DWORD", "Duration", 0),
                        ("dict", "NotifyInfo", 0),
                        ),
                "DailyActionCustomMix":(
                        ("DWORD", "ID", 0),
                        ("DWORD", "MixServerDay", 1),
                        ("BYTE", "DailyID", 0),
                        ("list", "OpenTimeList", 0),
                        ("DWORD", "Duration", 0),
@@ -122,10 +146,37 @@
                        ("dict", "NotifyInfoDict", 0),
                        ),
                "FBStateTimeCustomMix":(
                        ("DWORD", "ID", 0),
                        ("DWORD", "MixServerDay", 1),
                        ("DWORD", "DataMapID", 0),
                        ("BYTE", "StartHour", 0),
                        ("BYTE", "StartMinute", 0),
                        ("BYTE", "EndHour", 0),
                        ("BYTE", "EndMinute", 0),
                        ("BYTE", "CanEnter", 0),
                        ("BYTE", "StateValue", 0),
                        ("dict", "NotifyInfoDict", 0),
                        ),
                "FBFunc":(
                        ("DWORD", "DataMapID", 1),
                        ("WORD", "HelpPoint", 0),
                        ),
                "FBLine":(
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "LineID", 1),
                        ("DWORD", "MapID", 0),
                        ),
                "FBHelpBattle":(
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "LineID", 1),
                        ("DWORD", "FightPowerMin", 0),
                        ("DWORD", "FightPowerMax", 0),
                        ("WORD", "LVLimit", 0),
                        ("list", "DayFreeHelpCount", 0),
                        ),
                "ChinMap":(
@@ -147,6 +198,11 @@
                        ("char", "SourceName", 0),
                        ),
                "BOSSFirstKill":(
                        ("DWORD", "NPCID", 1),
                        ("list", "ServerFirstKillPlayerAward", 0),
                        ),
                "QuestionBank":(
                        ("DWORD", "ID", 1),
                        ("char", "Answer", 0),
@@ -159,6 +215,21 @@
                        ("BYTE", "MoneyType", 0),
                        ("BYTE", "PacketCnt", 0),
                        ("BYTE", "LeaderOwn", 0),
                        ("char", "PacketOpenTime", 0),
                        ("BYTE", "ValidMinutes", 0),
                        ),
                "ActFeastRedPacket":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("list", "RedPacketIDList", 0),
                        ("WORD", "LVLimit", 0),
                        ),
                "FuncOpenLV":(
@@ -179,9 +250,30 @@
                        ("DWORD", "ReFightPower", 0),
                        ),
                "VipPrivilege":(
                        ("DWORD", "VIPPriID", 1),
                        ("DWORD", "VIP0", 0),
                        ("DWORD", "VIP1", 0),
                        ("DWORD", "VIP2", 0),
                        ("DWORD", "VIP3", 0),
                        ("DWORD", "VIP4", 0),
                        ("DWORD", "VIP5", 0),
                        ("DWORD", "VIP6", 0),
                        ("DWORD", "VIP7", 0),
                        ("DWORD", "VIP8", 0),
                        ("DWORD", "VIP9", 0),
                        ("DWORD", "VIP10", 0),
                        ("DWORD", "VIP11", 0),
                        ("DWORD", "VIP12", 0),
                        ("DWORD", "VIP13", 0),
                        ("DWORD", "VIP14", 0),
                        ("DWORD", "VIP15", 0),
                        ),
                "ActSpringSale":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
@@ -198,6 +290,7 @@
                "ActFlashGiftbag":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
@@ -213,8 +306,8 @@
                "ActExpRate":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "ServerIDList", 0),
                        ("list", "ServerGroupIDList", 0),
                        ("list", "ServerGroupIDListExcept", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("list", "StartTimeList", 0),
@@ -229,6 +322,7 @@
                "ActCostRebate":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
@@ -240,8 +334,8 @@
                "ActBossReborn":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "ServerIDList", 0),
                        ("list", "ServerGroupIDList", 0),
                        ("list", "ServerGroupIDListExcept", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "ResetType", 0),
@@ -254,6 +348,7 @@
                "ActFairyCeremony":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
@@ -272,6 +367,7 @@
                "ActRealmPoint":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
@@ -280,6 +376,187 @@
                        ("dict", "NotifyInfoEnd", 0),
                        ("WORD", "Multiple", 0),
                        ("WORD", "LVLimit", 0),
                        ("DWORD", "PointLimit", 0),
                        ),
                "ActFlashSale":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("list", "StartTimeList", 0),
                        ("list", "EndTimeList", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "ShopTypeList", 0),
                        ),
                "Store":(
                        ("DWORD", "ID", 1),
                        ("DWORD", "ShopType", 0),
                        ("BYTE", "RefreshType", 0),
                        ("DWORD", "ServerLimitCnt", 0),
                        ),
                "ActWishingWell":(
                        ("DWORD", "CfgID", 1),
                        ("list", "ServerGroupIDList", 0),
                        ("list", "ServerGroupIDListExcept", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("WORD", "LVLimit", 0),
                        ),
                "ActTotalRecharge":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("BYTE", "IsDayReset", 0),
                        ),
                "CrossZoneComm":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossZonePK":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
                        ("char", "ZoneName", 0),
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossRealmPKSeason":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
                        ("BYTE", "SeasonID", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("char", "EndTime", 0),
                        ),
                "CrossRealmPKDan":(
                        ("BYTE", "DanLV", 1),
                        ("WORD", "LVUpScore", 0),
                        ("list", "MatchRange", 0),
                        ("BYTE", "MatchRobotRate", 0),
                        ("BYTE", "MatchRobotRateEx", 0),
                        ),
                "CrossPenglaiZoneMap":(
                        ("BYTE", "ZoneID", 0),
                        ("DWORD", "MapID", 1),
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "CopyMapID", 1),
                        ),
                "ActWeekParty":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("WORD", "LVLimit", 0),
                        ),
                "ActLoginAward":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("WORD", "LVLimit", 0),
                        ),
                "ActFeastWeekParty":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("WORD", "LVLimit", 0),
                        ),
                "ActNewFairyCeremony":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "ResetType", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("WORD", "LVLimit", 0),
                        ),
                "NewUniquenessArrive":(
                        ("BYTE", "WorldLvNum", 1),
                        ("DWORD", "Rank", 1),
                        ("dict", "Award", 0),
                        ),
                "ActLuckyTreasure":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "ResetType", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("WORD", "LVLimit", 0),
                        ),
                "FamilyWarRankAward":(
                        ("WORD", "WarWorldLV", 1),
                        ("BYTE", "WarRank", 0),
                        ("list", "RankAuctionItem", 0),
                        ),
                "FairyDomain":(
                        ("WORD", "ID", 1),
                        ("DWORD", "HourCntPubLimit", 0),
                        ("DWORD", "DayCntPubLimit", 0),
                        ),
                }
@@ -346,40 +623,71 @@
    def GetQueryType(self): return self.QueryType # 查询类型
    def GetLimitInfo(self): return self.LimitInfo # 限制条件
# 运营活动表
class IPY_ActionControl():
# 拍卖物品表
class IPY_AuctionItem():
    
    def __init__(self):
        self.ID = 0
        self.Mark = ""
        self.Data = ""
        self.LVLimit = 0
        self.OpenDate = ""
        self.CloseDate = ""
        self.ValidOpenServerDay = ""
        self.ValidMixServerDay = ""
        self.VaildWeek = ""
        self.OpenTime = ""
        self.CloseTime = ""
        self.TimeValidType = 0
        self.SpecTimeState = ""
        self.NotifyInfo = ""
        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
        return
        
    def GetID(self): return self.ID # 活动ID
    def GetMark(self): return self.Mark # 活动类型标记
    def GetData(self): return self.Data # 活动数据
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetOpenDate(self): return self.OpenDate # 开启日期
    def GetCloseDate(self): return self.CloseDate # 结束日期
    def GetValidOpenServerDay(self): return self.ValidOpenServerDay # 有效开服天, 与合服天、星期互斥
    def GetValidMixServerDay(self): return self.ValidMixServerDay # 有效合服天, 与开服天、星期互斥
    def GetVaildWeek(self): return self.VaildWeek # 有效星期, 与开服天、合服天互斥
    def GetOpenTime(self): return self.OpenTime # 开启时间
    def GetCloseTime(self): return self.CloseTime # 结束时间
    def GetTimeValidType(self): return self.TimeValidType # 时间有效性
    def GetSpecTimeState(self): return self.SpecTimeState # 特殊活动状态时间控制信息
    def GetNotifyInfo(self): return self.NotifyInfo # 全服广播信息配置
    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 # 排序优先级归组
# 拍卖行系统拍品表
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 = []
        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 # 指定上架随机邮件列表,有配置时上架的时候在线玩家会收到一封上架邮件提醒
# 日常活动表
class IPY_DailyAction():
@@ -412,6 +720,25 @@
    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 # 广播提示信息
# 日常活动表定制表合服
class IPY_DailyActionCustomMix():
    def __init__(self):
        self.ID = 0
        self.MixServerDay = 0
        self.DailyID = 0
        self.OpenTimeList = []
        self.Duration = 0
        self.NotifyInfo = {}
        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为不限制
@@ -473,6 +800,44 @@
    def GetStateValue(self): return self.StateValue # ״ֵ̬
    def GetNotifyInfoDict(self): return self.NotifyInfoDict # 广播提示信息
# 副本状态时间定制表合服
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 = {}
        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 # 广播提示信息
# 副本总表
class IPY_FBFunc():
    def __init__(self):
        self.DataMapID = 0
        self.HelpPoint = 0
        return
    def GetDataMapID(self): return self.DataMapID # 数据地图ID
    def GetHelpPoint(self): return self.HelpPoint # 助战仙缘币(0代表不可助战)
# 副本功能线路表
class IPY_FBLine():
    
@@ -485,6 +850,25 @@
    def GetDataMapID(self): return self.DataMapID # 数据地图ID
    def GetLineID(self): return self.LineID # 功能线路ID
    def GetMapID(self): return self.MapID # 场景地图ID
# 副本助战表
class IPY_FBHelpBattle():
    def __init__(self):
        self.DataMapID = 0
        self.LineID = 0
        self.FightPowerMin = 0
        self.FightPowerMax = 0
        self.LVLimit = 0
        self.DayFreeHelpCount = []
        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 # 每日免费助战次数,[每日免费助战次数, 是否所有层通用]
# 地图表
class IPY_ChinMap():
@@ -526,6 +910,17 @@
    def GetRebornPreNotifyTime(self): return self.RebornPreNotifyTime # 复活前X秒通知
    def GetSourceName(self): return self.SourceName # BOSS来源
# Boss首杀
class IPY_BOSSFirstKill():
    def __init__(self):
        self.NPCID = 0
        self.ServerFirstKillPlayerAward = []
        return
    def GetNPCID(self): return self.NPCID # ID
    def GetServerFirstKillPlayerAward(self): return self.ServerFirstKillPlayerAward #  全服首杀玩家奖励 [[物品ID,个数,是否拍品], ...]
# 宴会题库表
class IPY_QuestionBank():
    
@@ -546,7 +941,9 @@
        self.MoneyNum = 0
        self.MoneyType = 0
        self.PacketCnt = 0
        self.LeaderOwn = 0
        self.LeaderOwn = 0
        self.PacketOpenTime = ""
        self.ValidMinutes = 0
        return
        
    def GetID(self): return self.ID # ID
@@ -554,7 +951,36 @@
    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 GetLeaderOwn(self): return self.LeaderOwn # 是否归属盟主
    def GetPacketOpenTime(self): return self.PacketOpenTime # 发放红包时间yyyy-MM-dd hh:mm
    def GetValidMinutes(self): return self.ValidMinutes # 红包有效时长(分)
# 节日红包时间表
class IPY_ActFeastRedPacket():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
        self.IsDayReset = 0
        self.ResetType = 0
        self.RedPacketIDList = []
        self.LVLimit = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器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 # 限制等级
# 等级开启功能
class IPY_FuncOpenLV():
@@ -595,12 +1021,54 @@
    def GetLV(self): return self.LV # 玩家等级
    def GetReFightPower(self): return self.ReFightPower # 战斗力
# 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
        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对应的特权值
# 限时特惠表
class IPY_ActSpringSale():
    
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
@@ -616,6 +1084,7 @@
        
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器ID列表
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
@@ -634,6 +1103,7 @@
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
@@ -649,6 +1119,7 @@
        
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器ID列表
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
@@ -666,8 +1137,8 @@
    
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.ServerIDList = []
        self.ServerGroupIDList = []
        self.ServerGroupIDListExcept = []
        self.StartDate = ""
        self.EndDate = ""
        self.StartTimeList = []
@@ -680,8 +1151,8 @@
        return
        
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetServerIDList(self): return self.ServerIDList # 服务器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 # 开启时间列表, 支持多个时段
@@ -698,6 +1169,7 @@
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
@@ -709,6 +1181,7 @@
        
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器ID列表
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
@@ -722,8 +1195,8 @@
    
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.ServerIDList = []
        self.ServerGroupIDList = []
        self.ServerGroupIDListExcept = []
        self.StartDate = ""
        self.EndDate = ""
        self.ResetType = 0
@@ -734,8 +1207,8 @@
        return
        
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetServerIDList(self): return self.ServerIDList # 服务器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点重置
@@ -750,6 +1223,7 @@
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
@@ -761,10 +1235,11 @@
        
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器ID列表
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
    def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置
    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 # 限制等级
@@ -788,6 +1263,7 @@
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
@@ -795,11 +1271,13 @@
        self.NotifyInfoStart = {}
        self.NotifyInfoEnd = {}
        self.Multiple = 0
        self.LVLimit = 0
        self.LVLimit = 0
        self.PointLimit = 0
        return
        
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器ID列表
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
@@ -807,7 +1285,385 @@
    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 # 限制额外修行点
# 限时抢购表
class IPY_ActFlashSale():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        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 = []
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器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 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 # 商店类型列表
# 商城表
class IPY_Store():
    def __init__(self):
        self.ID = 0
        self.ShopType = 0
        self.RefreshType = 0
        self.ServerLimitCnt = 0
        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 # 全服限制数量
# 许愿池活动时间表
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
        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 # 限制等级
# 累计充值活动表
class IPY_ActTotalRecharge():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
        self.NotifyInfoStart = {}
        self.NotifyInfoEnd = {}
        self.NotifyInfoLoop = []
        self.IsDayReset = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器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 # 是否每天重置
# 跨服分区表通用
class IPY_CrossZoneComm():
    def __init__(self):
        self.CrossZoneName = ""
        self.ZoneID = 0
        self.ServerGroupIDList = []
        return
    def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名
    def GetZoneID(self): return self.ZoneID # 赛区ID
    def GetServerGroupIDList(self): return self.ServerGroupIDList # 赛区服务器组ID列表
# 跨服分区表竞技场
class IPY_CrossZonePK():
    def __init__(self):
        self.CrossZoneName = ""
        self.ZoneID = 0
        self.ZoneName = ""
        self.ServerGroupIDList = []
        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列表
# 跨服竞技场赛季表
class IPY_CrossRealmPKSeason():
    def __init__(self):
        self.CrossZoneName = ""
        self.ZoneID = 0
        self.SeasonID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.EndTime = ""
        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
# 跨服竞技场段位表
class IPY_CrossRealmPKDan():
    def __init__(self):
        self.DanLV = 0
        self.LVUpScore = 0
        self.MatchRange = []
        self.MatchRobotRate = 0
        self.MatchRobotRateEx = 0
        return
    def GetDanLV(self): return self.DanLV # 段位等级
    def GetLVUpScore(self): return self.LVUpScore # 升段位所需积分
    def GetMatchRange(self): return self.MatchRange # 可匹配到的玩家段位区间 [从段位A, 到段位B],配[]代表只匹配本段位的
    def GetMatchRobotRate(self): return self.MatchRobotRate # 匹配机器人基础概率,百分率
    def GetMatchRobotRateEx(self): return self.MatchRobotRateEx # 匹配机器人失败次数附加概率,百分率
# 跨服Boss蓬莱仙境分区地图表
class IPY_CrossPenglaiZoneMap():
    def __init__(self):
        self.ZoneID = 0
        self.MapID = 0
        self.DataMapID = 0
        self.CopyMapID = 0
        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
# 周狂欢活动时间表
class IPY_ActWeekParty():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
        self.AdvanceMinutes = 0
        self.IsDayReset = 0
        self.ResetType = 0
        self.NotifyInfoStart = {}
        self.NotifyInfoEnd = {}
        self.LVLimit = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器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 # 限制等级
# 登录奖励时间表
class IPY_ActLoginAward():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
        self.AdvanceMinutes = 0
        self.IsDayReset = 0
        self.ResetType = 0
        self.NotifyInfoStart = {}
        self.NotifyInfoEnd = {}
        self.NotifyInfoLoop = []
        self.LVLimit = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器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 # 限制等级
# 节日巡礼活动时间表
class IPY_ActFeastWeekParty():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
        self.AdvanceMinutes = 0
        self.IsDayReset = 0
        self.ResetType = 0
        self.NotifyInfoStart = {}
        self.NotifyInfoEnd = {}
        self.LVLimit = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器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 # 限制等级
# 新仙界盛典活动时间表
class IPY_ActNewFairyCeremony():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
        self.ResetType = 0
        self.NotifyInfoStart = {}
        self.NotifyInfoEnd = {}
        self.LVLimit = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器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 # 限制等级
# 新仙界盛典-绝版降临表
class IPY_NewUniquenessArrive():
    def __init__(self):
        self.WorldLvNum = 0
        self.Rank = 0
        self.Award = {}
        return
    def GetWorldLvNum(self): return self.WorldLvNum # 世界等级档
    def GetRank(self): return self.Rank # 排名
    def GetAward(self): return self.Award # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
# 幸运鉴宝活动时间表
class IPY_ActLuckyTreasure():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerIDList = []
        self.StartDate = ""
        self.EndDate = ""
        self.ResetType = 0
        self.NotifyInfoStart = {}
        self.NotifyInfoEnd = {}
        self.NotifyInfoLoop = []
        self.LVLimit = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerIDList(self): return self.ServerIDList # 服务器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 # 限制等级
# 仙盟联赛排名奖励表
class IPY_FamilyWarRankAward():
    def __init__(self):
        self.WarWorldLV = 0
        self.WarRank = 0
        self.RankAuctionItem = []
        return
    def GetWarWorldLV(self): return self.WarWorldLV # 联赛世界等级
    def GetWarRank(self): return self.WarRank # 联赛排名
    def GetRankAuctionItem(self): return self.RankAuctionItem # 拍品奖励[[拍品ID,个数], ...]
# 缥缈仙域表
class IPY_FairyDomain():
    def __init__(self):
        self.ID = 0
        self.HourCntPubLimit = 0
        self.DayCntPubLimit = 0
        return
    def GetID(self): return self.ID # 事件编号
    def GetHourCntPubLimit(self): return self.HourCntPubLimit # 全服每小时次数限制
    def GetDayCntPubLimit(self): return self.DayCntPubLimit # 全服每天次数限制
def Log(msg, playerID=0, par=0):
@@ -841,32 +1697,48 @@
        self.ipyFamilyLen = len(self.ipyFamilyCache)
        self.ipyMarketQueryCache = self.__LoadFileData("MarketQuery", IPY_MarketQuery)
        self.ipyMarketQueryLen = len(self.ipyMarketQueryCache)
        self.ipyActionControlCache = self.__LoadFileData("ActionControl", IPY_ActionControl)
        self.ipyActionControlLen = len(self.ipyActionControlCache)
        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.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)
@@ -883,6 +1755,40 @@
        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.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.ipyActLuckyTreasureCache = self.__LoadFileData("ActLuckyTreasure", IPY_ActLuckyTreasure)
        self.ipyActLuckyTreasureLen = len(self.ipyActLuckyTreasureCache)
        self.ipyFamilyWarRankAwardCache = self.__LoadFileData("FamilyWarRankAward", IPY_FamilyWarRankAward)
        self.ipyFamilyWarRankAwardLen = len(self.ipyFamilyWarRankAwardCache)
        self.ipyFairyDomainCache = self.__LoadFileData("FairyDomain", IPY_FairyDomain)
        self.ipyFairyDomainLen = len(self.ipyFairyDomainCache)
        Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
        Log("IPY_DataMgr InitOK!")
        return
@@ -1057,32 +1963,48 @@
    def GetFamilyByIndex(self, index): return self.ipyFamilyCache[index]
    def GetMarketQueryCount(self): return self.ipyMarketQueryLen
    def GetMarketQueryByIndex(self, index): return self.ipyMarketQueryCache[index]
    def GetActionControlCount(self): return self.ipyActionControlLen
    def GetActionControlByIndex(self, index): return self.ipyActionControlCache[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 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
@@ -1099,6 +2021,40 @@
    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 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 GetActLuckyTreasureCount(self): return self.ipyActLuckyTreasureLen
    def GetActLuckyTreasureByIndex(self, index): return self.ipyActLuckyTreasureCache[index]
    def GetFamilyWarRankAwardCount(self): return self.ipyFamilyWarRankAwardLen
    def GetFamilyWarRankAwardByIndex(self, index): return self.ipyFamilyWarRankAwardCache[index]
    def GetFairyDomainCount(self): return self.ipyFairyDomainLen
    def GetFairyDomainByIndex(self, index): return self.ipyFairyDomainCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData