xdh
2019-01-10 c11b1e8fb2707d12a7247e6b085c00660cf224cc
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -80,11 +80,14 @@
                        ("DWORD", "LimitMagicWeapon", 0),
                        ("WORD", "LimiRealmLV", 0),
                        ("DWORD", "LimitMissionID", 0),
                        ("BYTE", "LimitVIPLV", 0),
                        ),
                "ItemCompound":(
                        ("WORD", "ID", 1),
                        ("BYTE", "ComposeGroup", 0),
                        ("list", "MakeID", 0),
                        ("BYTE", "IsFirstSuccMakeJobItem", 0),
                        ("list", "UnfixedItemID", 0),
                        ("BYTE", "UnfixedItemCount", 0),
                        ("list", "FixedItemID", 0),
@@ -92,8 +95,10 @@
                        ("DWORD", "NeedMoney", 0),
                        ("WORD", "SuccessRate", 0),
                        ("WORD", "SuccessRateMax", 0),
                        ("list", "SuccessRateIncrease", 0),
                        ("BYTE", "AddonsCountMax", 0),
                        ("char", "SysMark", 0),
                        ("BYTE", "SysMarkParamType", 0),
                        ),
                "ItemPlus":(
@@ -130,7 +135,9 @@
                        ("list", "BaseAttrTypes", 0),
                        ("list", "BaseAttrValues", 0),
                        ("list", "HelpBattleSkills", 0),
                        ("DWORD", "FightPowerEx", 0),
                        ("list", "EquipPlaceColorList", 0),
                        ("list", "HelpBattleNotify", 0),
                        ),
                "DogzEquipPlus":(
@@ -144,6 +151,7 @@
                "Rune":(
                        ("DWORD", "ID", 1),
                        ("list", "AttrType", 0),
                        ("DWORD", "TowerID", 0),
                        ),
                "EquipWash":(
@@ -181,6 +189,7 @@
                        ("BYTE", "FuncID", 0),
                        ("WORD", "MaxUseCnt", 0),
                        ("WORD", "RecycleMoney", 0),
                        ("DWORD", "FightPowerEx", 0),
                        ),
                "PetInfo":(
@@ -272,6 +281,7 @@
                        ("DWORD", "RePotionCD", 0),
                        ("DWORD", "AttackEff", 0),
                        ("DWORD", "ReFightPower", 0),
                        ("DWORD", "IceLodeFightPower", 0),
                        ),
                "GMAttr":(
@@ -288,7 +298,9 @@
                "NPCStrengthen":(
                        ("DWORD", "NPCID", 1),
                        ("BYTE", "IsStrengthenByPlayerCount", 0),
                        ("BYTE", "LVStrengthenMark", 0),
                        ("BYTE", "LVStrengthenType", 0),
                        ("BYTE", "CmpNPCBaseLV", 0),
                        ("DWORD", "HitTime", 0),
                        ("DWORD", "DefCoefficient", 0),
                        ("DWORD", "AtkCoefficient", 0),
@@ -371,6 +383,9 @@
                        ("DWORD", "CftFaintDefRate", 0),
                        ("DWORD", "CftAtkSpeed", 0),
                        ("DWORD", "CftLuckyHit", 0),
                        ("DWORD", "CftSpeedPer", 0),
                        ("DWORD", "CftAtkPer", 0),
                        ("DWORD", "CftMaxHPPer", 0),
                        ),
                "NPCDropItem":(
@@ -425,7 +440,9 @@
                        ("DWORD", "ExtraTimesMWPriID", 0),
                        ("BYTE", "GuardPick", 0),
                        ("WORD", "OfflineTime", 0),
                        ("WORD", "FBPoint", 0),
                        ("WORD", "HelpPoint", 0),
                        ("BYTE", "DayHelpCountMax", 0),
                        ),
                "FBLine":(
@@ -446,6 +463,17 @@
                        ("eval", "RefreshNPC", 0),
                        ("eval", "GradeInfo", 0),
                        ("eval", "RewardInfo", 0),
                        ),
                "FBHelpBattle":(
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "LineID", 1),
                        ("DWORD", "FightPowerMin", 0),
                        ("DWORD", "RobotFightPower", 0),
                        ("WORD", "RobotLV", 0),
                        ("DWORD", "RobotBaseHurt", 0),
                        ("WORD", "RobotHPCoefficient", 0),
                        ("dict", "RobotSkillsDict", 0),
                        ),
                "NPCCustomRefresh":(
@@ -495,6 +523,9 @@
                        ("DWORD", "SkillAtkRateC", 0),
                        ("DWORD", "SpeedPerC", 0),
                        ("DWORD", "AtkSpeedC", 0),
                        ("DWORD", "SkillAtkRateReduceC", 0),
                        ("DWORD", "HitC", 0),
                        ("DWORD", "MissC", 0),
                        ),
                "Success":(
@@ -518,6 +549,7 @@
                        ("DWORD", "PreTreasure", 0),
                        ("list", "SuccID", 0),
                        ("list", "Potentials", 0),
                        ("list", "SkillPower", 0),
                        ("dict", "NeedItem", 0),
                        ),
@@ -529,6 +561,8 @@
                        ("list", "UnLockSkill", 0),
                        ("DWORD", "ActiveMWID", 0),
                        ("list", "ItemAward", 0),
                        ("DWORD", "ActiveSoulID", 0),
                        ("DWORD", "PowerEx", 0),
                        ),
                "TreasurePrivilege":(
@@ -619,11 +653,13 @@
                        ("list", "LimitVIPLV", 0),
                        ("DWORD", "LimitLV", 0),
                        ("list", "LimitCnt", 0),
                        ("DWORD", "ServerLimitCnt", 0),
                        ("BYTE", "MoneyType", 0),
                        ("DWORD", "MoneyNum", 0),
                        ("DWORD", "MoneyOriginal", 0),
                        ("DWORD", "LimitValue", 0),
                        ("char", "NotifyMark", 0),
                        ("char", "MailKey", 0),
                        ),
                "ActSpringSale":(
@@ -632,9 +668,12 @@
                        ("char", "EndDate", 0),
                        ("list", "StartTimeList", 0),
                        ("list", "EndTimeList", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "ShopTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
                        ),
                "DailyQuest":(
@@ -748,7 +787,7 @@
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "InspireType", 1),
                        ("WORD", "InspireMaxLV", 0),
                        ("DWORD", "MoneyCount", 0),
                        ("char", "MoneyCount", 0),
                        ),
                "RuneCompound":(
@@ -766,6 +805,7 @@
                        ("dict", "JadeReward", 0),
                        ("DWORD", "CostCopper", 0),
                        ("dict", "CopperReward", 0),
                        ("list", "JobItemList", 0),
                        ),
                "Chests":(
@@ -786,6 +826,7 @@
                        ("list", "RandTimeList1", 0),
                        ("list", "RandItemList2", 0),
                        ("list", "RandTimeList2", 0),
                        ("dict", "RandItemByUseCount", 0),
                        ("list", "JobItemList", 0),
                        ("BYTE", "MoneyType", 0),
                        ("DWORD", "MoneyCount", 0),
@@ -847,6 +888,7 @@
                        ("WORD", "GainGoldPrize", 0),
                        ("WORD", "FirstGoldPrize", 0),
                        ("list", "GainItemList", 0),
                        ("char", "NotifyMark", 0),
                        ),
                "LVAward":(
@@ -903,9 +945,12 @@
                        ("char", "EndDate", 0),
                        ("list", "StartTimeList", 0),
                        ("list", "EndTimeList", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "GiftbagList", 0),
                        ("list", "GiftbagTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
                        ),
                "FlashGiftbag":(
@@ -918,6 +963,21 @@
                        ("char", "NotifyKey", 0),
                        ),
                "ActExpRate":(
                        ("DWORD", "CfgID", 1),
                        ("WORD", "LVLimit", 0),
                        ("DWORD", "AddExpRate", 0),
                        ),
                "ActCostRebate":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "TemplateIDList", 0),
                        ),
                "CostRebateTemplate":(
                        ("DWORD", "TemplateID", 1),
                        ("DWORD", "NeedCostGold", 0),
@@ -926,12 +986,28 @@
                        ("char", "NotifyKey", 0),
                        ),
                "ActBossReborn":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "TemplateID", 0),
                        ),
                "BossReborn":(
                        ("BYTE", "TemplateID", 1),
                        ("BYTE", "ID", 1),
                        ("DWORD", "TotalTimes", 0),
                        ("WORD", "SingleTimes", 0),
                        ("list", "Reward", 0),
                        ),
                "ActRealmPoint":(
                        ("DWORD", "CfgID", 1),
                        ("WORD", "Multiple", 0),
                        ("WORD", "LVLimit", 0),
                        ("DWORD", "PointLimit", 0),
                        ),
                "TrialExchange":(
@@ -962,6 +1038,179 @@
                        ("WORD", "LowLV", 0),
                        ("WORD", "HighestLV", 0),
                        ("DWORD", "Defense", 0),
                        ),
                "TalentSkill":(
                        ("DWORD", "SkillID", 1),
                        ("BYTE", "TalentType", 0),
                        ("BYTE", "Series", 0),
                        ),
                "ActFlashSale":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("list", "StartTimeList", 0),
                        ("list", "EndTimeList", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "ShopTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
                        ),
                "ActWishingWell":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "TemplateID", 0),
                        ),
                "WishingWell":(
                        ("BYTE", "TemplateID", 1),
                        ("BYTE", "IsFree", 0),
                        ("list", "WorldLVLimit", 0),
                        ("DWORD", "ItemID", 0),
                        ("WORD", "ItemCnt", 0),
                        ("BYTE", "IsBind", 0),
                        ("DWORD", "Weight", 0),
                        ("DWORD", "Mark", 0),
                        ("BYTE", "Rare", 0),
                        ),
                "FunctionForecast":(
                        ("DWORD", "FuncID", 1),
                        ("dict", "Award", 0),
                        ),
                "ChatBubbleBox":(
                        ("BYTE", "BoxID", 1),
                        ("WORD", "NeedLV", 0),
                        ("BYTE", "NeedVIPLVGift", 0),
                        ),
                "ActTotalRecharge":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "TemplateIDList", 0),
                        ),
                "TotalRechargeTemplate":(
                        ("DWORD", "TemplateID", 1),
                        ("DWORD", "NeedGold", 0),
                        ("BYTE", "AwardIndex", 0),
                        ("dict", "AwardItem", 0),
                        ("char", "NotifyKey", 0),
                        ),
                "MagicWeaponFB":(
                        ("DWORD", "MWID", 1),
                        ("BYTE", "LineID", 0),
                        ("BYTE", "Level", 1),
                        ("list", "RefreshNPC", 0),
                        ("dict", "AttrDict", 0),
                        ),
                "IceLodeStarAward":(
                        ("BYTE", "Index", 1),
                        ("BYTE", "Star", 0),
                        ("list", "LVLimit", 0),
                        ("list", "ItemList", 0),
                        ),
                "GodWeaponEffect":(
                        ("BYTE", "GWType", 0),
                        ("WORD", "Level", 0),
                        ("char", "NotifyCode", 0),
                        ("DWORD", "FightPower", 0),
                        ("dict", "Attr", 0),
                        ),
                "CrossRealmPKDan":(
                        ("BYTE", "DanLV", 1),
                        ("list", "DanLVAwardList", 0),
                        ("list", "SeasonDanLVAwardList", 0),
                        ),
                "CrossPenglaiZone":(
                        ("BYTE", "ZoneID", 0),
                        ("list", "ServerGroupIDList", 0),
                        ("DWORD", "MapID", 1),
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "CopyMapID", 1),
                        ("WORD", "PosX", 0),
                        ("WORD", "PosY", 0),
                        ),
                "GatherSoul":(
                        ("DWORD", "ItemID", 1),
                        ("list", "AttrType", 0),
                        ("BYTE", "SoulGrade", 0),
                        ),
                "GatherSoulCompound":(
                        ("DWORD", "TagItemID", 1),
                        ("WORD", "NeedLV", 0),
                        ("list", "NeedItem", 0),
                        ("WORD", "NeedSoulSplinters", 0),
                        ("WORD", "NeedSoulCore", 0),
                        ),
                "GatherSoulAttr":(
                        ("WORD", "AttrType", 1),
                        ("char", "AttrInfo1", 0),
                        ("dict", "AttrInfo2", 0),
                        ("dict", "AttrInfo3", 0),
                        ("dict", "AttrInfo4", 0),
                        ("dict", "AttrInfo5", 0),
                        ),
                "MagicWeaponOfKing":(
                        ("DWORD", "MWID", 1),
                        ("BYTE", "AwardMark", 1),
                        ("dict", "AddAttr", 0),
                        ),
                "Coat":(
                        ("DWORD", "CoatID", 1),
                        ("list", "EquipItemID", 0),
                        ("DWORD", "UnlockItemID", 0),
                        ("DWORD", "MaxLV", 0),
                        ("list", "CostItemCnt", 0),
                        ("dict", "StarAttr", 0),
                        ),
                "CoatChestUp":(
                        ("DWORD", "LV", 1),
                        ("BYTE", "NeedExp", 0),
                        ("dict", "AddAttr", 0),
                        ),
                "ActWeekParty":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "LVLimit", 0),
                        ("list", "TemplateID", 0),
                        ("dict", "PointAward", 0),
                        ),
                "WeekParty":(
                        ("BYTE", "TemplateID", 1),
                        ("BYTE", "ActionType", 0),
                        ("DWORD", "TotalTimes", 0),
                        ("WORD", "SingleTimes", 0),
                        ("list", "Reward", 0),
                        ("WORD", "Point", 0),
                        ),
                }
@@ -1062,21 +1311,25 @@
        self.LimitLV = 0
        self.LimitMagicWeapon = 0
        self.LimiRealmLV = 0
        self.LimitMissionID = 0
        self.LimitMissionID = 0
        self.LimitVIPLV = 0
        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 GetLimitMissionID(self): return self.LimitMissionID # 需要完成的任务ID
    def GetLimitMissionID(self): return self.LimitMissionID # 需要完成的任务ID
    def GetLimitVIPLV(self): return self.LimitVIPLV # 需要VIP等级
# 合成表
class IPY_ItemCompound():
    
    def __init__(self):
        self.ID = 0
        self.ComposeGroup = 0
        self.MakeID = []
        self.IsFirstSuccMakeJobItem = 0
        self.UnfixedItemID = []
        self.UnfixedItemCount = 0
        self.FixedItemID = []
@@ -1084,12 +1337,16 @@
        self.NeedMoney = 0
        self.SuccessRate = 0
        self.SuccessRateMax = 0
        self.SuccessRateIncrease = []
        self.AddonsCountMax = 0
        self.SysMark = ""
        self.SysMark = ""
        self.SysMarkParamType = 0
        return
        
    def GetID(self): return self.ID # 合成配置编号ID
    def GetComposeGroup(self): return self.ComposeGroup # 合成归组类型
    def GetMakeID(self): return self.MakeID # 可合成的道具ID,多个则随机一个
    def GetIsFirstSuccMakeJobItem(self): return self.IsFirstSuccMakeJobItem # 首次成功是否必出本职业
    def GetUnfixedItemID(self): return self.UnfixedItemID # 不固定道具ID, 多个ID时则任意一种均可
    def GetUnfixedItemCount(self): return self.UnfixedItemCount # 不固定道具消耗数量
    def GetFixedItemID(self): return self.FixedItemID # 消耗固定道具ID, 多个ID时代表每个ID均需消耗
@@ -1097,8 +1354,10 @@
    def GetNeedMoney(self): return self.NeedMoney #  消耗铜钱
    def GetSuccessRate(self): return self.SuccessRate #  成功率万分率
    def GetSuccessRateMax(self): return self.SuccessRateMax #  最大成功率万分率
    def GetSuccessRateIncrease(self): return self.SuccessRateIncrease # 提高成功率道具, 道具ID|个数|提高的概率
    def GetAddonsCountMax(self): return self.AddonsCountMax # 最大可附加材料数, 增加概率用, 非必须, 0代表不可附加材料
    def GetSysMark(self): return self.SysMark # 提示mark
    def GetSysMark(self): return self.SysMark # 提示mark
    def GetSysMarkParamType(self): return self.SysMarkParamType # 系统提示参数组合类型
# 物品强化效果表
class IPY_ItemPlus():
@@ -1170,14 +1429,18 @@
        self.BaseAttrTypes = []
        self.BaseAttrValues = []
        self.HelpBattleSkills = []
        self.EquipPlaceColorList = []
        self.FightPowerEx = 0
        self.EquipPlaceColorList = []
        self.HelpBattleNotify = []
        return
        
    def GetDogzID(self): return self.DogzID # 神兽ID
    def GetBaseAttrTypes(self): return self.BaseAttrTypes # 基础属性类型列表
    def GetBaseAttrValues(self): return self.BaseAttrValues # 基础属性值列表
    def GetHelpBattleSkills(self): return self.HelpBattleSkills # 助战技能ID列表
    def GetEquipPlaceColorList(self): return self.EquipPlaceColorList # 穿戴装备颜色限制
    def GetFightPowerEx(self): return self.FightPowerEx # 助战附加战力
    def GetEquipPlaceColorList(self): return self.EquipPlaceColorList # 穿戴装备颜色限制
    def GetHelpBattleNotify(self): return self.HelpBattleNotify # 助战广播 ["广播key",[参数1,参数2,...],广播CD分钟]
# 神兽强化表
class IPY_DogzEquipPlus():
@@ -1201,11 +1464,13 @@
    
    def __init__(self):
        self.ID = 0
        self.AttrType = []
        self.AttrType = []
        self.TowerID = 0
        return
        
    def GetID(self): return self.ID # 编号ID
    def GetAttrType(self): return self.AttrType # 全身强化激活属性类型
    def GetAttrType(self): return self.AttrType # 属性类型
    def GetTowerID(self): return self.TowerID # 解锁符印塔编号
# 洗练表
class IPY_EquipWash():
@@ -1276,13 +1541,15 @@
        self.ID = 0
        self.FuncID = 0
        self.MaxUseCnt = 0
        self.RecycleMoney = 0
        self.RecycleMoney = 0
        self.FightPowerEx = 0
        return
        
    def GetID(self): return self.ID # 物品ID
    def GetFuncID(self): return self.FuncID # 所属功能ID
    def GetMaxUseCnt(self): return self.MaxUseCnt # 最大可使用数量
    def GetRecycleMoney(self): return self.RecycleMoney # 回收货币值
    def GetRecycleMoney(self): return self.RecycleMoney # 回收货币值
    def GetFightPowerEx(self): return self.FightPowerEx # 附加战斗力
# 灵兽表
class IPY_PetInfo():
@@ -1440,7 +1707,8 @@
        self.RePotionReply = 0
        self.RePotionCD = 0
        self.AttackEff = 0
        self.ReFightPower = 0
        self.ReFightPower = 0
        self.IceLodeFightPower = 0
        return
        
    def GetLV(self): return self.LV # 玩家等级
@@ -1471,7 +1739,8 @@
    def GetRePotionReply(self): return self.RePotionReply # 血瓶恢复量
    def GetRePotionCD(self): return self.RePotionCD # ѪƿCD
    def GetAttackEff(self): return self.AttackEff # 挂机效率
    def GetReFightPower(self): return self.ReFightPower # 战斗力
    def GetReFightPower(self): return self.ReFightPower # 战斗力
    def GetIceLodeFightPower(self): return self.IceLodeFightPower # 冰晶矿脉扫荡战斗力
# GM测试属性表
class IPY_GMAttr():
@@ -1502,7 +1771,9 @@
    def __init__(self):
        self.NPCID = 0
        self.IsStrengthenByPlayerCount = 0
        self.LVStrengthenMark = 0
        self.LVStrengthenType = 0
        self.CmpNPCBaseLV = 0
        self.HitTime = 0
        self.DefCoefficient = 0
        self.AtkCoefficient = 0
@@ -1519,7 +1790,9 @@
        
    def GetNPCID(self): return self.NPCID # NPCID
    def GetIsStrengthenByPlayerCount(self): return self.IsStrengthenByPlayerCount # 是否根据人数成长
    def GetLVStrengthenMark(self): return self.LVStrengthenMark # 等级成长属性公式标记
    def GetLVStrengthenType(self): return self.LVStrengthenType # 等级成长类型, 0-不按等级成长;1-按玩家平均等级;2-按玩家最大等级;3-按世界等级;
    def GetCmpNPCBaseLV(self): return self.CmpNPCBaseLV # 是否比较NPC表等级, 是的话取NPC表配置等级与成长等级中较大等级
    def GetHitTime(self): return self.HitTime # 受击次数
    def GetDefCoefficient(self): return self.DefCoefficient # 人物防御系数
    def GetAtkCoefficient(self): return self.AtkCoefficient # 人物攻击系数
@@ -1655,7 +1928,10 @@
        self.CftIgnoreDefRateReduce = 0
        self.CftFaintDefRate = 0
        self.CftAtkSpeed = 0
        self.CftLuckyHit = 0
        self.CftLuckyHit = 0
        self.CftSpeedPer = 0
        self.CftAtkPer = 0
        self.CftMaxHPPer = 0
        return
        
    def GetLV(self): return self.LV # 等级
@@ -1677,7 +1953,10 @@
    def GetCftIgnoreDefRateReduce(self): return self.CftIgnoreDefRateReduce # 无视防御抗性系数
    def GetCftFaintDefRate(self): return self.CftFaintDefRate # 控制抵抗系数
    def GetCftAtkSpeed(self): return self.CftAtkSpeed # 攻速系数
    def GetCftLuckyHit(self): return self.CftLuckyHit # 会心一击系数
    def GetCftLuckyHit(self): return self.CftLuckyHit # 会心一击系数
    def GetCftSpeedPer(self): return self.CftSpeedPer # 移动速度百分比系数
    def GetCftAtkPer(self): return self.CftAtkPer # 攻击百分比系数
    def GetCftMaxHPPer(self): return self.CftMaxHPPer # 生命百分比系数
# NPC掉落表
class IPY_NPCDropItem():
@@ -1776,7 +2055,9 @@
        self.ExtraTimesMWPriID = 0
        self.GuardPick = 0
        self.OfflineTime = 0
        self.HelpPoint = 0
        self.FBPoint = 0
        self.HelpPoint = 0
        self.DayHelpCountMax = 0
        return
        
    def GetDataMapID(self): return self.DataMapID # 数据地图ID
@@ -1790,7 +2071,9 @@
    def GetExtraTimesMWPriID(self): return self.ExtraTimesMWPriID # 额外次数法宝权限ID
    def GetGuardPick(self): return self.GuardPick # 该地图守护是否能拾取
    def GetOfflineTime(self): return self.OfflineTime # 离线多久退出副本(秒)
    def GetHelpPoint(self): return self.HelpPoint # 助战积分(0代表不可助战)
    def GetFBPoint(self): return self.FBPoint # 副本过关仙缘币
    def GetHelpPoint(self): return self.HelpPoint # 助战仙缘币(0代表不可助战)
    def GetDayHelpCountMax(self): return self.DayHelpCountMax # 每日手动助战获得仙缘币次数(非镜像)
# 副本功能线路表
class IPY_FBLine():
@@ -1832,6 +2115,29 @@
    def GetRefreshNPC(self): return self.RefreshNPC # 标试点刷怪配置
    def GetGradeInfo(self): return self.GradeInfo # 评级规则
    def GetRewardInfo(self): return self.RewardInfo # 奖励信息
# 副本助战表
class IPY_FBHelpBattle():
    def __init__(self):
        self.DataMapID = 0
        self.LineID = 0
        self.FightPowerMin = 0
        self.RobotFightPower = 0
        self.RobotLV = 0
        self.RobotBaseHurt = 0
        self.RobotHPCoefficient = 0
        self.RobotSkillsDict = {}
        return
    def GetDataMapID(self): return self.DataMapID # 数据地图ID
    def GetLineID(self): return self.LineID # 功能线路ID
    def GetFightPowerMin(self): return self.FightPowerMin # 助战最低战力,也是副本保底战力
    def GetRobotFightPower(self): return self.RobotFightPower # 助战NPC战力
    def GetRobotLV(self): return self.RobotLV # 助战NPC等级
    def GetRobotBaseHurt(self): return self.RobotBaseHurt # 助战NPC保底伤害
    def GetRobotHPCoefficient(self): return self.RobotHPCoefficient # 助战NPC生命系数
    def GetRobotSkillsDict(self): return self.RobotSkillsDict # 助战NPC技能, {"职业":[技能列表], ...}
# 副本刷怪标识点表
class IPY_NPCCustomRefresh():
@@ -1905,7 +2211,10 @@
        self.SuperHitReduceC = 0
        self.SkillAtkRateC = 0
        self.SpeedPerC = 0
        self.AtkSpeedC = 0
        self.AtkSpeedC = 0
        self.SkillAtkRateReduceC = 0
        self.HitC = 0
        self.MissC = 0
        return
        
    def GetClassLV(self): return self.ClassLV #  装备阶级
@@ -1932,7 +2241,10 @@
    def GetSuperHitReduceC(self): return self.SuperHitReduceC #  暴击抗性百分比系数
    def GetSkillAtkRateC(self): return self.SkillAtkRateC #  技能伤害百分比系数
    def GetSpeedPerC(self): return self.SpeedPerC #  移动速度百分比系数
    def GetAtkSpeedC(self): return self.AtkSpeedC #  攻击速度系数
    def GetAtkSpeedC(self): return self.AtkSpeedC #  攻击速度系数
    def GetSkillAtkRateReduceC(self): return self.SkillAtkRateReduceC #  技能减伤百分比系数
    def GetHitC(self): return self.HitC #  命中系数
    def GetMissC(self): return self.MissC #  闪避系数
# 成就表
class IPY_Success():
@@ -1974,6 +2286,7 @@
        self.PreTreasure = 0
        self.SuccID = []
        self.Potentials = []
        self.SkillPower = []
        self.NeedItem = {}
        return
        
@@ -1982,6 +2295,7 @@
    def GetPreTreasure(self): return self.PreTreasure # 前置法宝
    def GetSuccID(self): return self.SuccID # 成就ID
    def GetPotentials(self): return self.Potentials # 技能潜力升级
    def GetSkillPower(self): return self.SkillPower # 技能解锁战力
    def GetNeedItem(self): return self.NeedItem # 需要消耗物品
# 法宝升级表
@@ -1994,7 +2308,9 @@
        self.AddAttr = {}
        self.UnLockSkill = []
        self.ActiveMWID = 0
        self.ItemAward = []
        self.ItemAward = []
        self.ActiveSoulID = 0
        self.PowerEx = 0
        return
        
    def GetMWID(self): return self.MWID # 法宝ID
@@ -2003,7 +2319,9 @@
    def GetAddAttr(self): return self.AddAttr # 属性
    def GetUnLockSkill(self): return self.UnLockSkill # 解锁的技能
    def GetActiveMWID(self): return self.ActiveMWID # 激活法宝ID
    def GetItemAward(self): return self.ItemAward # 物品奖励[itemID,cnt,isbind]
    def GetItemAward(self): return self.ItemAward # 物品奖励[itemID,cnt,isbind]
    def GetActiveSoulID(self): return self.ActiveSoulID # 激活魂ID
    def GetPowerEx(self): return self.PowerEx # 额外固定战力
# 法宝特权表
class IPY_TreasurePrivilege():
@@ -2177,11 +2495,13 @@
        self.LimitVIPLV = []
        self.LimitLV = 0
        self.LimitCnt = []
        self.ServerLimitCnt = 0
        self.MoneyType = 0
        self.MoneyNum = 0
        self.MoneyOriginal = 0
        self.LimitValue = 0
        self.NotifyMark = ""
        self.NotifyMark = ""
        self.MailKey = ""
        return
        
    def GetID(self): return self.ID # ID
@@ -2196,12 +2516,14 @@
    def GetRefreshType(self): return self.RefreshType # 刷新类型 0-不重置,1-onWeek0点,2-onWeek5点,3-OnDay0点,4-OnDay5点
    def GetLimitVIPLV(self): return self.LimitVIPLV # VIP限制
    def GetLimitLV(self): return self.LimitLV # 等级限制
    def GetLimitCnt(self): return self.LimitCnt # 限制数量
    def GetLimitCnt(self): return self.LimitCnt # 个人限制数量
    def GetServerLimitCnt(self): return self.ServerLimitCnt # 全服限制数量
    def GetMoneyType(self): return self.MoneyType # 金钱类型
    def GetMoneyNum(self): return self.MoneyNum # 金钱数量
    def GetMoneyOriginal(self): return self.MoneyOriginal # 原价
    def GetLimitValue(self): return self.LimitValue # 限制条件
    def GetNotifyMark(self): return self.NotifyMark # 广播提示
    def GetNotifyMark(self): return self.NotifyMark # 广播提示
    def GetMailKey(self): return self.MailKey # 背包不足时邮件KEY
# 限时特惠表
class IPY_ActSpringSale():
@@ -2212,9 +2534,12 @@
        self.EndDate = ""
        self.StartTimeList = []
        self.EndTimeList = []
        self.AdvanceMinutes = 0
        self.LVLimit = 0
        self.IsDayReset = 0
        self.ShopTypeList = []
        self.ShopTypeList = []
        self.MailKey = ""
        self.MailItemPrize = []
        return
        
    def GetCfgID(self): return self.CfgID # 配置ID
@@ -2222,9 +2547,12 @@
    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 GetLVLimit(self): return self.LVLimit # 限制等级
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
    def GetShopTypeList(self): return self.ShopTypeList # 商店类型列表
    def GetShopTypeList(self): return self.ShopTypeList # 商店类型列表
    def GetMailKey(self): return self.MailKey # 活动更新时发送邮件key
    def GetMailItemPrize(self): return self.MailItemPrize # 活动更新时发送邮件奖励物品
# 日常任务表
class IPY_DailyQuest():
@@ -2460,7 +2788,7 @@
        self.DataMapID = 0
        self.InspireType = 0
        self.InspireMaxLV = 0
        self.MoneyCount = 0
        self.MoneyCount = ""
        return
        
    def GetDataMapID(self): return self.DataMapID # 地图ID
@@ -2492,7 +2820,8 @@
        self.VipCostJade = 0
        self.JadeReward = {}
        self.CostCopper = 0
        self.CopperReward = {}
        self.CopperReward = {}
        self.JobItemList = []
        return
        
    def GetID(self): return self.ID # ID
@@ -2502,7 +2831,8 @@
    def GetVipCostJade(self): return self.VipCostJade # 绑玉找回VIP次数找回价格
    def GetJadeReward(self): return self.JadeReward # 绑玉找回奖励
    def GetCostCopper(self): return self.CostCopper # 铜钱找回铜钱消耗
    def GetCopperReward(self): return self.CopperReward # 铜钱找回奖励
    def GetCopperReward(self): return self.CopperReward # 铜钱找回奖励
    def GetJobItemList(self): return self.JobItemList # 职业物品列表
# 宝箱表开启
class IPY_Chests():
@@ -2535,6 +2865,7 @@
        self.RandTimeList1 = []
        self.RandItemList2 = []
        self.RandTimeList2 = []
        self.RandItemByUseCount = {}
        self.JobItemList = []
        self.MoneyType = 0
        self.MoneyCount = 0
@@ -2549,6 +2880,7 @@
    def GetRandTimeList1(self): return self.RandTimeList1 # 随机次数饼图列表1
    def GetRandItemList2(self): return self.RandItemList2 # 随机物品饼图列表2
    def GetRandTimeList2(self): return self.RandTimeList2 # 随机次数饼图列表2
    def GetRandItemByUseCount(self): return self.RandItemByUseCount # 宝箱开启X次对应特殊产出,与饼图列表2互斥
    def GetJobItemList(self): return self.JobItemList # 职业物品列表
    def GetMoneyType(self): return self.MoneyType # 货币类型
    def GetMoneyCount(self): return self.MoneyCount # 货币数量
@@ -2666,7 +2998,8 @@
        self.GainGold = 0
        self.GainGoldPrize = 0
        self.FirstGoldPrize = 0
        self.GainItemList = []
        self.GainItemList = []
        self.NotifyMark = ""
        return
        
    def GetRecordID(self): return self.RecordID # 记录ID
@@ -2674,7 +3007,8 @@
    def GetGainGold(self): return self.GainGold # 获得仙玉数
    def GetGainGoldPrize(self): return self.GainGoldPrize # 赠送仙玉数
    def GetFirstGoldPrize(self): return self.FirstGoldPrize # 首次充值该档位赠送仙玉
    def GetGainItemList(self): return self.GainItemList # 获得物品列表[[物品ID,个数,是否绑定], ...]
    def GetGainItemList(self): return self.GainItemList # 获得物品列表[[物品ID,个数,是否绑定], ...]
    def GetNotifyMark(self): return self.NotifyMark # 广播提示
# 等级奖励表
class IPY_LVAward():
@@ -2786,9 +3120,12 @@
        self.EndDate = ""
        self.StartTimeList = []
        self.EndTimeList = []
        self.AdvanceMinutes = 0
        self.LVLimit = 0
        self.IsDayReset = 0
        self.GiftbagList = []
        self.GiftbagTypeList = []
        self.MailKey = ""
        self.MailItemPrize = []
        return
        
    def GetCfgID(self): return self.CfgID # 配置ID
@@ -2796,9 +3133,12 @@
    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 GetLVLimit(self): return self.LVLimit # 限制等级
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
    def GetGiftbagList(self): return self.GiftbagList # 礼包模板类型列表
    def GetGiftbagTypeList(self): return self.GiftbagTypeList # 礼包类型列表
    def GetMailKey(self): return self.MailKey # 活动更新时发送邮件key
    def GetMailItemPrize(self): return self.MailItemPrize # 活动更新时发送邮件奖励物品
# 限时礼包模板表
class IPY_FlashGiftbag():
@@ -2821,6 +3161,38 @@
    def GetMainItemID(self): return self.MainItemID # 标的物品ID
    def GetNotifyKey(self): return self.NotifyKey # 全服广播key,默认两个参数(玩家名, 档位额度)
# 双倍经验活动表
class IPY_ActExpRate():
    def __init__(self):
        self.CfgID = 0
        self.LVLimit = 0
        self.AddExpRate = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetAddExpRate(self): return self.AddExpRate # 经验倍率加成,万分率
# 消费返利活动表
class IPY_ActCostRebate():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.LVLimit = 0
        self.IsDayReset = 0
        self.TemplateIDList = []
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
    def GetTemplateIDList(self): return self.TemplateIDList # 模板ID列表
# 消费返利模板表
class IPY_CostRebateTemplate():
    
@@ -2838,6 +3210,25 @@
    def GetAwardItemList(self): return self.AwardItemList # 返利物品信息列表 [(物品ID,个数,是否绑定),...]
    def GetNotifyKey(self): return self.NotifyKey # 全服广播key,默认两个参数(玩家名, 档位额度)
# BOSS复活活动时间表
class IPY_ActBossReborn():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.ResetType = 0
        self.LVLimit = 0
        self.TemplateID = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
    def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetTemplateID(self): return self.TemplateID # 模板编号
# BOSS复活表
class IPY_BossReborn():
    
@@ -2854,6 +3245,21 @@
    def GetTotalTimes(self): return self.TotalTimes # 可完成的总次数,0表示不限次数
    def GetSingleTimes(self): return self.SingleTimes # 单次领奖需要的次数
    def GetReward(self): return self.Reward # 奖励物品ID1
# 多倍修行点活动时间表
class IPY_ActRealmPoint():
    def __init__(self):
        self.CfgID = 0
        self.Multiple = 0
        self.LVLimit = 0
        self.PointLimit = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetMultiple(self): return self.Multiple # 倍数
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetPointLimit(self): return self.PointLimit # 限制额外修行点
# 宗门试炼兑换表
class IPY_TrialExchange():
@@ -2918,6 +3324,373 @@
    def GetLowLV(self): return self.LowLV #  推荐最低等级
    def GetHighestLV(self): return self.HighestLV #  推荐最高等级
    def GetDefense(self): return self.Defense #  推荐防御
# 天赋技能表
class IPY_TalentSkill():
    def __init__(self):
        self.SkillID = 0
        self.TalentType = 0
        self.Series = 0
        return
    def GetSkillID(self): return self.SkillID # 技能ID
    def GetTalentType(self): return self.TalentType # 天赋类型
    def GetSeries(self): return self.Series # 天赋系别
# 限时抢购表
class IPY_ActFlashSale():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.StartTimeList = []
        self.EndTimeList = []
        self.AdvanceMinutes = 0
        self.LVLimit = 0
        self.IsDayReset = 0
        self.ShopTypeList = []
        self.MailKey = ""
        self.MailItemPrize = []
        return
    def GetCfgID(self): return self.CfgID # 配置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 GetLVLimit(self): return self.LVLimit # 限制等级
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
    def GetShopTypeList(self): return self.ShopTypeList # 商店类型列表
    def GetMailKey(self): return self.MailKey # 活动更新时发送邮件key
    def GetMailItemPrize(self): return self.MailItemPrize # 活动更新时发送邮件奖励物品
# 许愿池活动时间表
class IPY_ActWishingWell():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.IsDayReset = 0
        self.ResetType = 0
        self.LVLimit = 0
        self.TemplateID = 0
        return
    def GetCfgID(self): return self.CfgID # 配置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 GetLVLimit(self): return self.LVLimit # 限制等级
    def GetTemplateID(self): return self.TemplateID # 模板编号
# 许愿池库模板表
class IPY_WishingWell():
    def __init__(self):
        self.TemplateID = 0
        self.IsFree = 0
        self.WorldLVLimit = []
        self.ItemID = 0
        self.ItemCnt = 0
        self.IsBind = 0
        self.Weight = 0
        self.Mark = 0
        self.Rare = 0
        return
    def GetTemplateID(self): return self.TemplateID # 模板ID
    def GetIsFree(self): return self.IsFree # 是否免费库
    def GetWorldLVLimit(self): return self.WorldLVLimit # 世界等级范围
    def GetItemID(self): return self.ItemID # 物品ID
    def GetItemCnt(self): return self.ItemCnt # 物品数量
    def GetIsBind(self): return self.IsBind # 是否绑定
    def GetWeight(self): return self.Weight # 权重
    def GetMark(self): return self.Mark # 排序用标识
    def GetRare(self): return self.Rare # 珍稀值
# 功能预告表
class IPY_FunctionForecast():
    def __init__(self):
        self.FuncID = 0
        self.Award = {}
        return
    def GetFuncID(self): return self.FuncID # 功能ID
    def GetAward(self): return self.Award # 属性类型
# 聊天气泡表
class IPY_ChatBubbleBox():
    def __init__(self):
        self.BoxID = 0
        self.NeedLV = 0
        self.NeedVIPLVGift = 0
        return
    def GetBoxID(self): return self.BoxID # 气泡框ID
    def GetNeedLV(self): return self.NeedLV # 所需等级
    def GetNeedVIPLVGift(self): return self.NeedVIPLVGift # 所需购买VIP等级礼包
# 累计充值活动表
class IPY_ActTotalRecharge():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.LVLimit = 0
        self.IsDayReset = 0
        self.TemplateIDList = []
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
    def GetTemplateIDList(self): return self.TemplateIDList # 模板ID列表
# 累计充值模板表
class IPY_TotalRechargeTemplate():
    def __init__(self):
        self.TemplateID = 0
        self.NeedGold = 0
        self.AwardIndex = 0
        self.AwardItem = {}
        self.NotifyKey = ""
        return
    def GetTemplateID(self): return self.TemplateID # 模板ID
    def GetNeedGold(self): return self.NeedGold # 需要充值仙玉数
    def GetAwardIndex(self): return self.AwardIndex # 返利奖励索引0~31,同个模板中不重复
    def GetAwardItem(self): return self.AwardItem # 返利物品信息列表 {职业:[(物品ID,个数,是否绑定),...]}
    def GetNotifyKey(self): return self.NotifyKey # 全服广播key,默认两个参数(玩家名, 档位额度)
# 法宝副本表
class IPY_MagicWeaponFB():
    def __init__(self):
        self.MWID = 0
        self.LineID = 0
        self.Level = 0
        self.RefreshNPC = []
        self.AttrDict = {}
        return
    def GetMWID(self): return self.MWID # 法宝ID
    def GetLineID(self): return self.LineID # 副本功能线路ID
    def GetLevel(self): return self.Level # 关卡
    def GetRefreshNPC(self): return self.RefreshNPC # 刷怪配置
    def GetAttrDict(self): return self.AttrDict # 属性
# 冰晶矿脉星级奖励表
class IPY_IceLodeStarAward():
    def __init__(self):
        self.Index = 0
        self.Star = 0
        self.LVLimit = []
        self.ItemList = []
        return
    def GetIndex(self): return self.Index # 奖励索引
    def GetStar(self): return self.Star # 星数
    def GetLVLimit(self): return self.LVLimit # 等级范围
    def GetItemList(self): return self.ItemList # 奖励
# 神兵特效表
class IPY_GodWeaponEffect():
    def __init__(self):
        self.GWType = 0
        self.Level = 0
        self.NotifyCode = ""
        self.FightPower = 0
        self.Attr = {}
        return
    def GetGWType(self): return self.GWType # 神兵类型
    def GetLevel(self): return self.Level # 神兵等级
    def GetNotifyCode(self): return self.NotifyCode # 广播
    def GetFightPower(self): return self.FightPower # 增加战力
    def GetAttr(self): return self.Attr # 属性加成
# 跨服竞技场段位表
class IPY_CrossRealmPKDan():
    def __init__(self):
        self.DanLV = 0
        self.DanLVAwardList = []
        self.SeasonDanLVAwardList = []
        return
    def GetDanLV(self): return self.DanLV # 段位等级
    def GetDanLVAwardList(self): return self.DanLVAwardList # 段位达标奖励物品列表
    def GetSeasonDanLVAwardList(self): return self.SeasonDanLVAwardList # 赛季段位奖励物品列表
# 跨服Boss蓬莱仙境分区表
class IPY_CrossPenglaiZone():
    def __init__(self):
        self.ZoneID = 0
        self.ServerGroupIDList = []
        self.MapID = 0
        self.DataMapID = 0
        self.CopyMapID = 0
        self.PosX = 0
        self.PosY = 0
        return
    def GetZoneID(self): return self.ZoneID # 分区ID
    def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器组ID列表
    def GetMapID(self): return self.MapID # 场景地图ID
    def GetDataMapID(self): return self.DataMapID # 数据地图ID
    def GetCopyMapID(self): return self.CopyMapID # 虚拟线路ID
    def GetPosX(self): return self.PosX # 坐标X
    def GetPosY(self): return self.PosY # 坐标Y
# 聚魂表
class IPY_GatherSoul():
    def __init__(self):
        self.ItemID = 0
        self.AttrType = []
        self.SoulGrade = 0
        return
    def GetItemID(self): return self.ItemID # 物品ID
    def GetAttrType(self): return self.AttrType # 属性类型
    def GetSoulGrade(self): return self.SoulGrade # 魂阶段
# 聚魂合成表
class IPY_GatherSoulCompound():
    def __init__(self):
        self.TagItemID = 0
        self.NeedLV = 0
        self.NeedItem = []
        self.NeedSoulSplinters = 0
        self.NeedSoulCore = 0
        return
    def GetTagItemID(self): return self.TagItemID # 合成的物品ID
    def GetNeedLV(self): return self.NeedLV # 需要的玩家等级
    def GetNeedItem(self): return self.NeedItem # 需要的物品ID
    def GetNeedSoulSplinters(self): return self.NeedSoulSplinters # 需要的聚魂碎片
    def GetNeedSoulCore(self): return self.NeedSoulCore # 需要的核心环
# 聚魂属性表
class IPY_GatherSoulAttr():
    def __init__(self):
        self.AttrType = 0
        self.AttrInfo1 = ""
        self.AttrInfo2 = {}
        self.AttrInfo3 = {}
        self.AttrInfo4 = {}
        self.AttrInfo5 = {}
        return
    def GetAttrType(self): return self.AttrType # 属性类型
    def GetAttrInfo1(self): return self.AttrInfo1 # 基础属性-参数聚魂等级level
    def GetAttrInfo2(self): return self.AttrInfo2 # 品质系数(品质_系数|…)
    def GetAttrInfo3(self): return self.AttrInfo3 # 多属性系数
    def GetAttrInfo4(self): return self.AttrInfo4 # 初始属性(品质_属性值|…)
    def GetAttrInfo5(self): return self.AttrInfo5 # 阶段系数
# 王者法宝表
class IPY_MagicWeaponOfKing():
    def __init__(self):
        self.MWID = 0
        self.AwardMark = 0
        self.AddAttr = {}
        return
    def GetMWID(self): return self.MWID # 法宝ID
    def GetAwardMark(self): return self.AwardMark # 赛季奖励等级
    def GetAddAttr(self): return self.AddAttr # 属性
# 时装表
class IPY_Coat():
    def __init__(self):
        self.CoatID = 0
        self.EquipItemID = []
        self.UnlockItemID = 0
        self.MaxLV = 0
        self.CostItemCnt = []
        self.StarAttr = {}
        return
    def GetCoatID(self): return self.CoatID # 时装编号
    def GetEquipItemID(self): return self.EquipItemID # 装备物品ID(按职业顺序)
    def GetUnlockItemID(self): return self.UnlockItemID # 材料物品ID
    def GetMaxLV(self): return self.MaxLV # 最大星级
    def GetCostItemCnt(self): return self.CostItemCnt # 材料数量
    def GetStarAttr(self): return self.StarAttr # 属性
# 时装柜升级表
class IPY_CoatChestUp():
    def __init__(self):
        self.LV = 0
        self.NeedExp = 0
        self.AddAttr = {}
        return
    def GetLV(self): return self.LV # 等级
    def GetNeedExp(self): return self.NeedExp # 升级所需经验
    def GetAddAttr(self): return self.AddAttr # 属性
# 周狂欢活动时间表
class IPY_ActWeekParty():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.IsDayReset = 0
        self.ResetType = 0
        self.LVLimit = 0
        self.TemplateID = []
        self.PointAward = {}
        return
    def GetCfgID(self): return self.CfgID # 配置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 GetLVLimit(self): return self.LVLimit # 限制等级
    def GetTemplateID(self): return self.TemplateID # 模板编号
    def GetPointAward(self): return self.PointAward # 总积分奖励
# 周狂欢表
class IPY_WeekParty():
    def __init__(self):
        self.TemplateID = 0
        self.ActionType = 0
        self.TotalTimes = 0
        self.SingleTimes = 0
        self.Reward = []
        self.Point = 0
        return
    def GetTemplateID(self): return self.TemplateID # 模板ID
    def GetActionType(self): return self.ActionType # 活动条目ID
    def GetTotalTimes(self): return self.TotalTimes # 可完成的总次数,0表示不限次数
    def GetSingleTimes(self): return self.SingleTimes # 单次领奖需要的次数
    def GetReward(self): return self.Reward # 奖励物品
    def GetPoint(self): return self.Point # 积分
def Log(msg, playerID=0, par=0):
@@ -3013,6 +3786,8 @@
        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.ipyNPCCustomRefreshCache = self.__LoadFileData("NPCCustomRefresh", IPY_NPCCustomRefresh)
        self.ipyNPCCustomRefreshLen = len(self.ipyNPCCustomRefreshCache)
        self.ipyDailyActionCache = self.__LoadFileData("DailyAction", IPY_DailyAction)
@@ -3109,10 +3884,18 @@
        self.ipyActFlashGiftbagLen = len(self.ipyActFlashGiftbagCache)
        self.ipyFlashGiftbagCache = self.__LoadFileData("FlashGiftbag", IPY_FlashGiftbag)
        self.ipyFlashGiftbagLen = len(self.ipyFlashGiftbagCache)
        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.ipyCostRebateTemplateCache = self.__LoadFileData("CostRebateTemplate", IPY_CostRebateTemplate)
        self.ipyCostRebateTemplateLen = len(self.ipyCostRebateTemplateCache)
        self.ipyActBossRebornCache = self.__LoadFileData("ActBossReborn", IPY_ActBossReborn)
        self.ipyActBossRebornLen = len(self.ipyActBossRebornCache)
        self.ipyBossRebornCache = self.__LoadFileData("BossReborn", IPY_BossReborn)
        self.ipyBossRebornLen = len(self.ipyBossRebornCache)
        self.ipyActRealmPointCache = self.__LoadFileData("ActRealmPoint", IPY_ActRealmPoint)
        self.ipyActRealmPointLen = len(self.ipyActRealmPointCache)
        self.ipyTrialExchangeCache = self.__LoadFileData("TrialExchange", IPY_TrialExchange)
        self.ipyTrialExchangeLen = len(self.ipyTrialExchangeCache)
        self.ipyAllPeoplePartyCache = self.__LoadFileData("AllPeopleParty", IPY_AllPeopleParty)
@@ -3121,6 +3904,48 @@
        self.ipyAllPeoplePartyAwardLen = len(self.ipyAllPeoplePartyAwardCache)
        self.ipyMapEventPointCache = self.__LoadFileData("MapEventPoint", IPY_MapEventPoint)
        self.ipyMapEventPointLen = len(self.ipyMapEventPointCache)
        self.ipyTalentSkillCache = self.__LoadFileData("TalentSkill", IPY_TalentSkill)
        self.ipyTalentSkillLen = len(self.ipyTalentSkillCache)
        self.ipyActFlashSaleCache = self.__LoadFileData("ActFlashSale", IPY_ActFlashSale)
        self.ipyActFlashSaleLen = len(self.ipyActFlashSaleCache)
        self.ipyActWishingWellCache = self.__LoadFileData("ActWishingWell", IPY_ActWishingWell)
        self.ipyActWishingWellLen = len(self.ipyActWishingWellCache)
        self.ipyWishingWellCache = self.__LoadFileData("WishingWell", IPY_WishingWell)
        self.ipyWishingWellLen = len(self.ipyWishingWellCache)
        self.ipyFunctionForecastCache = self.__LoadFileData("FunctionForecast", IPY_FunctionForecast)
        self.ipyFunctionForecastLen = len(self.ipyFunctionForecastCache)
        self.ipyChatBubbleBoxCache = self.__LoadFileData("ChatBubbleBox", IPY_ChatBubbleBox)
        self.ipyChatBubbleBoxLen = len(self.ipyChatBubbleBoxCache)
        self.ipyActTotalRechargeCache = self.__LoadFileData("ActTotalRecharge", IPY_ActTotalRecharge)
        self.ipyActTotalRechargeLen = len(self.ipyActTotalRechargeCache)
        self.ipyTotalRechargeTemplateCache = self.__LoadFileData("TotalRechargeTemplate", IPY_TotalRechargeTemplate)
        self.ipyTotalRechargeTemplateLen = len(self.ipyTotalRechargeTemplateCache)
        self.ipyMagicWeaponFBCache = self.__LoadFileData("MagicWeaponFB", IPY_MagicWeaponFB)
        self.ipyMagicWeaponFBLen = len(self.ipyMagicWeaponFBCache)
        self.ipyIceLodeStarAwardCache = self.__LoadFileData("IceLodeStarAward", IPY_IceLodeStarAward)
        self.ipyIceLodeStarAwardLen = len(self.ipyIceLodeStarAwardCache)
        self.ipyGodWeaponEffectCache = self.__LoadFileData("GodWeaponEffect", IPY_GodWeaponEffect)
        self.ipyGodWeaponEffectLen = len(self.ipyGodWeaponEffectCache)
        self.ipyCrossRealmPKDanCache = self.__LoadFileData("CrossRealmPKDan", IPY_CrossRealmPKDan)
        self.ipyCrossRealmPKDanLen = len(self.ipyCrossRealmPKDanCache)
        self.ipyCrossPenglaiZoneCache = self.__LoadFileData("CrossPenglaiZone", IPY_CrossPenglaiZone)
        self.ipyCrossPenglaiZoneLen = len(self.ipyCrossPenglaiZoneCache)
        self.ipyGatherSoulCache = self.__LoadFileData("GatherSoul", IPY_GatherSoul)
        self.ipyGatherSoulLen = len(self.ipyGatherSoulCache)
        self.ipyGatherSoulCompoundCache = self.__LoadFileData("GatherSoulCompound", IPY_GatherSoulCompound)
        self.ipyGatherSoulCompoundLen = len(self.ipyGatherSoulCompoundCache)
        self.ipyGatherSoulAttrCache = self.__LoadFileData("GatherSoulAttr", IPY_GatherSoulAttr)
        self.ipyGatherSoulAttrLen = len(self.ipyGatherSoulAttrCache)
        self.ipyMagicWeaponOfKingCache = self.__LoadFileData("MagicWeaponOfKing", IPY_MagicWeaponOfKing)
        self.ipyMagicWeaponOfKingLen = len(self.ipyMagicWeaponOfKingCache)
        self.ipyCoatCache = self.__LoadFileData("Coat", IPY_Coat)
        self.ipyCoatLen = len(self.ipyCoatCache)
        self.ipyCoatChestUpCache = self.__LoadFileData("CoatChestUp", IPY_CoatChestUp)
        self.ipyCoatChestUpLen = len(self.ipyCoatChestUpCache)
        self.ipyActWeekPartyCache = self.__LoadFileData("ActWeekParty", IPY_ActWeekParty)
        self.ipyActWeekPartyLen = len(self.ipyActWeekPartyCache)
        self.ipyWeekPartyCache = self.__LoadFileData("WeekParty", IPY_WeekParty)
        self.ipyWeekPartyLen = len(self.ipyWeekPartyCache)
        Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
        Log("IPY_DataMgr InitOK!")
        return
@@ -3212,22 +4037,26 @@
        for i, strValue in enumerate(rowList):
            if i == 0:
                continue
            fieldName = fieldList[i][1]
            strValue = strValue.lstrip().rstrip()
            if strValue.isdigit():
                configValue = int(strValue)
            elif (strValue.startswith("{") and strValue.endswith("}")) \
                or (strValue.startswith("[") and strValue.endswith("]")) \
                or (strValue.startswith("(") and strValue.endswith(")")):
                configValue = eval(strValue)
            elif "_" in strValue and type(self.__StrToDict(strValue)) == dict:
                configValue = self.__StrToDict(strValue)
            elif ChConfig.Def_Str_Montant in strValue:
                configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ","))
            elif strValue in ["-", ""]:
                configValue = ""
            else:
                configValue = self.__ToFloat(strValue)
            try:
                fieldName = fieldList[i][1]
                strValue = strValue.lstrip().rstrip()
                if strValue.isdigit():
                    configValue = int(strValue)
                elif (strValue.startswith("{") and strValue.endswith("}")) \
                    or (strValue.startswith("[") and strValue.endswith("]")) \
                    or (strValue.startswith("(") and strValue.endswith(")")):
                    configValue = eval(strValue)
                elif "_" in strValue and type(self.__StrToDict(strValue)) == dict:
                    configValue = self.__StrToDict(strValue)
                elif ChConfig.Def_Str_Montant in strValue:
                    configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ","))
                elif strValue in ["-", ""]:
                    configValue = ""
                else:
                    configValue = self.__ToFloat(strValue)
            except BaseException:
                ErrLog("SetIpyDataError: tableName=%s,key=%s,i=%s,value=%s" % ("FuncConfig", key, i, strValue))
                raise
            setattr(funcConfigObj, fieldName, configValue)
        self.ipyFuncConfigDict[key] = funcConfigObj
        return
@@ -3353,6 +4182,8 @@
    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 GetNPCCustomRefreshCount(self): return self.ipyNPCCustomRefreshLen
    def GetNPCCustomRefreshByIndex(self, index): return self.ipyNPCCustomRefreshCache[index]
    def GetDailyActionCount(self): return self.ipyDailyActionLen
@@ -3449,10 +4280,18 @@
    def GetActFlashGiftbagByIndex(self, index): return self.ipyActFlashGiftbagCache[index]
    def GetFlashGiftbagCount(self): return self.ipyFlashGiftbagLen
    def GetFlashGiftbagByIndex(self, index): return self.ipyFlashGiftbagCache[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 GetCostRebateTemplateCount(self): return self.ipyCostRebateTemplateLen
    def GetCostRebateTemplateByIndex(self, index): return self.ipyCostRebateTemplateCache[index]
    def GetActBossRebornCount(self): return self.ipyActBossRebornLen
    def GetActBossRebornByIndex(self, index): return self.ipyActBossRebornCache[index]
    def GetBossRebornCount(self): return self.ipyBossRebornLen
    def GetBossRebornByIndex(self, index): return self.ipyBossRebornCache[index]
    def GetActRealmPointCount(self): return self.ipyActRealmPointLen
    def GetActRealmPointByIndex(self, index): return self.ipyActRealmPointCache[index]
    def GetTrialExchangeCount(self): return self.ipyTrialExchangeLen
    def GetTrialExchangeByIndex(self, index): return self.ipyTrialExchangeCache[index]
    def GetAllPeoplePartyCount(self): return self.ipyAllPeoplePartyLen
@@ -3461,6 +4300,48 @@
    def GetAllPeoplePartyAwardByIndex(self, index): return self.ipyAllPeoplePartyAwardCache[index]
    def GetMapEventPointCount(self): return self.ipyMapEventPointLen
    def GetMapEventPointByIndex(self, index): return self.ipyMapEventPointCache[index]
    def GetTalentSkillCount(self): return self.ipyTalentSkillLen
    def GetTalentSkillByIndex(self, index): return self.ipyTalentSkillCache[index]
    def GetActFlashSaleCount(self): return self.ipyActFlashSaleLen
    def GetActFlashSaleByIndex(self, index): return self.ipyActFlashSaleCache[index]
    def GetActWishingWellCount(self): return self.ipyActWishingWellLen
    def GetActWishingWellByIndex(self, index): return self.ipyActWishingWellCache[index]
    def GetWishingWellCount(self): return self.ipyWishingWellLen
    def GetWishingWellByIndex(self, index): return self.ipyWishingWellCache[index]
    def GetFunctionForecastCount(self): return self.ipyFunctionForecastLen
    def GetFunctionForecastByIndex(self, index): return self.ipyFunctionForecastCache[index]
    def GetChatBubbleBoxCount(self): return self.ipyChatBubbleBoxLen
    def GetChatBubbleBoxByIndex(self, index): return self.ipyChatBubbleBoxCache[index]
    def GetActTotalRechargeCount(self): return self.ipyActTotalRechargeLen
    def GetActTotalRechargeByIndex(self, index): return self.ipyActTotalRechargeCache[index]
    def GetTotalRechargeTemplateCount(self): return self.ipyTotalRechargeTemplateLen
    def GetTotalRechargeTemplateByIndex(self, index): return self.ipyTotalRechargeTemplateCache[index]
    def GetMagicWeaponFBCount(self): return self.ipyMagicWeaponFBLen
    def GetMagicWeaponFBByIndex(self, index): return self.ipyMagicWeaponFBCache[index]
    def GetIceLodeStarAwardCount(self): return self.ipyIceLodeStarAwardLen
    def GetIceLodeStarAwardByIndex(self, index): return self.ipyIceLodeStarAwardCache[index]
    def GetGodWeaponEffectCount(self): return self.ipyGodWeaponEffectLen
    def GetGodWeaponEffectByIndex(self, index): return self.ipyGodWeaponEffectCache[index]
    def GetCrossRealmPKDanCount(self): return self.ipyCrossRealmPKDanLen
    def GetCrossRealmPKDanByIndex(self, index): return self.ipyCrossRealmPKDanCache[index]
    def GetCrossPenglaiZoneCount(self): return self.ipyCrossPenglaiZoneLen
    def GetCrossPenglaiZoneByIndex(self, index): return self.ipyCrossPenglaiZoneCache[index]
    def GetGatherSoulCount(self): return self.ipyGatherSoulLen
    def GetGatherSoulByIndex(self, index): return self.ipyGatherSoulCache[index]
    def GetGatherSoulCompoundCount(self): return self.ipyGatherSoulCompoundLen
    def GetGatherSoulCompoundByIndex(self, index): return self.ipyGatherSoulCompoundCache[index]
    def GetGatherSoulAttrCount(self): return self.ipyGatherSoulAttrLen
    def GetGatherSoulAttrByIndex(self, index): return self.ipyGatherSoulAttrCache[index]
    def GetMagicWeaponOfKingCount(self): return self.ipyMagicWeaponOfKingLen
    def GetMagicWeaponOfKingByIndex(self, index): return self.ipyMagicWeaponOfKingCache[index]
    def GetCoatCount(self): return self.ipyCoatLen
    def GetCoatByIndex(self, index): return self.ipyCoatCache[index]
    def GetCoatChestUpCount(self): return self.ipyCoatChestUpLen
    def GetCoatChestUpByIndex(self, index): return self.ipyCoatChestUpCache[index]
    def GetActWeekPartyCount(self): return self.ipyActWeekPartyLen
    def GetActWeekPartyByIndex(self, index): return self.ipyActWeekPartyCache[index]
    def GetWeekPartyCount(self): return self.ipyWeekPartyLen
    def GetWeekPartyByIndex(self, index): return self.ipyWeekPartyCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData
@@ -3655,7 +4536,7 @@
    '''查询条件下与对应查询字段参考值相近的数据实例;参考值小于配置表最小值时返回none,大于最大值时返回最大值对应的实例
    @param dtName: 表名,不含tag
    @param keyName: 参考字段名
    @param keyValue: 参考字段值
    @param keyValue: 参考字段值,大于等于字段值时返回对应数据
    @param conditionDict: 查询条件,{查询字段名:字段值, ...}
    @return: 找不到数据返回 None , 否则返回对应的 ipyData 数据实例
    '''
@@ -3687,7 +4568,7 @@
        for i in xrange(near - 1, low - 1, -1):
            nearData = dataList[i]
            nearValue = getattr(nearData, "%s" % keyName)
            if nearValue < keyValue:
            if nearValue <= keyValue:
                return nearData
            
    elif keyValue > nearValue: