hch
2019-05-09 5900ca084b3e9d549ff9d4246a2e15cf1bd68a59
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -44,8 +44,8 @@
                "RolePoint":(
                        ("BYTE", "AttrID", 1),
                        ("dict", "AddAttrInfoPerPoint", 0),
                        ("BYTE", "PointQualityAttrID", 0),
                        ("list", "PointQualityAttrValueList", 0),
                        ("dict", "PointQualityAttrIDDict", 0),
                        ("dict", "PointQualityAttrValueDict", 0),
                        ("list", "PointQualityIntervalList", 0),
                        ),
@@ -54,6 +54,7 @@
                        ("DWORD", "NeedLV", 0),
                        ("DWORD", "NeedItemID", 0),
                        ("WORD", "NeedItemCnt", 0),
                        ("list", "NeedEquip", 0),
                        ("list", "AddAttrType", 0),
                        ("list", "AddAttrNum", 0),
                        ("DWORD", "BossID", 0),
@@ -122,12 +123,6 @@
                        ("BYTE", "Type", 1),
                        ("BYTE", "Star", 1),
                        ("WORD", "LevelMax", 0),
                        ),
                "ItemPlusSumAttr":(
                        ("WORD", "PlusCntNeed", 1),
                        ("list", "AttrType", 0),
                        ("list", "AttrValue", 0),
                        ),
                "RoleEquipStars":(
@@ -208,17 +203,11 @@
                        ("list", "GoldWashCostList", 0),
                        ),
                "EquipWashSpec":(
                        ("BYTE", "WashTypeNeed", 1),
                        ("BYTE", "WashLVNeed", 1),
                        ("list", "AddAttrType", 0),
                        ("list", "AddAttrValue", 0),
                        ),
                "AttrFruit":(
                        ("DWORD", "ID", 1),
                        ("BYTE", "FuncID", 0),
                        ("WORD", "MaxUseCnt", 0),
                        ("dict", "MaxUseCnt", 0),
                        ("list", "AddItemInfo", 0),
                        ("WORD", "RecycleMoney", 0),
                        ("DWORD", "FightPowerEx", 0),
                        ),
@@ -344,6 +333,13 @@
                        ("DWORD", "IceDefCoefficient", 0),
                        ("DWORD", "MaxEnduranceTime", 0),
                        ("DWORD", "FightPowerCoefficient", 0),
                        ),
                "NPCTimeLostHP":(
                        ("DWORD", "NPCID", 1),
                        ("DWORD", "LostHPPerSecond", 0),
                        ("BYTE", "MaxPlayerCount", 0),
                        ("DWORD", "LostHPPerSecondEx", 0),
                        ),
                "EquipSuitAttr":(
@@ -514,6 +510,10 @@
                "DailyAction":(
                        ("DWORD", "DailyID", 1),
                        ("DWORD", "DayTimes", 0),
                        ("DWORD", "DayBuyTimes", 0),
                        ("DWORD", "BuyNeedMoney", 0),
                        ("DWORD", "DayItemAddTimes", 0),
                        ("DWORD", "DayItemID", 0),
                        ("BYTE", "DayResetType", 0),
                        ("DWORD", "WeekTimes", 0),
                        ("BYTE", "WeekResetType", 0),
@@ -522,46 +522,20 @@
                "EquipGSParam":(
                        ("BYTE", "ClassLV", 1),
                        ("BYTE", "EquipColor", 1),
                        ("BYTE", "EquipQualityLV", 1),
                        ("DWORD", "AtkPerC", 0),
                        ("DWORD", "DamagePerC", 0),
                        ("DWORD", "SuperHitRateC", 0),
                        ("BYTE", "IsSuit", 1),
                        ("DWORD", "BaseEquipMaxHPAddPerC", 0),
                        ("DWORD", "BaseEquipAtkAddPerC", 0),
                        ("DWORD", "SuperHitC", 0),
                        ("DWORD", "SuperHitPerC", 0),
                        ("DWORD", "DamReducePerC", 0),
                        ("DWORD", "MaxHPPerC", 0),
                        ("DWORD", "DefPerC", 0),
                        ("DWORD", "LuckyHitRateC", 0),
                        ("DWORD", "PetDamPerC", 0),
                        ("DWORD", "LuckyHitRateReduceC", 0),
                        ("DWORD", "LuckPerC", 0),
                        ("DWORD", "PerLVAtkC", 0),
                        ("DWORD", "MissRateC", 0),
                        ("DWORD", "HitRateC", 0),
                        ("DWORD", "DamBackPerC", 0),
                        ("DWORD", "PerLVMaxHPC", 0),
                        ("DWORD", "DropEquipPerC", 0),
                        ("DWORD", "DropMoneyPerC", 0),
                        ("DWORD", "IgnoreDefRateReduceC", 0),
                        ("DWORD", "DamChanceDefC", 0),
                        ("DWORD", "SuperHitReduceC", 0),
                        ("DWORD", "SkillAtkRateC", 0),
                        ("DWORD", "SpeedPerC", 0),
                        ("DWORD", "AtkSpeedC", 0),
                        ("DWORD", "SkillAtkRateReduceC", 0),
                        ("DWORD", "HitC", 0),
                        ("DWORD", "MissC", 0),
                        ("DWORD", "SkillAddPer1C", 0),
                        ("DWORD", "SkillAddPer2C", 0),
                        ("DWORD", "SkillAddPer3C", 0),
                        ("DWORD", "SkillAddPer4C", 0),
                        ("DWORD", "SkillAddPer5C", 0),
                        ("DWORD", "SkillAddPer6C", 0),
                        ("DWORD", "SkillAddPer7C", 0),
                        ("DWORD", "SkillReducePer1C", 0),
                        ("DWORD", "SkillReducePer2C", 0),
                        ("DWORD", "SkillReducePer3C", 0),
                        ("DWORD", "SkillReducePer4C", 0),
                        ("DWORD", "SkillReducePer5C", 0),
                        ("DWORD", "SkillReducePer6C", 0),
                        ("DWORD", "SkillReducePer7C", 0),
                        ),
                "Success":(
@@ -583,9 +557,9 @@
                        ("DWORD", "ID", 1),
                        ("BYTE", "TreasureType", 0),
                        ("DWORD", "PreTreasure", 0),
                        ("list", "SuccID", 0),
                        ("list", "Potentials", 0),
                        ("list", "SkillPower", 0),
                        ("DWORD", "FBMapID", 0),
                        ("DWORD", "FBLineID", 0),
                        ("DWORD", "NeedLV", 0),
                        ("dict", "NeedItem", 0),
                        ),
@@ -595,9 +569,6 @@
                        ("DWORD", "NeedExp", 0),
                        ("dict", "AddAttr", 0),
                        ("list", "UnLockSkill", 0),
                        ("DWORD", "ActiveMWID", 0),
                        ("list", "ItemAward", 0),
                        ("DWORD", "ActiveSoulID", 0),
                        ("DWORD", "PowerEx", 0),
                        ),
@@ -729,27 +700,25 @@
                "RefineStove":(
                        ("BYTE", "StoveLV", 1),
                        ("DWORD", "UpNeedExp", 0),
                        ("list", "AddAttrType", 0),
                        ("list", "AddAttrNum", 0),
                        ),
                "Alchemy":(
                        ("WORD", "AlchemyID", 1),
                        ("dict", "Material", 0),
                        ("DWORD", "ID", 1),
                        ("DWORD", "AlchemItemID", 0),
                        ("BYTE", "AlchemType", 0),
                        ("BYTE", "AlchemyQuality", 0),
                        ("DWORD", "LearnNeedItemID", 0),
                        ("BYTE", "LearnNeedAlchemLV", 0),
                        ("WORD", "LearnNeedLuck", 0),
                        ("WORD", "NeedTime", 0),
                        ("WORD", "AlchemyExp", 0),
                        ("list", "AlchemyItem", 0),
                        ("list", "SpecAlchemyID", 0),
                        ("list", "AlchemyUp", 0),
                        ("BYTE", "NeedAlchemyLV", 0),
                        ("dict", "Material", 0),
                        ),
                "AlchemySpec":(
                        ("WORD", "SpecAlchemyID", 1),
                        ("DWORD", "MaterialID", 0),
                        ("BYTE", "MaterialCnt", 0),
                        ("WORD", "AlchemyExp", 0),
                        ("list", "AlchemyItem", 0),
                        ("BYTE", "NeedAlchemyLV", 0),
                "AlchemyResult":(
                        ("BYTE", "AlchemyQuality", 1),
                        ("DWORD", "LuckValue", 0),
                        ("list", "CntRateList", 0),
                        ),
                "BOSSInfo":(
@@ -815,6 +784,17 @@
                        ("char", "MoneyCount", 0),
                        ),
                "MapRefreshNPC":(
                        ("DWORD", "MapID", 1),
                        ("BYTE", "RefreshNum", 0),
                        ("list", "NPCIDList", 0),
                        ("list", "RefreshMarkList", 0),
                        ("BYTE", "PointMaxCount", 0),
                        ("BYTE", "TotalMaxCount", 0),
                        ("BYTE", "RefreshSeconds", 0),
                        ("BYTE", "RefreshPerMinutes", 0),
                        ),
                "RuneCompound":(
                        ("DWORD", "TagItemID", 1),
                        ("list", "NeedItem", 0),
@@ -835,11 +815,27 @@
                "CollectNPC":(
                        ("DWORD", "NPCID", 1),
                        ("BYTE", "IsMissionCollectNPC", 0),
                        ("BYTE", "PrepareTime", 0),
                        ("list", "LostHPPer", 0),
                        ("BYTE", "MaxCollectCount", 0),
                        ("BYTE", "CollectResetType", 0),
                        ("char", "CollectCountLimitNotify", 0),
                        ("list", "CollectAward", 0),
                        ("dict", "CollectAppointAward", 0),
                        ("BYTE", "AlchemyDiffLV", 0),
                        ("BYTE", "NotifyCollectResult", 0),
                        ("BYTE", "CanBreakCollect", 0),
                        ),
                "TreasureNPC":(
                        ("DWORD", "NPCID", 1),
                        ("dict", "AttackCountDropWeightInfo", 0),
                        ("list", "AttackDropWeightList", 0),
                        ("list", "AttackDropWeightListEx", 0),
                        ("BYTE", "DropCountEx", 0),
                        ("BYTE", "AlchemyDiffLV", 0),
                        ("char", "NotDropNotify", 0),
                        ),
                "Chests":(
@@ -1184,6 +1180,12 @@
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossZonePK":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossPenglaiZoneMap":(
                        ("BYTE", "ZoneID", 0),
                        ("DWORD", "MapID", 1),
@@ -1292,15 +1294,6 @@
                        ("DWORD", "ZhuXianScore", 0),
                        ),
                "ZhuXianTower":(
                        ("DWORD", "ID", 1),
                        ("DWORD", "NPCID", 0),
                        ("list", "FirstAward", 0),
                        ("dict", "GradeAward", 0),
                        ("WORD", "UnLockEquipPlace", 0),
                        ("DWORD", "NeedPower", 0),
                        ),
                "ZhuXianEquipDecompose":(
                        ("BYTE", "ClassLV", 1),
                        ("dict", "DecomposeInfo", 0),
@@ -1401,13 +1394,73 @@
                "FamilyBossAward":(
                        ("list", "WorldLV", 0),
                        ("list", "Rank", 0),
                        ("list", "Award", 0),
                        ("list", "Award1", 0),
                        ("dict", "Award2", 0),
                        ),
                "ItemWashMax":(
                        ("BYTE", "Type", 1),
                        ("BYTE", "Star", 1),
                        ("WORD", "LevelMax", 0),
                        ),
                "HorsePetBossAward":(
                        ("BYTE", "LineID", 1),
                        ("list", "WorldLV", 0),
                        ("list", "Rank", 0),
                        ("list", "Award1", 0),
                        ("dict", "Award2", 0),
                        ),
                "FairyDomain":(
                        ("WORD", "ID", 1),
                        ("BYTE", "EventType", 0),
                        ("DWORD", "MapID", 0),
                        ("BYTE", "LineID", 0),
                        ("DWORD", "BossID", 0),
                        ("BYTE", "CostEnergy", 0),
                        ("BYTE", "NeedAlchemyLV", 0),
                        ("list", "NeedLV", 0),
                        ("DWORD", "Weight", 0),
                        ("DWORD", "HourCntPriLimit", 0),
                        ("DWORD", "DayCntPriLimit", 0),
                        ),
                "FairyAdventures":(
                        ("WORD", "ID", 1),
                        ("DWORD", "OpenServerDay", 0),
                        ("BYTE", "EventID", 0),
                        ("list", "Condition", 0),
                        ("list", "GearAward", 0),
                        ("list", "BasicAward", 0),
                        ),
                "FairyDomainAppoint":(
                        ("WORD", "Cnt", 1),
                        ("DWORD", "EventID", 0),
                        ("list", "Award", 0),
                        ),
                "FBBuyBuff":(
                        ("DWORD", "MapId", 1),
                        ("WORD", "MoneyCnt", 1),
                        ("DWORD", "BuffID", 0),
                        ("WORD", "BuffCD", 0),
                        ),
                "SkillElement":(
                        ("DWORD", "ElementSkillID", 1),
                        ("DWORD", "MainSkillID", 0),
                        ("DWORD", "NeedLV", 0),
                        ),
                "SkyTower":(
                        ("DWORD", "FloorID", 1),
                        ("DWORD", "BossID", 0),
                        ("dict", "Reward", 0),
                        ("WORD", "NeedLV", 0),
                        ("DWORD", "FightPower", 0),
                        ("BYTE", "IsNotify", 0),
                        ),
                }
@@ -1437,15 +1490,15 @@
    def __init__(self):
        self.AttrID = 0
        self.AddAttrInfoPerPoint = {}
        self.PointQualityAttrID = 0
        self.PointQualityAttrValueList = []
        self.PointQualityAttrIDDict = {}
        self.PointQualityAttrValueDict = {}
        self.PointQualityIntervalList = []
        return
        
    def GetAttrID(self): return self.AttrID # 属性ID
    def GetAddAttrInfoPerPoint(self): return self.AddAttrInfoPerPoint # 每点增加属性信息
    def GetPointQualityAttrID(self): return self.PointQualityAttrID # 点数品质进阶增加属性ID
    def GetPointQualityAttrValueList(self): return self.PointQualityAttrValueList # 点数品质进阶增加属性值列表
    def GetPointQualityAttrIDDict(self): return self.PointQualityAttrIDDict # 点数品质进阶增加属性ID, 根据职业区分
    def GetPointQualityAttrValueDict(self): return self.PointQualityAttrValueDict # 点数品质进阶增加属性值列表, 根据职业区分
    def GetPointQualityIntervalList(self): return self.PointQualityIntervalList # 点数品质进阶属性点区间列表
# 境界表
@@ -1456,6 +1509,7 @@
        self.NeedLV = 0
        self.NeedItemID = 0
        self.NeedItemCnt = 0
        self.NeedEquip = []
        self.AddAttrType = []
        self.AddAttrNum = []
        self.BossID = 0
@@ -1468,6 +1522,7 @@
    def GetNeedLV(self): return self.NeedLV # 需要等级
    def GetNeedItemID(self): return self.NeedItemID # 需要道具ID
    def GetNeedItemCnt(self): return self.NeedItemCnt # 消耗的道具数量
    def GetNeedEquip(self): return self.NeedEquip # 需要8部位装备条件阶级|品质|是否套装
    def GetAddAttrType(self): return self.AddAttrType # 境界加成属性类型
    def GetAddAttrNum(self): return self.AddAttrNum # 境界加成属性值
    def GetBossID(self): return self.BossID # 渡劫bossid
@@ -1604,19 +1659,6 @@
    def GetType(self): return self.Type # 按装备位对应类型查找
    def GetStar(self): return self.Star #  装备星数
    def GetLevelMax(self): return self.LevelMax # 强化等级上限
# 装备全身强化属性
class IPY_ItemPlusSumAttr():
    def __init__(self):
        self.PlusCntNeed = 0
        self.AttrType = []
        self.AttrValue = []
        return
    def GetPlusCntNeed(self): return self.PlusCntNeed # 全身强化等级
    def GetAttrType(self): return self.AttrType # 全身强化激活属性类型
    def GetAttrValue(self): return self.AttrValue # 全身强化激活属性值
# 装备全身星数属性
class IPY_RoleEquipStars():
@@ -1783,35 +1825,22 @@
    def GetCostItemCount(self): return self.CostItemCount #  固定消耗物品个数
    def GetGoldWashCostList(self): return self.GoldWashCostList #  仙玉洗练条数对应消耗
# 洗练特殊属性表
class IPY_EquipWashSpec():
    def __init__(self):
        self.WashTypeNeed = 0
        self.WashLVNeed = 0
        self.AddAttrType = []
        self.AddAttrValue = []
        return
    def GetWashTypeNeed(self): return self.WashTypeNeed #  所需装备归组类型
    def GetWashLVNeed(self): return self.WashLVNeed #  所需洗练等级
    def GetAddAttrType(self): return self.AddAttrType # 激活加成属性类型
    def GetAddAttrValue(self): return self.AddAttrValue # 激活加成属性值
# 属性果实表
class IPY_AttrFruit():
    
    def __init__(self):
        self.ID = 0
        self.FuncID = 0
        self.MaxUseCnt = 0
        self.MaxUseCnt = {}
        self.AddItemInfo = []
        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 GetMaxUseCnt(self): return self.MaxUseCnt # 境界对应最大可使用数量
    def GetAddItemInfo(self): return self.AddItemInfo # [增幅丹ID,单次物品数量,单次增加上限]
    def GetRecycleMoney(self): return self.RecycleMoney # 回收货币值
    def GetFightPowerEx(self): return self.FightPowerEx # 附加战斗力
@@ -2069,6 +2098,21 @@
    def GetIceDefCoefficient(self): return self.IceDefCoefficient # 元素抗性比例
    def GetMaxEnduranceTime(self): return self.MaxEnduranceTime # 玩家最大承受伤害时间
    def GetFightPowerCoefficient(self): return self.FightPowerCoefficient # 压制战斗力系数
# NPC时间掉血表
class IPY_NPCTimeLostHP():
    def __init__(self):
        self.NPCID = 0
        self.LostHPPerSecond = 0
        self.MaxPlayerCount = 0
        self.LostHPPerSecondEx = 0
        return
    def GetNPCID(self): return self.NPCID # NPCID
    def GetLostHPPerSecond(self): return self.LostHPPerSecond # 单人每秒掉血量
    def GetMaxPlayerCount(self): return self.MaxPlayerCount # 最大人数
    def GetLostHPPerSecondEx(self): return self.LostHPPerSecondEx # 每增加一人附加掉血量
# 装备套装属性表
class IPY_EquipSuitAttr():
@@ -2417,6 +2461,10 @@
    def __init__(self):
        self.DailyID = 0
        self.DayTimes = 0
        self.DayBuyTimes = 0
        self.BuyNeedMoney = 0
        self.DayItemAddTimes = 0
        self.DayItemID = 0
        self.DayResetType = 0
        self.WeekTimes = 0
        self.WeekResetType = 0
@@ -2424,6 +2472,10 @@
        
    def GetDailyID(self): return self.DailyID # 活动ID
    def GetDayTimes(self): return self.DayTimes # 每日次数, 0为不限制
    def GetDayBuyTimes(self): return self.DayBuyTimes # 每日可购买次数
    def GetBuyNeedMoney(self): return self.BuyNeedMoney # 购买次数需要仙玉
    def GetDayItemAddTimes(self): return self.DayItemAddTimes # 每日可用物品增加次数
    def GetDayItemID(self): return self.DayItemID # 增加次数的物品ID
    def GetDayResetType(self): return self.DayResetType # 每日次数重置类型; 0-不重置,1-0点,2-5点
    def GetWeekTimes(self): return self.WeekTimes # 每周次数, 0为不限制
    def GetWeekResetType(self): return self.WeekResetType # 每周次数重置类型; 0-不重置,1-0点,2-5点
@@ -2434,90 +2486,38 @@
    def __init__(self):
        self.ClassLV = 0
        self.EquipColor = 0
        self.EquipQualityLV = 0
        self.AtkPerC = 0
        self.DamagePerC = 0
        self.SuperHitRateC = 0
        self.IsSuit = 0
        self.BaseEquipMaxHPAddPerC = 0
        self.BaseEquipAtkAddPerC = 0
        self.SuperHitC = 0
        self.SuperHitPerC = 0
        self.DamReducePerC = 0
        self.MaxHPPerC = 0
        self.DefPerC = 0
        self.LuckyHitRateC = 0
        self.PetDamPerC = 0
        self.LuckyHitRateReduceC = 0
        self.LuckPerC = 0
        self.PerLVAtkC = 0
        self.MissRateC = 0
        self.HitRateC = 0
        self.DamBackPerC = 0
        self.PerLVMaxHPC = 0
        self.DropEquipPerC = 0
        self.DropMoneyPerC = 0
        self.IgnoreDefRateReduceC = 0
        self.DamChanceDefC = 0
        self.SuperHitReduceC = 0
        self.SkillAtkRateC = 0
        self.SpeedPerC = 0
        self.AtkSpeedC = 0
        self.SkillAtkRateReduceC = 0
        self.HitC = 0
        self.MissC = 0
        self.SkillAddPer1C = 0
        self.SkillAddPer2C = 0
        self.SkillAddPer3C = 0
        self.SkillAddPer4C = 0
        self.SkillAddPer5C = 0
        self.SkillAddPer6C = 0
        self.SkillAddPer7C = 0
        self.SkillReducePer1C = 0
        self.SkillReducePer2C = 0
        self.SkillReducePer3C = 0
        self.SkillReducePer4C = 0
        self.SkillReducePer5C = 0
        self.SkillReducePer6C = 0
        self.SkillReducePer7C = 0
        self.MissC = 0
        return
        
    def GetClassLV(self): return self.ClassLV #  装备阶级
    def GetEquipColor(self): return self.EquipColor #  装备颜色
    def GetEquipQualityLV(self): return self.EquipQualityLV #  装备星级
    def GetAtkPerC(self): return self.AtkPerC #  攻击百分比系数
    def GetDamagePerC(self): return self.DamagePerC #  增加伤害系数
    def GetSuperHitRateC(self): return self.SuperHitRateC #  暴击率系数
    def GetIsSuit(self): return self.IsSuit #  是否套装
    def GetBaseEquipMaxHPAddPerC(self): return self.BaseEquipMaxHPAddPerC #  基础防具生命百分比系数
    def GetBaseEquipAtkAddPerC(self): return self.BaseEquipAtkAddPerC #  基础武器攻击百分比系数
    def GetSuperHitC(self): return self.SuperHitC #  暴击值系数
    def GetSuperHitPerC(self): return self.SuperHitPerC #  暴击值百分比系数
    def GetDamReducePerC(self): return self.DamReducePerC #  减少伤害系数
    def GetMaxHPPerC(self): return self.MaxHPPerC #  生命上限百分比系数
    def GetDefPerC(self): return self.DefPerC #  防御力百分比系数
    def GetLuckyHitRateC(self): return self.LuckyHitRateC #  会心一击率系数
    def GetPetDamPerC(self): return self.PetDamPerC #  灵宠伤害增加百分比系数
    def GetLuckyHitRateReduceC(self): return self.LuckyHitRateReduceC #  会心一击抗性系数
    def GetLuckPerC(self): return self.LuckPerC #  气运百分比系数
    def GetPerLVAtkC(self): return self.PerLVAtkC #  每级增加攻击力系数
    def GetMissRateC(self): return self.MissRateC #  闪避值百分比系数
    def GetHitRateC(self): return self.HitRateC #  命中力百分比系数
    def GetDamBackPerC(self): return self.DamBackPerC #  伤害反射百分比系数
    def GetPerLVMaxHPC(self): return self.PerLVMaxHPC #  每级增加生命值系数
    def GetDropEquipPerC(self): return self.DropEquipPerC #  增加装备掉落几率系数
    def GetDropMoneyPerC(self): return self.DropMoneyPerC #  增加掉落金币量百分比系数
    def GetIgnoreDefRateReduceC(self): return self.IgnoreDefRateReduceC #  无视防御抗性百分比系数
    def GetDamChanceDefC(self): return self.DamChanceDefC #  抵御百分比系数
    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 GetSkillAtkRateReduceC(self): return self.SkillAtkRateReduceC #  技能减伤百分比系数
    def GetHitC(self): return self.HitC #  命中系数
    def GetMissC(self): return self.MissC #  闪避系数
    def GetSkillAddPer1C(self): return self.SkillAddPer1C #  技能伤害增强1系数
    def GetSkillAddPer2C(self): return self.SkillAddPer2C #  技能伤害增强2系数
    def GetSkillAddPer3C(self): return self.SkillAddPer3C #  技能伤害增强3系数
    def GetSkillAddPer4C(self): return self.SkillAddPer4C #  技能伤害增强4系数
    def GetSkillAddPer5C(self): return self.SkillAddPer5C #  技能伤害增强5系数
    def GetSkillAddPer6C(self): return self.SkillAddPer6C #  技能伤害增强6系数
    def GetSkillAddPer7C(self): return self.SkillAddPer7C #  技能伤害增强7系数
    def GetSkillReducePer1C(self): return self.SkillReducePer1C #  受到技能伤害减少1系数
    def GetSkillReducePer2C(self): return self.SkillReducePer2C #  受到技能伤害减少2系数
    def GetSkillReducePer3C(self): return self.SkillReducePer3C #  受到技能伤害减少3系数
    def GetSkillReducePer4C(self): return self.SkillReducePer4C #  受到技能伤害减少4系数
    def GetSkillReducePer5C(self): return self.SkillReducePer5C #  受到技能伤害减少5系数
    def GetSkillReducePer6C(self): return self.SkillReducePer6C #  受到技能伤害减少6系数
    def GetSkillReducePer7C(self): return self.SkillReducePer7C #  受到技能伤害减少7系数
    def GetMissC(self): return self.MissC #  闪避系数
# 成就表
class IPY_Success():
@@ -2557,18 +2557,18 @@
        self.ID = 0
        self.TreasureType = 0
        self.PreTreasure = 0
        self.SuccID = []
        self.Potentials = []
        self.SkillPower = []
        self.FBMapID = 0
        self.FBLineID = 0
        self.NeedLV = 0
        self.NeedItem = {}
        return
        
    def GetID(self): return self.ID # ID
    def GetTreasureType(self): return self.TreasureType # 法宝类型
    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 GetFBMapID(self): return self.FBMapID # 副本ID
    def GetFBLineID(self): return self.FBLineID # 副本线路ID
    def GetNeedLV(self): return self.NeedLV # 需要等级
    def GetNeedItem(self): return self.NeedItem # 需要消耗物品
# 法宝升级表
@@ -2580,9 +2580,6 @@
        self.NeedExp = 0
        self.AddAttr = {}
        self.UnLockSkill = []
        self.ActiveMWID = 0
        self.ItemAward = []
        self.ActiveSoulID = 0
        self.PowerEx = 0
        return
        
@@ -2591,9 +2588,6 @@
    def GetNeedExp(self): return self.NeedExp # 需要经验
    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 GetActiveSoulID(self): return self.ActiveSoulID # 激活魂ID
    def GetPowerEx(self): return self.PowerEx # 额外固定战力
# 连续签到奖励表
@@ -2862,55 +2856,51 @@
    
    def __init__(self):
        self.StoveLV = 0
        self.UpNeedExp = 0
        self.AddAttrType = []
        self.AddAttrNum = []
        self.UpNeedExp = 0
        return
        
    def GetStoveLV(self): return self.StoveLV # 炼丹炉等级
    def GetUpNeedExp(self): return self.UpNeedExp # 升下一级所需经验
    def GetAddAttrType(self): return self.AddAttrType # 等级加成属性类型
    def GetAddAttrNum(self): return self.AddAttrNum # 等级加成属性值
    def GetUpNeedExp(self): return self.UpNeedExp # 升下一级所需经验
# 炼丹表
class IPY_Alchemy():
    
    def __init__(self):
        self.AlchemyID = 0
        self.Material = {}
        self.ID = 0
        self.AlchemItemID = 0
        self.AlchemType = 0
        self.AlchemyQuality = 0
        self.LearnNeedItemID = 0
        self.LearnNeedAlchemLV = 0
        self.LearnNeedLuck = 0
        self.NeedTime = 0
        self.AlchemyExp = 0
        self.AlchemyItem = []
        self.SpecAlchemyID = []
        self.AlchemyUp = []
        self.NeedAlchemyLV = 0
        self.Material = {}
        return
        
    def GetAlchemyID(self): return self.AlchemyID # 炼丹编号
    def GetMaterial(self): return self.Material # 所需所有材料和数量
    def GetID(self): return self.ID # 秘方唯一ID不可变更
    def GetAlchemItemID(self): return self.AlchemItemID # 丹药物品ID
    def GetAlchemType(self): return self.AlchemType # 秘方类型1-灵丹 2-仙丹
    def GetAlchemyQuality(self): return self.AlchemyQuality # 秘方品级
    def GetLearnNeedItemID(self): return self.LearnNeedItemID # 丹方物品ID
    def GetLearnNeedAlchemLV(self): return self.LearnNeedAlchemLV # 丹方需要炼丹等级
    def GetLearnNeedLuck(self): return self.LearnNeedLuck # 丹方需要慧根
    def GetNeedTime(self): return self.NeedTime # 炼丹时间(秒)
    def GetAlchemyExp(self): return self.AlchemyExp # 炼丹获得经验值
    def GetAlchemyItem(self): return self.AlchemyItem # 产出物品及数量及权重
    def GetSpecAlchemyID(self): return self.SpecAlchemyID # 特殊炼丹ID组
    def GetAlchemyUp(self): return self.AlchemyUp # 产出包含的进阶丹药
    def GetNeedAlchemyLV(self): return self.NeedAlchemyLV # 所需炼丹等级
    def GetMaterial(self): return self.Material # 炼丹材料
# 炼丹特殊产出表
class IPY_AlchemySpec():
# 炼丹数量表
class IPY_AlchemyResult():
    
    def __init__(self):
        self.SpecAlchemyID = 0
        self.MaterialID = 0
        self.MaterialCnt = 0
        self.AlchemyExp = 0
        self.AlchemyItem = []
        self.NeedAlchemyLV = 0
        self.AlchemyQuality = 0
        self.LuckValue = 0
        self.CntRateList = []
        return
        
    def GetSpecAlchemyID(self): return self.SpecAlchemyID # 特殊炼丹ID
    def GetMaterialID(self): return self.MaterialID # 特殊材料ID
    def GetMaterialCnt(self): return self.MaterialCnt # 特殊材料ID消耗个数
    def GetAlchemyExp(self): return self.AlchemyExp # 特殊材料经验
    def GetAlchemyItem(self): return self.AlchemyItem # 产出物品及数量及权重
    def GetNeedAlchemyLV(self): return self.NeedAlchemyLV # 所需炼丹等级
    def GetAlchemyQuality(self): return self.AlchemyQuality # 丹方等级
    def GetLuckValue(self): return self.LuckValue # 慧根
    def GetCntRateList(self): return self.CntRateList # 数量饼图
# BOSS信息表
class IPY_BOSSInfo():
@@ -3047,6 +3037,29 @@
    def GetInspireMaxLV(self): return self.InspireMaxLV # 鼓舞等级限制
    def GetMoneyCount(self): return self.MoneyCount # 单次消耗金钱数量
# 地图标试点NPC刷新
class IPY_MapRefreshNPC():
    def __init__(self):
        self.MapID = 0
        self.RefreshNum = 0
        self.NPCIDList = []
        self.RefreshMarkList = []
        self.PointMaxCount = 0
        self.TotalMaxCount = 0
        self.RefreshSeconds = 0
        self.RefreshPerMinutes = 0
        return
    def GetMapID(self): return self.MapID # 地图ID
    def GetRefreshNum(self): return self.RefreshNum # 刷怪规则编号
    def GetNPCIDList(self): return self.NPCIDList # NPCID列表
    def GetRefreshMarkList(self): return self.RefreshMarkList # 标试点列表
    def GetPointMaxCount(self): return self.PointMaxCount # 单个点最大存在怪物数
    def GetTotalMaxCount(self): return self.TotalMaxCount # 所有点总怪物数
    def GetRefreshSeconds(self): return self.RefreshSeconds # 刷怪间隔秒
    def GetRefreshPerMinutes(self): return self.RefreshPerMinutes # 每整X分刷怪
# 符印合成表
class IPY_RuneCompound():
    
@@ -3090,19 +3103,52 @@
    
    def __init__(self):
        self.NPCID = 0
        self.IsMissionCollectNPC = 0
        self.PrepareTime = 0
        self.LostHPPer = []
        self.MaxCollectCount = 0
        self.CollectResetType = 0
        self.CollectCountLimitNotify = ""
        self.CollectAward = []
        self.CollectAward = []
        self.CollectAppointAward = {}
        self.AlchemyDiffLV = 0
        self.NotifyCollectResult = 0
        self.CanBreakCollect = 0
        return
        
    def GetNPCID(self): return self.NPCID # ID
    def GetIsMissionCollectNPC(self): return self.IsMissionCollectNPC # 是否任务采集物
    def GetPrepareTime(self): return self.PrepareTime # 采集耗时,秒
    def GetLostHPPer(self): return self.LostHPPer # 采集掉血,[每X秒,掉血百分比]
    def GetMaxCollectCount(self): return self.MaxCollectCount # 每日可采集次数,0限制
    def GetMaxCollectCount(self): return self.MaxCollectCount # 可采集次数,0无限制
    def GetCollectResetType(self): return self.CollectResetType # 采集次数重置类型,0-不重置,1-每日5点重置
    def GetCollectCountLimitNotify(self): return self.CollectCountLimitNotify # 无采集次数采集提示
    def GetCollectAward(self): return self.CollectAward # 采集奖励物品, [物品ID,个数,是否绑定]
    def GetCollectAward(self): return self.CollectAward # 采集奖励物品,权重列表 [[权重, [物品ID,个数,是否拍品]], ...]
    def GetCollectAppointAward(self): return self.CollectAppointAward # 采集次数定制产出 {次数:[物品ID,个数,是否拍品], ...}
    def GetAlchemyDiffLV(self): return self.AlchemyDiffLV # 过滤炼丹等级差,0-不过滤,>0过滤大于自身炼丹等级X级的物品
    def GetNotifyCollectResult(self): return self.NotifyCollectResult # 是否通知采集结果
    def GetCanBreakCollect(self): return self.CanBreakCollect # 被攻击是否打断采集
# 宝箱怪表
class IPY_TreasureNPC():
    def __init__(self):
        self.NPCID = 0
        self.AttackCountDropWeightInfo = {}
        self.AttackDropWeightList = []
        self.AttackDropWeightListEx = []
        self.DropCountEx = 0
        self.AlchemyDiffLV = 0
        self.NotDropNotify = ""
        return
    def GetNPCID(self): return self.NPCID # 宝箱怪NPCID
    def GetAttackCountDropWeightInfo(self): return self.AttackCountDropWeightInfo # 攻击次数对应掉落权重饼图 {次数:[[权重, [物品ID,个数,是否拍品]], ...], ...}
    def GetAttackDropWeightList(self): return self.AttackDropWeightList # 常规攻击权重饼图 [[权重, [物品ID,个数,是否拍品]], ...]
    def GetAttackDropWeightListEx(self): return self.AttackDropWeightListEx # 额外掉落权重饼图库,每次攻击都会掉落  [[权重, [物品ID,个数,是否拍品]], ...]
    def GetDropCountEx(self): return self.DropCountEx # 额外库执行次数
    def GetAlchemyDiffLV(self): return self.AlchemyDiffLV # 过滤炼丹等级差,0-不过滤,>0过滤大于自身炼丹等级X级的物品
    def GetNotDropNotify(self): return self.NotDropNotify # 没有掉落时提示信息
# 宝箱表开启
class IPY_Chests():
@@ -3829,6 +3875,19 @@
    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.ServerGroupIDList = []
        return
    def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名
    def GetZoneID(self): return self.ZoneID # 赛区ID
    def GetServerGroupIDList(self): return self.ServerGroupIDList # 赛区服务器组ID列表
# 跨服Boss蓬莱仙境分区地图表
class IPY_CrossPenglaiZoneMap():
    
@@ -4058,25 +4117,6 @@
    def GetRealmLV(self): return self.RealmLV # 需要境界
    def GetZhuXianScore(self): return self.ZhuXianScore # 需要诛仙总评分
# 诛仙塔表
class IPY_ZhuXianTower():
    def __init__(self):
        self.ID = 0
        self.NPCID = 0
        self.FirstAward = []
        self.GradeAward = {}
        self.UnLockEquipPlace = 0
        self.NeedPower = 0
        return
    def GetID(self): return self.ID # 塔编号
    def GetNPCID(self): return self.NPCID # npcid
    def GetFirstAward(self): return self.FirstAward # 首次S级奖励
    def GetGradeAward(self): return self.GradeAward # 评级奖励
    def GetUnLockEquipPlace(self): return self.UnLockEquipPlace # 解锁的装备位
    def GetNeedPower(self): return self.NeedPower # 推荐战力
# 诛仙装备分解表
class IPY_ZhuXianEquipDecompose():
    
@@ -4289,12 +4329,14 @@
    def __init__(self):
        self.WorldLV = []
        self.Rank = []
        self.Award = []
        self.Award1 = []
        self.Award2 = {}
        return
        
    def GetWorldLV(self): return self.WorldLV # 世界等级
    def GetRank(self): return self.Rank # 排名
    def GetAward(self): return self.Award # 奖励 [[独立概率万分率,[物品ID,数量,拍品分组]],..]
    def GetAward1(self): return self.Award1 # 奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
    def GetAward2(self): return self.Award2 # 饼图奖励{随机次数:[(概率,[物品ID,数量,是否拍品]),..]}
# 装备洗练等级上限
class IPY_ItemWashMax():
@@ -4308,6 +4350,131 @@
    def GetType(self): return self.Type # 按装备位对应类型查找
    def GetStar(self): return self.Star #  装备星数
    def GetLevelMax(self): return self.LevelMax # 洗练等级上限
# 骑宠Boss奖励表
class IPY_HorsePetBossAward():
    def __init__(self):
        self.LineID = 0
        self.WorldLV = []
        self.Rank = []
        self.Award1 = []
        self.Award2 = {}
        return
    def GetLineID(self): return self.LineID #  线路ID
    def GetWorldLV(self): return self.WorldLV # 世界等级
    def GetRank(self): return self.Rank # 排名
    def GetAward1(self): return self.Award1 # 奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
    def GetAward2(self): return self.Award2 # 饼图奖励{随机次数:[(概率,[物品ID,数量,是否拍品]),..]}
# 缥缈仙域表
class IPY_FairyDomain():
    def __init__(self):
        self.ID = 0
        self.EventType = 0
        self.MapID = 0
        self.LineID = 0
        self.BossID = 0
        self.CostEnergy = 0
        self.NeedAlchemyLV = 0
        self.NeedLV = []
        self.Weight = 0
        self.HourCntPriLimit = 0
        self.DayCntPriLimit = 0
        return
    def GetID(self): return self.ID # 事件编号
    def GetEventType(self): return self.EventType # 事件类型
    def GetMapID(self): return self.MapID # 副本id
    def GetLineID(self): return self.LineID # 副本线路id
    def GetBossID(self): return self.BossID # 副本BossID
    def GetCostEnergy(self): return self.CostEnergy # 消耗体力
    def GetNeedAlchemyLV(self): return self.NeedAlchemyLV # 出现的炼丹等级要求
    def GetNeedLV(self): return self.NeedLV # 出现的玩家等级要求
    def GetWeight(self): return self.Weight # 权重
    def GetHourCntPriLimit(self): return self.HourCntPriLimit # 个人每小时次数限制
    def GetDayCntPriLimit(self): return self.DayCntPriLimit # 个人每天次数限制
# 缥缈奇遇表
class IPY_FairyAdventures():
    def __init__(self):
        self.ID = 0
        self.OpenServerDay = 0
        self.EventID = 0
        self.Condition = []
        self.GearAward = []
        self.BasicAward = []
        return
    def GetID(self): return self.ID # ΨһID
    def GetOpenServerDay(self): return self.OpenServerDay # 开服天
    def GetEventID(self): return self.EventID # 事件编号
    def GetCondition(self): return self.Condition # 条件
    def GetGearAward(self): return self.GearAward # 档位奖励
    def GetBasicAward(self): return self.BasicAward # 保底奖励
# 缥缈仙域定制表
class IPY_FairyDomainAppoint():
    def __init__(self):
        self.Cnt = 0
        self.EventID = 0
        self.Award = []
        return
    def GetCnt(self): return self.Cnt # 次数
    def GetEventID(self): return self.EventID # 事件编号
    def GetAward(self): return self.Award # 定制奖励(没配走正常奖励规则)[[物品ID,数量,是否拍品],..]
# 副本Buff表
class IPY_FBBuyBuff():
    def __init__(self):
        self.MapId = 0
        self.MoneyCnt = 0
        self.BuffID = 0
        self.BuffCD = 0
        return
    def GetMapId(self): return self.MapId #
    def GetMoneyCnt(self): return self.MoneyCnt # 仙玉数量
    def GetBuffID(self): return self.BuffID # BuffID
    def GetBuffCD(self): return self.BuffCD # 间隔时间s
# 技能升级表
class IPY_SkillElement():
    def __init__(self):
        self.ElementSkillID = 0
        self.MainSkillID = 0
        self.NeedLV = 0
        return
    def GetElementSkillID(self): return self.ElementSkillID # 专精技能ID
    def GetMainSkillID(self): return self.MainSkillID # 主技能ID
    def GetNeedLV(self): return self.NeedLV # 选择需要等级
# 天星塔表
class IPY_SkyTower():
    def __init__(self):
        self.FloorID = 0
        self.BossID = 0
        self.Reward = {}
        self.NeedLV = 0
        self.FightPower = 0
        self.IsNotify = 0
        return
    def GetFloorID(self): return self.FloorID # 层
    def GetBossID(self): return self.BossID # bossID
    def GetReward(self): return self.Reward # 奖励
    def GetNeedLV(self): return self.NeedLV # 要求等级
    def GetFightPower(self): return self.FightPower # 推荐战力
    def GetIsNotify(self): return self.IsNotify # 是否广播
def Log(msg, playerID=0, par=0):
@@ -4351,8 +4518,6 @@
        self.ipyItemPlusLen = len(self.ipyItemPlusCache)
        self.ipyItemPlusMaxCache = self.__LoadFileData("ItemPlusMax", IPY_ItemPlusMax)
        self.ipyItemPlusMaxLen = len(self.ipyItemPlusMaxCache)
        self.ipyItemPlusSumAttrCache = self.__LoadFileData("ItemPlusSumAttr", IPY_ItemPlusSumAttr)
        self.ipyItemPlusSumAttrLen = len(self.ipyItemPlusSumAttrCache)
        self.ipyRoleEquipStarsCache = self.__LoadFileData("RoleEquipStars", IPY_RoleEquipStars)
        self.ipyRoleEquipStarsLen = len(self.ipyRoleEquipStarsCache)
        self.ipyEquipLegendAttrCountCache = self.__LoadFileData("EquipLegendAttrCount", IPY_EquipLegendAttrCount)
@@ -4371,8 +4536,6 @@
        self.ipyRuneLen = len(self.ipyRuneCache)
        self.ipyEquipWashCache = self.__LoadFileData("EquipWash", IPY_EquipWash)
        self.ipyEquipWashLen = len(self.ipyEquipWashCache)
        self.ipyEquipWashSpecCache = self.__LoadFileData("EquipWashSpec", IPY_EquipWashSpec)
        self.ipyEquipWashSpecLen = len(self.ipyEquipWashSpecCache)
        self.ipyAttrFruitCache = self.__LoadFileData("AttrFruit", IPY_AttrFruit)
        self.ipyAttrFruitLen = len(self.ipyAttrFruitCache)
        self.ipyPetInfoCache = self.__LoadFileData("PetInfo", IPY_PetInfo)
@@ -4393,6 +4556,8 @@
        self.ipyGMAttrLen = len(self.ipyGMAttrCache)
        self.ipyNPCStrengthenCache = self.__LoadFileData("NPCStrengthen", IPY_NPCStrengthen)
        self.ipyNPCStrengthenLen = len(self.ipyNPCStrengthenCache)
        self.ipyNPCTimeLostHPCache = self.__LoadFileData("NPCTimeLostHP", IPY_NPCTimeLostHP)
        self.ipyNPCTimeLostHPLen = len(self.ipyNPCTimeLostHPCache)
        self.ipyEquipSuitAttrCache = self.__LoadFileData("EquipSuitAttr", IPY_EquipSuitAttr)
        self.ipyEquipSuitAttrLen = len(self.ipyEquipSuitAttrCache)
        self.ipyWingRefineAttrCache = self.__LoadFileData("WingRefineAttr", IPY_WingRefineAttr)
@@ -4451,8 +4616,8 @@
        self.ipyRefineStoveLen = len(self.ipyRefineStoveCache)
        self.ipyAlchemyCache = self.__LoadFileData("Alchemy", IPY_Alchemy)
        self.ipyAlchemyLen = len(self.ipyAlchemyCache)
        self.ipyAlchemySpecCache = self.__LoadFileData("AlchemySpec", IPY_AlchemySpec)
        self.ipyAlchemySpecLen = len(self.ipyAlchemySpecCache)
        self.ipyAlchemyResultCache = self.__LoadFileData("AlchemyResult", IPY_AlchemyResult)
        self.ipyAlchemyResultLen = len(self.ipyAlchemyResultCache)
        self.ipyBOSSInfoCache = self.__LoadFileData("BOSSInfo", IPY_BOSSInfo)
        self.ipyBOSSInfoLen = len(self.ipyBOSSInfoCache)
        self.ipyElderGodAreaCache = self.__LoadFileData("ElderGodArea", IPY_ElderGodArea)
@@ -4471,12 +4636,16 @@
        self.ipySealDemonLen = len(self.ipySealDemonCache)
        self.ipyFbEncourageCache = self.__LoadFileData("FbEncourage", IPY_FbEncourage)
        self.ipyFbEncourageLen = len(self.ipyFbEncourageCache)
        self.ipyMapRefreshNPCCache = self.__LoadFileData("MapRefreshNPC", IPY_MapRefreshNPC)
        self.ipyMapRefreshNPCLen = len(self.ipyMapRefreshNPCCache)
        self.ipyRuneCompoundCache = self.__LoadFileData("RuneCompound", IPY_RuneCompound)
        self.ipyRuneCompoundLen = len(self.ipyRuneCompoundCache)
        self.ipyResourcesBackCache = self.__LoadFileData("ResourcesBack", IPY_ResourcesBack)
        self.ipyResourcesBackLen = len(self.ipyResourcesBackCache)
        self.ipyCollectNPCCache = self.__LoadFileData("CollectNPC", IPY_CollectNPC)
        self.ipyCollectNPCLen = len(self.ipyCollectNPCCache)
        self.ipyTreasureNPCCache = self.__LoadFileData("TreasureNPC", IPY_TreasureNPC)
        self.ipyTreasureNPCLen = len(self.ipyTreasureNPCCache)
        self.ipyChestsCache = self.__LoadFileData("Chests", IPY_Chests)
        self.ipyChestsLen = len(self.ipyChestsCache)
        self.ipyChestsAwardCache = self.__LoadFileData("ChestsAward", IPY_ChestsAward)
@@ -4559,6 +4728,8 @@
        self.ipyCrossRealmPKOrderAwardLen = len(self.ipyCrossRealmPKOrderAwardCache)
        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.ipyCrossPenglaiZoneMapCache = self.__LoadFileData("CrossPenglaiZoneMap", IPY_CrossPenglaiZoneMap)
        self.ipyCrossPenglaiZoneMapLen = len(self.ipyCrossPenglaiZoneMapCache)
        self.ipyGatherSoulCache = self.__LoadFileData("GatherSoul", IPY_GatherSoul)
@@ -4585,8 +4756,6 @@
        self.ipyZhuXianSuitAttrLen = len(self.ipyZhuXianSuitAttrCache)
        self.ipyZhuXianBossCache = self.__LoadFileData("ZhuXianBoss", IPY_ZhuXianBoss)
        self.ipyZhuXianBossLen = len(self.ipyZhuXianBossCache)
        self.ipyZhuXianTowerCache = self.__LoadFileData("ZhuXianTower", IPY_ZhuXianTower)
        self.ipyZhuXianTowerLen = len(self.ipyZhuXianTowerCache)
        self.ipyZhuXianEquipDecomposeCache = self.__LoadFileData("ZhuXianEquipDecompose", IPY_ZhuXianEquipDecompose)
        self.ipyZhuXianEquipDecomposeLen = len(self.ipyZhuXianEquipDecomposeCache)
        self.ipyActFeastWeekPartyCache = self.__LoadFileData("ActFeastWeekParty", IPY_ActFeastWeekParty)
@@ -4615,6 +4784,20 @@
        self.ipyFamilyBossAwardLen = len(self.ipyFamilyBossAwardCache)
        self.ipyItemWashMaxCache = self.__LoadFileData("ItemWashMax", IPY_ItemWashMax)
        self.ipyItemWashMaxLen = len(self.ipyItemWashMaxCache)
        self.ipyHorsePetBossAwardCache = self.__LoadFileData("HorsePetBossAward", IPY_HorsePetBossAward)
        self.ipyHorsePetBossAwardLen = len(self.ipyHorsePetBossAwardCache)
        self.ipyFairyDomainCache = self.__LoadFileData("FairyDomain", IPY_FairyDomain)
        self.ipyFairyDomainLen = len(self.ipyFairyDomainCache)
        self.ipyFairyAdventuresCache = self.__LoadFileData("FairyAdventures", IPY_FairyAdventures)
        self.ipyFairyAdventuresLen = len(self.ipyFairyAdventuresCache)
        self.ipyFairyDomainAppointCache = self.__LoadFileData("FairyDomainAppoint", IPY_FairyDomainAppoint)
        self.ipyFairyDomainAppointLen = len(self.ipyFairyDomainAppointCache)
        self.ipyFBBuyBuffCache = self.__LoadFileData("FBBuyBuff", IPY_FBBuyBuff)
        self.ipyFBBuyBuffLen = len(self.ipyFBBuyBuffCache)
        self.ipySkillElementCache = self.__LoadFileData("SkillElement", IPY_SkillElement)
        self.ipySkillElementLen = len(self.ipySkillElementCache)
        self.ipySkyTowerCache = self.__LoadFileData("SkyTower", IPY_SkyTower)
        self.ipySkyTowerLen = len(self.ipySkyTowerCache)
        Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
        Log("IPY_DataMgr InitOK!")
        return
@@ -4799,8 +4982,6 @@
    def GetItemPlusByIndex(self, index): return self.ipyItemPlusCache[index]
    def GetItemPlusMaxCount(self): return self.ipyItemPlusMaxLen
    def GetItemPlusMaxByIndex(self, index): return self.ipyItemPlusMaxCache[index]
    def GetItemPlusSumAttrCount(self): return self.ipyItemPlusSumAttrLen
    def GetItemPlusSumAttrByIndex(self, index): return self.ipyItemPlusSumAttrCache[index]
    def GetRoleEquipStarsCount(self): return self.ipyRoleEquipStarsLen
    def GetRoleEquipStarsByIndex(self, index): return self.ipyRoleEquipStarsCache[index]
    def GetEquipLegendAttrCountCount(self): return self.ipyEquipLegendAttrCountLen
@@ -4819,8 +5000,6 @@
    def GetRuneByIndex(self, index): return self.ipyRuneCache[index]
    def GetEquipWashCount(self): return self.ipyEquipWashLen
    def GetEquipWashByIndex(self, index): return self.ipyEquipWashCache[index]
    def GetEquipWashSpecCount(self): return self.ipyEquipWashSpecLen
    def GetEquipWashSpecByIndex(self, index): return self.ipyEquipWashSpecCache[index]
    def GetAttrFruitCount(self): return self.ipyAttrFruitLen
    def GetAttrFruitByIndex(self, index): return self.ipyAttrFruitCache[index]
    def GetPetInfoCount(self): return self.ipyPetInfoLen
@@ -4841,6 +5020,8 @@
    def GetGMAttrByIndex(self, index): return self.ipyGMAttrCache[index]
    def GetNPCStrengthenCount(self): return self.ipyNPCStrengthenLen
    def GetNPCStrengthenByIndex(self, index): return self.ipyNPCStrengthenCache[index]
    def GetNPCTimeLostHPCount(self): return self.ipyNPCTimeLostHPLen
    def GetNPCTimeLostHPByIndex(self, index): return self.ipyNPCTimeLostHPCache[index]
    def GetEquipSuitAttrCount(self): return self.ipyEquipSuitAttrLen
    def GetEquipSuitAttrByIndex(self, index): return self.ipyEquipSuitAttrCache[index]
    def GetWingRefineAttrCount(self): return self.ipyWingRefineAttrLen
@@ -4899,8 +5080,8 @@
    def GetRefineStoveByIndex(self, index): return self.ipyRefineStoveCache[index]
    def GetAlchemyCount(self): return self.ipyAlchemyLen
    def GetAlchemyByIndex(self, index): return self.ipyAlchemyCache[index]
    def GetAlchemySpecCount(self): return self.ipyAlchemySpecLen
    def GetAlchemySpecByIndex(self, index): return self.ipyAlchemySpecCache[index]
    def GetAlchemyResultCount(self): return self.ipyAlchemyResultLen
    def GetAlchemyResultByIndex(self, index): return self.ipyAlchemyResultCache[index]
    def GetBOSSInfoCount(self): return self.ipyBOSSInfoLen
    def GetBOSSInfoByIndex(self, index): return self.ipyBOSSInfoCache[index]
    def GetElderGodAreaCount(self): return self.ipyElderGodAreaLen
@@ -4919,12 +5100,16 @@
    def GetSealDemonByIndex(self, index): return self.ipySealDemonCache[index]
    def GetFbEncourageCount(self): return self.ipyFbEncourageLen
    def GetFbEncourageByIndex(self, index): return self.ipyFbEncourageCache[index]
    def GetMapRefreshNPCCount(self): return self.ipyMapRefreshNPCLen
    def GetMapRefreshNPCByIndex(self, index): return self.ipyMapRefreshNPCCache[index]
    def GetRuneCompoundCount(self): return self.ipyRuneCompoundLen
    def GetRuneCompoundByIndex(self, index): return self.ipyRuneCompoundCache[index]
    def GetResourcesBackCount(self): return self.ipyResourcesBackLen
    def GetResourcesBackByIndex(self, index): return self.ipyResourcesBackCache[index]
    def GetCollectNPCCount(self): return self.ipyCollectNPCLen
    def GetCollectNPCByIndex(self, index): return self.ipyCollectNPCCache[index]
    def GetTreasureNPCCount(self): return self.ipyTreasureNPCLen
    def GetTreasureNPCByIndex(self, index): return self.ipyTreasureNPCCache[index]
    def GetChestsCount(self): return self.ipyChestsLen
    def GetChestsByIndex(self, index): return self.ipyChestsCache[index]
    def GetChestsAwardCount(self): return self.ipyChestsAwardLen
@@ -5007,6 +5192,8 @@
    def GetCrossRealmPKOrderAwardByIndex(self, index): return self.ipyCrossRealmPKOrderAwardCache[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 GetCrossPenglaiZoneMapCount(self): return self.ipyCrossPenglaiZoneMapLen
    def GetCrossPenglaiZoneMapByIndex(self, index): return self.ipyCrossPenglaiZoneMapCache[index]
    def GetGatherSoulCount(self): return self.ipyGatherSoulLen
@@ -5033,8 +5220,6 @@
    def GetZhuXianSuitAttrByIndex(self, index): return self.ipyZhuXianSuitAttrCache[index]
    def GetZhuXianBossCount(self): return self.ipyZhuXianBossLen
    def GetZhuXianBossByIndex(self, index): return self.ipyZhuXianBossCache[index]
    def GetZhuXianTowerCount(self): return self.ipyZhuXianTowerLen
    def GetZhuXianTowerByIndex(self, index): return self.ipyZhuXianTowerCache[index]
    def GetZhuXianEquipDecomposeCount(self): return self.ipyZhuXianEquipDecomposeLen
    def GetZhuXianEquipDecomposeByIndex(self, index): return self.ipyZhuXianEquipDecomposeCache[index]
    def GetActFeastWeekPartyCount(self): return self.ipyActFeastWeekPartyLen
@@ -5063,6 +5248,20 @@
    def GetFamilyBossAwardByIndex(self, index): return self.ipyFamilyBossAwardCache[index]
    def GetItemWashMaxCount(self): return self.ipyItemWashMaxLen
    def GetItemWashMaxByIndex(self, index): return self.ipyItemWashMaxCache[index]
    def GetHorsePetBossAwardCount(self): return self.ipyHorsePetBossAwardLen
    def GetHorsePetBossAwardByIndex(self, index): return self.ipyHorsePetBossAwardCache[index]
    def GetFairyDomainCount(self): return self.ipyFairyDomainLen
    def GetFairyDomainByIndex(self, index): return self.ipyFairyDomainCache[index]
    def GetFairyAdventuresCount(self): return self.ipyFairyAdventuresLen
    def GetFairyAdventuresByIndex(self, index): return self.ipyFairyAdventuresCache[index]
    def GetFairyDomainAppointCount(self): return self.ipyFairyDomainAppointLen
    def GetFairyDomainAppointByIndex(self, index): return self.ipyFairyDomainAppointCache[index]
    def GetFBBuyBuffCount(self): return self.ipyFBBuyBuffLen
    def GetFBBuyBuffByIndex(self, index): return self.ipyFBBuyBuffCache[index]
    def GetSkillElementCount(self): return self.ipySkillElementLen
    def GetSkillElementByIndex(self, index): return self.ipySkillElementCache[index]
    def GetSkyTowerCount(self): return self.ipySkyTowerLen
    def GetSkyTowerByIndex(self, index): return self.ipySkyTowerCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData