ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -41,18 +41,25 @@
                        ("list", "Skills", 0),
                        ),
                "RolePoint":(
                        ("BYTE", "AttrID", 1),
                        ("dict", "AddAttrInfoPerPoint", 0),
                        ("BYTE", "PointQualityAttrID", 0),
                        ("list", "PointQualityAttrValueList", 0),
                        ("list", "PointQualityIntervalList", 0),
                        ),
                "Realm":(
                        ("WORD", "Lv", 1),
                        ("BYTE", "IsBigRealm", 0),
                        ("DWORD", "NeedPoint", 0),
                        ("DWORD", "NeedLV", 0),
                        ("DWORD", "NeedItemID", 0),
                        ("WORD", "NeedItemCnt", 0),
                        ("dict", "NeedActiveTreasure", 0),
                        ("list", "AddAttrType", 0),
                        ("list", "AddAttrNum", 0),
                        ("DWORD", "BossID", 0),
                        ("dict", "SitTime", 0),
                        ("dict", "TeamAward", 0),
                        ("DWORD", "BuffID", 0),
                        ("DWORD", "ExpRate", 0),
                        ("DWORD", "ExpLimit", 0),
                        ),
                "GodWeapon":(
@@ -113,21 +120,39 @@
                "ItemPlusMax":(
                        ("BYTE", "Type", 1),
                        ("BYTE", "ItemRank", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "Star", 1),
                        ("WORD", "LevelMax", 0),
                        ),
                "ItemPlusSumAttr":(
                        ("WORD", "PlusCntNeed", 1),
                        ("list", "AttrType", 0),
                        ("list", "AttrValue", 0),
                        ),
                "RoleEquipStars":(
                        ("BYTE", "StarsNeed", 1),
                        ("list", "AttrType", 0),
                        ("list", "AttrValue", 0),
                        ),
                "EquipLegendAttrCount":(
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("list", "LegendAttrCountInfo", 0),
                        ),
                "EquipLegendAttrType":(
                        ("BYTE", "ItemType", 1),
                        ("dict", "LegendAttrTypeLib", 0),
                        ),
                "EquipLegendAttrLib":(
                        ("BYTE", "LegendAttrID", 1),
                        ("dict", "LegendAttrLib", 0),
                        ),
                "EquipLegendAttrValue":(
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "ItemClassLV", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("dict", "LVLegendAttrLibNumInfo", 0),
                        ),
                "Dogz":(
@@ -175,13 +200,6 @@
                        ("DWORD", "CostItemID", 0),
                        ("BYTE", "CostItemCount", 0),
                        ("list", "GoldWashCostList", 0),
                        ),
                "EquipWashSpec":(
                        ("BYTE", "WashTypeNeed", 1),
                        ("BYTE", "WashLVNeed", 1),
                        ("list", "AddAttrType", 0),
                        ("list", "AddAttrValue", 0),
                        ),
                "AttrFruit":(
@@ -316,28 +334,12 @@
                        ),
                "EquipSuitAttr":(
                        ("BYTE", "GroupType", 1),
                        ("BYTE", "SuiteType", 1),
                        ("WORD", "SuiteLV", 1),
                        ("BYTE", "Job", 1),
                        ("BYTE", "Count1", 0),
                        ("list", "AttrType1", 0),
                        ("list", "AttrValue1", 0),
                        ("BYTE", "Count2", 0),
                        ("list", "AttrType2", 0),
                        ("list", "AttrValue2", 0),
                        ("BYTE", "Count3", 0),
                        ("list", "AttrType3", 0),
                        ("list", "AttrValue3", 0),
                        ),
                "EquipSuitCompound":(
                        ("BYTE", "SuiteType", 1),
                        ("BYTE", "EquipPlace", 1),
                        ("WORD", "SuiteLV", 1),
                        ("BYTE", "Job", 1),
                        ("list", "CostItemID", 0),
                        ("list", "CostItemCnt", 0),
                        ("WORD", "SuiteID", 1),
                        ("BYTE", "SuiteCnt", 0),
                        ("BYTE", "Star", 0),
                        ("dict", "AttrInfo", 0),
                        ("DWORD", "SkillID", 0),
                        ("BYTE", "IsNotify", 0),
                        ),
                "WingRefineAttr":(
@@ -386,6 +388,12 @@
                        ("DWORD", "CftSpeedPer", 0),
                        ("DWORD", "CftAtkPer", 0),
                        ("DWORD", "CftMaxHPPer", 0),
                        ("DWORD", "CftJobAHurtAddPer", 0),
                        ("DWORD", "CftJobBHurtAddPer", 0),
                        ("DWORD", "CftJobCHurtAddPer", 0),
                        ("DWORD", "CftJobAAtkReducePer", 0),
                        ("DWORD", "CftJobBAtkReducePer", 0),
                        ("DWORD", "CftJobCAtkReducePer", 0),
                        ),
                "NPCDropItem":(
@@ -398,10 +406,10 @@
                        ("BYTE", "PieRateDoCnt", 0),
                        ("dict", "IndepRateDrop", 0),
                        ("BYTE", "IndepRateDoCnt", 0),
                        ("dict", "IndepRateMaxDropCount", 0),
                        ("dict", "EquipStarInfo", 0),
                        ("list", "KillCountDropEquipEx", 0),
                        ("list", "KillCountDropEquipEx2", 0),
                        ("dict", "EquipColorMaxDropCount", 0),
                        ("dict", "EquipColorSuitInfo", 0),
                        ("dict", "EquipPartKeyRateInfo", 0),
                        ("dict", "KillCountDropEquipPub", 0),
                        ("dict", "ItemIDDropRate", 0),
                        ("dict", "ItemIDMaxDropCount", 0),
                        ("dict", "ItemKeyDropRate", 0),
@@ -411,8 +419,10 @@
                        ("WORD", "DropMoneyRate", 0),
                        ("WORD", "DropMoneyMin", 0),
                        ("WORD", "DropMoneyMax", 0),
                        ("list", "KillCountDrop", 0),
                        ("dict", "KillCountDropPub", 0),
                        ("list", "KillCountDropPri", 0),
                        ("list", "PriItemIDDrop", 0),
                        ("BYTE", "AucionItemCanSell", 0),
                        ),
                "RuneTower":(
@@ -451,7 +461,6 @@
                        ("DWORD", "MapID", 0),
                        ("WORD", "LVLimitMin", 0),
                        ("WORD", "LVLimitMax", 0),
                        ("BYTE", "JobRankLimit", 0),
                        ("DWORD", "TicketID", 0),
                        ("list", "TicketCostCnt", 0),
                        ("WORD", "TicketPrice", 0),
@@ -526,6 +535,20 @@
                        ("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":(
@@ -547,9 +570,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),
                        ),
@@ -559,30 +582,7 @@
                        ("DWORD", "NeedExp", 0),
                        ("dict", "AddAttr", 0),
                        ("list", "UnLockSkill", 0),
                        ("DWORD", "ActiveMWID", 0),
                        ("list", "ItemAward", 0),
                        ("DWORD", "ActiveSoulID", 0),
                        ("DWORD", "PowerEx", 0),
                        ),
                "TreasurePrivilege":(
                        ("DWORD", "PrivilegeID", 1),
                        ("eval", "EffectValue", 0),
                        ("DWORD", "SingleValue", 0),
                        ("DWORD", "MaxValue", 0),
                        ("dict", "AddAttr", 0),
                        ("list", "ItemAward", 0),
                        ("list", "SuccessList", 0),
                        ),
                "TreasureSkill":(
                        ("BYTE", "SkillUpType", 1),
                        ("BYTE", "SkillLV", 1),
                        ("DWORD", "NeedPoint", 0),
                        ("WORD", "InitRate", 0),
                        ("list", "NeedItemID", 0),
                        ("list", "NeedItemCnt", 0),
                        ("list", "MaxRate", 0),
                        ),
                "ContineSignAward":(
@@ -617,6 +617,10 @@
                        ("list", "LegendAttrValue", 0),
                        ("list", "OutOfPrintAttr", 0),
                        ("list", "OutOfPrintAttrValue", 0),
                        ),
                "AuctionItem":(
                        ("DWORD", "AuctionItemID", 1),
                        ),
                "VipPrivilege":(
@@ -671,7 +675,7 @@
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "ShopTypeList", 0),
                        ("dict", "ShopTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
                        ),
@@ -768,6 +772,11 @@
                        ("BYTE", "PacketCnt", 0),
                        ),
                "ActFeastRedPacketSucc":(
                        ("BYTE", "FeastDay", 1),
                        ("list", "FeastSuccIDList", 0),
                        ),
                "NPCShow":(
                        ("DWORD", "NPCID", 1),
                        ("DWORD", "MapID", 1),
@@ -806,6 +815,15 @@
                        ("DWORD", "CostCopper", 0),
                        ("dict", "CopperReward", 0),
                        ("list", "JobItemList", 0),
                        ),
                "CollectNPC":(
                        ("DWORD", "NPCID", 1),
                        ("BYTE", "PrepareTime", 0),
                        ("list", "LostHPPer", 0),
                        ("BYTE", "MaxCollectCount", 0),
                        ("char", "CollectCountLimitNotify", 0),
                        ("list", "CollectAward", 0),
                        ),
                "Chests":(
@@ -948,7 +966,7 @@
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "GiftbagTypeList", 0),
                        ("dict", "GiftbagTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
                        ),
@@ -982,7 +1000,7 @@
                        ("DWORD", "TemplateID", 1),
                        ("DWORD", "NeedCostGold", 0),
                        ("BYTE", "AwardIndex", 0),
                        ("list", "AwardItemList", 0),
                        ("dict", "AwardItemList", 0),
                        ("char", "NotifyKey", 0),
                        ),
@@ -1000,7 +1018,7 @@
                        ("BYTE", "ID", 1),
                        ("DWORD", "TotalTimes", 0),
                        ("WORD", "SingleTimes", 0),
                        ("list", "Reward", 0),
                        ("dict", "Reward", 0),
                        ),
                "ActRealmPoint":(
@@ -1125,12 +1143,38 @@
                        ("list", "ItemList", 0),
                        ),
                "GodWeaponEffect":(
                        ("BYTE", "GWType", 0),
                        ("WORD", "Level", 0),
                        ("char", "NotifyCode", 0),
                        ("DWORD", "FightPower", 0),
                        ("dict", "Attr", 0),
                "CrossRealmPKDan":(
                        ("BYTE", "DanLV", 1),
                        ("WORD", "LVUpScore", 0),
                        ),
                "CrossRealmPKDanAward":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "SeasonID", 1),
                        ("BYTE", "DanLV", 1),
                        ("list", "DanLVAwardList", 0),
                        ("list", "SeasonDanLVAwardList", 0),
                        ),
                "CrossRealmPKOrderAward":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "SeasonID", 1),
                        ("dict", "OrderAwardInfo", 0),
                        ),
                "CrossZoneComm":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossPenglaiZoneMap":(
                        ("BYTE", "ZoneID", 0),
                        ("DWORD", "MapID", 1),
                        ("DWORD", "DataMapID", 1),
                        ("BYTE", "CopyMapID", 1),
                        ("WORD", "PosX", 0),
                        ("WORD", "PosY", 0),
                        ),
                "GatherSoul":(
@@ -1155,6 +1199,209 @@
                        ("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),
                        ("WORD", "AdvanceMinutes", 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),
                        ),
                "ActLoginAward":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "LVLimit", 0),
                        ("list", "TemplateID", 0),
                        ),
                "LoginAward":(
                        ("BYTE", "TemplateID", 1),
                        ("BYTE", "ActionType", 0),
                        ("DWORD", "TotalTimes", 0),
                        ("WORD", "SingleTimes", 0),
                        ("char", "Reward", 0),
                        ),
                "ZhuXianSuitAttr":(
                        ("BYTE", "SuitType", 1),
                        ("BYTE", "SuitLV", 1),
                        ("list", "SuitAttrIDList", 0),
                        ("list", "SuitAttrValueList", 0),
                        ),
                "ZhuXianBoss":(
                        ("DWORD", "NPCID", 0),
                        ("BYTE", "LineID", 1),
                        ("WORD", "KillTime", 0),
                        ("WORD", "RealmLV", 0),
                        ("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),
                        ),
                "ActFeastWeekParty":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "AdvanceMinutes", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "LVLimit", 0),
                        ("list", "TemplateID", 0),
                        ("dict", "PointAward", 0),
                        ),
                "FeastWeekParty":(
                        ("BYTE", "TemplateID", 1),
                        ("BYTE", "ActionType", 0),
                        ("DWORD", "TotalTimes", 0),
                        ("WORD", "SingleTimes", 0),
                        ("list", "Reward", 0),
                        ("WORD", "Point", 0),
                        ),
                "NewAllPeopleParty":(
                        ("BYTE", "ID", 1),
                        ("WORD", "TotalTimes", 0),
                        ("WORD", "AddPoint", 0),
                        ),
                "NewAllPeoplePartyAward":(
                        ("BYTE", "WorldLvNum", 1),
                        ("DWORD", "Index", 1),
                        ("DWORD", "NeedPoint", 0),
                        ("dict", "Award", 0),
                        ),
                "ZhuXianStoneAttr":(
                        ("BYTE", "SuitType", 1),
                        ("BYTE", "ShareSoneLV", 1),
                        ("list", "AttrIDList", 0),
                        ("list", "AttrValueList", 0),
                        ),
                "ActLuckyTreasure":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("BYTE", "ResetType", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "TemplateID", 0),
                        ("WORD", "LuckyPoint", 0),
                        ),
                "LuckyTreasureTemplate":(
                        ("BYTE", "TemplateID", 1),
                        ("list", "WorldLVLimit", 0),
                        ("DWORD", "ItemID", 0),
                        ("WORD", "ItemCnt", 0),
                        ("BYTE", "IsBind", 0),
                        ("DWORD", "Weight", 0),
                        ),
                "MysteryShop":(
                        ("list", "LVRange", 0),
                        ("DWORD", "GoodsID", 0),
                        ),
                "EquipPlaceIndexMap":(
                        ("DWORD", "GridIndex", 0),
                        ("DWORD", "ClassLV", 1),
                        ("DWORD", "EquipPlace", 1),
                        ),
                "EquipStarUp":(
                        ("BYTE", "ClassLV", 1),
                        ("BYTE", "EquipPlace", 1),
                        ("BYTE", "Star", 1),
                        ("list", "CostEquipPlace", 0),
                        ("list", "CostEquipColor", 0),
                        ("BYTE", "CostEquipCnt", 0),
                        ("BYTE", "SuitTotalRate", 0),
                        ("dict", "CostItemDict", 0),
                        ("dict", "StarAttrInfo", 0),
                        ("dict", "BaseAttrInfo", 0),
                        ),
                "EquipPlusEvolve":(
                        ("BYTE", "EquipPlace", 1),
                        ("BYTE", "EvolveLV", 1),
                        ("WORD", "NeedPlusLV", 0),
                        ("dict", "CostItem", 0),
                        ("dict", "Attr", 0),
                        ),
                "FamilyBossAward":(
                        ("list", "WorldLV", 0),
                        ("list", "Rank", 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),
                        ),
                }
@@ -1177,34 +1424,49 @@
    def GetLightAttribute(self): return self.LightAttribute # 点亮属性值
    def GetSkills(self): return self.Skills # 被动技能
# 灵根表
class IPY_RolePoint():
    def __init__(self):
        self.AttrID = 0
        self.AddAttrInfoPerPoint = {}
        self.PointQualityAttrID = 0
        self.PointQualityAttrValueList = []
        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 GetPointQualityIntervalList(self): return self.PointQualityIntervalList # 点数品质进阶属性点区间列表
# 境界表
class IPY_Realm():
    
    def __init__(self):
        self.Lv = 0
        self.IsBigRealm = 0
        self.NeedPoint = 0
        self.NeedLV = 0
        self.NeedItemID = 0
        self.NeedItemCnt = 0
        self.NeedActiveTreasure = {}
        self.AddAttrType = []
        self.AddAttrNum = []
        self.BossID = 0
        self.SitTime = {}
        self.TeamAward = {}
        self.BuffID = 0
        self.ExpRate = 0
        self.ExpLimit = 0
        return
        
    def GetLv(self): return self.Lv # 境界等级
    def GetIsBigRealm(self): return self.IsBigRealm # 是否大境界
    def GetNeedPoint(self): return self.NeedPoint # 开启渡劫需要修炼点
    def GetNeedItemID(self): return self.NeedItemID # 开启渡劫需要道具ID
    def GetNeedItemCnt(self): return self.NeedItemCnt # 开启渡劫消耗的道具数量
    def GetNeedActiveTreasure(self): return self.NeedActiveTreasure # 开启渡劫需要激活法宝条件
    def GetNeedLV(self): return self.NeedLV # 需要等级
    def GetNeedItemID(self): return self.NeedItemID # 需要道具ID
    def GetNeedItemCnt(self): return self.NeedItemCnt # 消耗的道具数量
    def GetAddAttrType(self): return self.AddAttrType # 境界加成属性类型
    def GetAddAttrNum(self): return self.AddAttrNum # 境界加成属性值
    def GetBossID(self): return self.BossID # 渡劫bossid
    def GetSitTime(self): return self.SitTime # 打坐时间
    def GetTeamAward(self): return self.TeamAward # 组队帮打的人的奖励
    def GetBuffID(self): return self.BuffID # 给全服在线玩家增加buff
    def GetExpRate(self): return self.ExpRate # 修为池经验速率
    def GetExpLimit(self): return self.ExpLimit # 修为池经验上限
# 神兵表
class IPY_GodWeapon():
@@ -1328,28 +1590,13 @@
    
    def __init__(self):
        self.Type = 0
        self.ItemRank = 0
        self.ItemColor = 0
        self.Star = 0
        self.LevelMax = 0
        return
        
    def GetType(self): return self.Type # 按装备位对应类型查找
    def GetItemRank(self): return self.ItemRank #  装备阶数
    def GetItemColor(self): return self.ItemColor # 装备颜色 如橙装
    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():
@@ -1363,6 +1610,60 @@
    def GetStarsNeed(self): return self.StarsNeed # 全身星数
    def GetAttrType(self): return self.AttrType # 属性类型
    def GetAttrValue(self): return self.AttrValue # 属性值
# 装备传奇属性条数表
class IPY_EquipLegendAttrCount():
    def __init__(self):
        self.ItemType = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.LegendAttrCountInfo = []
        return
    def GetItemType(self): return self.ItemType # 物品类型
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetLegendAttrCountInfo(self): return self.LegendAttrCountInfo # 传奇属性条数信息 [[条数, [属性类型库编号, ...]], ...]
# 装备传奇属性类型表
class IPY_EquipLegendAttrType():
    def __init__(self):
        self.ItemType = 0
        self.LegendAttrTypeLib = {}
        return
    def GetItemType(self): return self.ItemType # 物品类型
    def GetLegendAttrTypeLib(self): return self.LegendAttrTypeLib # 传奇属性类型库 {属性类型库编号:[属性ID,...], ...}
# 装备传奇属性值库表
class IPY_EquipLegendAttrLib():
    def __init__(self):
        self.LegendAttrID = 0
        self.LegendAttrLib = {}
        return
    def GetLegendAttrID(self): return self.LegendAttrID # 传奇属性ID
    def GetLegendAttrLib(self): return self.LegendAttrLib # 属性库信息 {库编号:[随机数值, ...], ...}
# 装备传奇属性等级数值表
class IPY_EquipLegendAttrValue():
    def __init__(self):
        self.ItemType = 0
        self.ItemClassLV = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.LVLegendAttrLibNumInfo = {}
        return
    def GetItemType(self): return self.ItemType # 物品类型
    def GetItemClassLV(self): return self.ItemClassLV # 物品阶级
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetLVLegendAttrLibNumInfo(self): return self.LVLegendAttrLibNumInfo # 属性ID等级段对应数值库编号 {属性ID:{等级:库编号, ...}}
# 神兽表
class IPY_Dogz():
@@ -1461,21 +1762,6 @@
    def GetCostItemID(self): return self.CostItemID #  固定消耗物品ID
    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():
@@ -1753,53 +2039,20 @@
class IPY_EquipSuitAttr():
    
    def __init__(self):
        self.GroupType = 0
        self.SuiteType = 0
        self.SuiteLV = 0
        self.Job = 0
        self.Count1 = 0
        self.AttrType1 = []
        self.AttrValue1 = []
        self.Count2 = 0
        self.AttrType2 = []
        self.AttrValue2 = []
        self.Count3 = 0
        self.AttrType3 = []
        self.AttrValue3 = []
        self.SuiteID = 0
        self.SuiteCnt = 0
        self.Star = 0
        self.AttrInfo = {}
        self.SkillID = 0
        self.IsNotify = 0
        return
        
    def GetGroupType(self): return self.GroupType # 套装组合类型
    def GetSuiteType(self): return self.SuiteType # 套装类型
    def GetSuiteLV(self): return self.SuiteLV # 套装等级
    def GetJob(self): return self.Job # ְҵ
    def GetCount1(self): return self.Count1 # 阶段1所需数量
    def GetAttrType1(self): return self.AttrType1 # 阶段1属性类型
    def GetAttrValue1(self): return self.AttrValue1 # 阶段1属性值
    def GetCount2(self): return self.Count2 # 阶段2所需数量
    def GetAttrType2(self): return self.AttrType2 # 阶段2属性类型
    def GetAttrValue2(self): return self.AttrValue2 # 阶段2属性值
    def GetCount3(self): return self.Count3 # 阶段2所需数量
    def GetAttrType3(self): return self.AttrType3 # 阶段2属性类型
    def GetAttrValue3(self): return self.AttrValue3 # 阶段2属性值
# 套装合成表
class IPY_EquipSuitCompound():
    def __init__(self):
        self.SuiteType = 0
        self.EquipPlace = 0
        self.SuiteLV = 0
        self.Job = 0
        self.CostItemID = []
        self.CostItemCnt = []
        return
    def GetSuiteType(self): return self.SuiteType # 套装类型
    def GetEquipPlace(self): return self.EquipPlace # 装备部位
    def GetSuiteLV(self): return self.SuiteLV # 套装等级
    def GetJob(self): return self.Job # ְҵ
    def GetCostItemID(self): return self.CostItemID # 材料ID
    def GetCostItemCnt(self): return self.CostItemCnt # 材料数量
    def GetSuiteID(self): return self.SuiteID # 套装ID
    def GetSuiteCnt(self): return self.SuiteCnt # 套装件数
    def GetStar(self): return self.Star # 星数
    def GetAttrInfo(self): return self.AttrInfo # 属性
    def GetSkillID(self): return self.SkillID # 技能ID
    def GetIsNotify(self): return self.IsNotify # 是否广播
# 羽翼精炼属性表
class IPY_WingRefineAttr():
@@ -1874,7 +2127,13 @@
        self.CftLuckyHit = 0
        self.CftSpeedPer = 0
        self.CftAtkPer = 0
        self.CftMaxHPPer = 0
        self.CftMaxHPPer = 0
        self.CftJobAHurtAddPer = 0
        self.CftJobBHurtAddPer = 0
        self.CftJobCHurtAddPer = 0
        self.CftJobAAtkReducePer = 0
        self.CftJobBAtkReducePer = 0
        self.CftJobCAtkReducePer = 0
        return
        
    def GetLV(self): return self.LV # 等级
@@ -1899,7 +2158,13 @@
    def GetCftLuckyHit(self): return self.CftLuckyHit # 会心一击系数
    def GetCftSpeedPer(self): return self.CftSpeedPer # 移动速度百分比系数
    def GetCftAtkPer(self): return self.CftAtkPer # 攻击百分比系数
    def GetCftMaxHPPer(self): return self.CftMaxHPPer # 生命百分比系数
    def GetCftMaxHPPer(self): return self.CftMaxHPPer # 生命百分比系数
    def GetCftJobAHurtAddPer(self): return self.CftJobAHurtAddPer # 对目标战士伤害加成
    def GetCftJobBHurtAddPer(self): return self.CftJobBHurtAddPer # 对目标法师伤害加成
    def GetCftJobCHurtAddPer(self): return self.CftJobCHurtAddPer # 对目标弓箭伤害加成
    def GetCftJobAAtkReducePer(self): return self.CftJobAAtkReducePer # 战士攻击伤害减免
    def GetCftJobBAtkReducePer(self): return self.CftJobBAtkReducePer # 法师攻击伤害减免
    def GetCftJobCAtkReducePer(self): return self.CftJobCAtkReducePer # 弓箭攻击伤害减免
# NPC掉落表
class IPY_NPCDropItem():
@@ -1914,10 +2179,10 @@
        self.PieRateDoCnt = 0
        self.IndepRateDrop = {}
        self.IndepRateDoCnt = 0
        self.IndepRateMaxDropCount = {}
        self.EquipStarInfo = {}
        self.KillCountDropEquipEx = []
        self.KillCountDropEquipEx2 = []
        self.EquipColorMaxDropCount = {}
        self.EquipColorSuitInfo = {}
        self.EquipPartKeyRateInfo = {}
        self.KillCountDropEquipPub = {}
        self.ItemIDDropRate = {}
        self.ItemIDMaxDropCount = {}
        self.ItemKeyDropRate = {}
@@ -1927,8 +2192,10 @@
        self.DropMoneyRate = 0
        self.DropMoneyMin = 0
        self.DropMoneyMax = 0
        self.KillCountDrop = []
        self.PriItemIDDrop = []
        self.KillCountDropPub = {}
        self.KillCountDropPri = []
        self.PriItemIDDrop = []
        self.AucionItemCanSell = 0
        return
        
    def GetNPCID(self): return self.NPCID # NPCID
@@ -1936,14 +2203,14 @@
    def GetMaxDropLV(self): return self.MaxDropLV # 最大可掉落的玩家等级, 不影响世界等级
    def GetCanDropRatePlus(self): return self.CanDropRatePlus # 额外提升掉率的是否有效
    def GetIsDropJobSelf(self): return self.IsDropJobSelf # 是否只掉落本职业
    def GetPieRateDrop(self): return self.PieRateDrop # 饼图概率掉落信息 [(概率,0),(概率,(阶,颜色,部位集合key)),...]
    def GetPieRateDrop(self): return self.PieRateDrop # 饼图概率掉落信息 [(概率,0),(概率,(阶,颜色)),...]
    def GetPieRateDoCnt(self): return self.PieRateDoCnt # 饼图概率执行次数
    def GetIndepRateDrop(self): return self.IndepRateDrop # 独立概率掉落信息 {(阶,颜色,部位集合key):概率,...}
    def GetIndepRateDrop(self): return self.IndepRateDrop # 独立概率掉落信息 {(阶,颜色):概率,...}
    def GetIndepRateDoCnt(self): return self.IndepRateDoCnt # 独立概率执行次数
    def GetIndepRateMaxDropCount(self): return self.IndepRateMaxDropCount # 独立概率装备颜色最大掉落物品数 {颜色:上限数量,...}
    def GetEquipStarInfo(self): return self.EquipStarInfo # 装备颜色对应星级产出规则 {颜色:[(概率, 星级),...], ...}
    def GetKillCountDropEquipEx(self): return self.KillCountDropEquipEx # 第x次击杀附加必掉装备 [次数,阶,颜色,[(概率,星级),...],部位集合key]
    def GetKillCountDropEquipEx2(self): return self.KillCountDropEquipEx2 # 前x次击杀附加必掉装备 [次数,阶,颜色,[(概率,星级),...],部位集合key]
    def GetEquipColorMaxDropCount(self): return self.EquipColorMaxDropCount # 装备颜色最大掉落物品数 {颜色:上限数量,...}
    def GetEquipColorSuitInfo(self): return self.EquipColorSuitInfo # 装备颜色对应套装概率 {颜色:套装概率, ...}
    def GetEquipPartKeyRateInfo(self): return self.EquipPartKeyRateInfo # 装备部位集合信息 {(颜色,是否套装):部位集合key, ...}
    def GetKillCountDropEquipPub(self): return self.KillCountDropEquipPub # 第x次击杀附加必掉装备 {次数:[阶,颜色,是否套装,部位集合key], ...}
    def GetItemIDDropRate(self): return self.ItemIDDropRate # 指定物品ID掉率信息 {物品ID:概率, ...}
    def GetItemIDMaxDropCount(self): return self.ItemIDMaxDropCount # 指定物品ID最大掉落个数,没配默认1次 {物品ID:随机次数,...}
    def GetItemKeyDropRate(self): return self.ItemKeyDropRate # 物品ID集合Key概率, 随机一个, 优先级低 {物品ID集合key:概率, ...}
@@ -1953,8 +2220,10 @@
    def GetDropMoneyRate(self): return self.DropMoneyRate # 掉落金币概率
    def GetDropMoneyMin(self): return self.DropMoneyMin # 掉落金币最小值
    def GetDropMoneyMax(self): return self.DropMoneyMax # 掉落金币最大值
    def GetKillCountDrop(self): return self.KillCountDrop # 击杀次数必掉,防止版本变更重复掉,只支持一次机会 [击杀次数,是否直接放入背包,[物品ID,...]]
    def GetPriItemIDDrop(self): return self.PriItemIDDrop # 所有归属者私有掉落物品ID列表,每人一份,默认绑定,没有职业区分[物品ID, ...]
    def GetKillCountDropPub(self): return self.KillCountDropPub # 击杀次数必掉(公共){击杀次数:[[物品ID, ...], [随机物品ID, ...]], ...}
    def GetKillCountDropPri(self): return self.KillCountDropPri # 击杀次数必掉(私有)[击杀次数,[物品ID,...],是否直接放入背包]
    def GetPriItemIDDrop(self): return self.PriItemIDDrop # 所有归属者私有掉落物品ID列表,每人一份,默认绑定,没有职业区分[物品ID, ...]
    def GetAucionItemCanSell(self): return self.AucionItemCanSell # 掉落拍品可否上架集市
# 符印塔表
class IPY_RuneTower():
@@ -2027,7 +2296,6 @@
        self.MapID = 0
        self.LVLimitMin = 0
        self.LVLimitMax = 0
        self.JobRankLimit = 0
        self.TicketID = 0
        self.TicketCostCnt = []
        self.TicketPrice = 0
@@ -2046,7 +2314,6 @@
    def GetMapID(self): return self.MapID # 场景地图ID
    def GetLVLimitMin(self): return self.LVLimitMin # 最低等级限制, 0为不限制
    def GetLVLimitMax(self): return self.LVLimitMax # 最高等级限制, 0为不限制
    def GetJobRankLimit(self): return self.JobRankLimit # 所需职业阶
    def GetTicketID(self): return self.TicketID # 门票ID
    def GetTicketCostCnt(self): return self.TicketCostCnt # 门票消耗数信息
    def GetTicketPrice(self): return self.TicketPrice # 门票单价(不能用钱抵的配0)
@@ -2157,7 +2424,21 @@
        self.AtkSpeedC = 0
        self.SkillAtkRateReduceC = 0
        self.HitC = 0
        self.MissC = 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
        return
        
    def GetClassLV(self): return self.ClassLV #  装备阶级
@@ -2187,7 +2468,21 @@
    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 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系数
# 成就表
class IPY_Success():
@@ -2227,18 +2522,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 # 需要消耗物品
# 法宝升级表
@@ -2250,9 +2545,6 @@
        self.NeedExp = 0
        self.AddAttr = {}
        self.UnLockSkill = []
        self.ActiveMWID = 0
        self.ItemAward = []
        self.ActiveSoulID = 0
        self.PowerEx = 0
        return
        
@@ -2261,52 +2553,7 @@
    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 # 额外固定战力
# 法宝特权表
class IPY_TreasurePrivilege():
    def __init__(self):
        self.PrivilegeID = 0
        self.EffectValue = 0
        self.SingleValue = 0
        self.MaxValue = 0
        self.AddAttr = {}
        self.ItemAward = []
        self.SuccessList = []
        return
    def GetPrivilegeID(self): return self.PrivilegeID # 特权ID
    def GetEffectValue(self): return self.EffectValue # 特殊效果
    def GetSingleValue(self): return self.SingleValue # 进度
    def GetMaxValue(self): return self.MaxValue # 最大进度
    def GetAddAttr(self): return self.AddAttr # 属性
    def GetItemAward(self): return self.ItemAward # 物品奖励
    def GetSuccessList(self): return self.SuccessList # 需要完成成就
# 法宝技能升级表
class IPY_TreasureSkill():
    def __init__(self):
        self.SkillUpType = 0
        self.SkillLV = 0
        self.NeedPoint = 0
        self.InitRate = 0
        self.NeedItemID = []
        self.NeedItemCnt = []
        self.MaxRate = []
        return
    def GetSkillUpType(self): return self.SkillUpType # 技能升级类型
    def GetSkillLV(self): return self.SkillLV # 技能等级
    def GetNeedPoint(self): return self.NeedPoint # 升到当前级消耗天石精华
    def GetInitRate(self): return self.InitRate # 初始概率
    def GetNeedItemID(self): return self.NeedItemID # 升到当前级溶彩石ID
    def GetNeedItemCnt(self): return self.NeedItemCnt # 升到当前级溶彩石数量
    def GetMaxRate(self): return self.MaxRate # 升到当前级概率
# 连续签到奖励表
class IPY_ContineSignAward():
@@ -2379,6 +2626,15 @@
    def GetLegendAttrValue(self): return self.LegendAttrValue # 传奇属性值
    def GetOutOfPrintAttr(self): return self.OutOfPrintAttr # 绝版属性ID
    def GetOutOfPrintAttrValue(self): return self.OutOfPrintAttrValue # 绝版属性最大值
# 拍卖物品表
class IPY_AuctionItem():
    def __init__(self):
        self.AuctionItemID = 0
        return
    def GetAuctionItemID(self): return self.AuctionItemID
# VIP特权表
class IPY_VipPrivilege():
@@ -2480,7 +2736,7 @@
        self.AdvanceMinutes = 0
        self.LVLimit = 0
        self.IsDayReset = 0
        self.ShopTypeList = []
        self.ShopTypeList = {}
        self.MailKey = ""
        self.MailItemPrize = []
        return
@@ -2692,6 +2948,17 @@
    def GetMoneyType(self): return self.MoneyType # 金钱类型
    def GetPacketCnt(self): return self.PacketCnt # 红包个数
# 节日红包每日成就表
class IPY_ActFeastRedPacketSucc():
    def __init__(self):
        self.FeastDay = 0
        self.FeastSuccIDList = []
        return
    def GetFeastDay(self): return self.FeastDay # 节日第几天
    def GetFeastSuccIDList(self): return self.FeastSuccIDList # 节日成就ID列表
# NPC秀表
class IPY_NPCShow():
    
@@ -2776,6 +3043,25 @@
    def GetCostCopper(self): return self.CostCopper # 铜钱找回铜钱消耗
    def GetCopperReward(self): return self.CopperReward # 铜钱找回奖励
    def GetJobItemList(self): return self.JobItemList # 职业物品列表
# 采集物表
class IPY_CollectNPC():
    def __init__(self):
        self.NPCID = 0
        self.PrepareTime = 0
        self.LostHPPer = []
        self.MaxCollectCount = 0
        self.CollectCountLimitNotify = ""
        self.CollectAward = []
        return
    def GetNPCID(self): return self.NPCID # ID
    def GetPrepareTime(self): return self.PrepareTime # 采集耗时,秒
    def GetLostHPPer(self): return self.LostHPPer # 采集掉血,[每X秒,掉血百分比]
    def GetMaxCollectCount(self): return self.MaxCollectCount # 每日可采集次数,0限制
    def GetCollectCountLimitNotify(self): return self.CollectCountLimitNotify # 无采集次数采集提示
    def GetCollectAward(self): return self.CollectAward # 采集奖励物品, [物品ID,个数,是否绑定]
# 宝箱表开启
class IPY_Chests():
@@ -3066,7 +3352,7 @@
        self.AdvanceMinutes = 0
        self.LVLimit = 0
        self.IsDayReset = 0
        self.GiftbagTypeList = []
        self.GiftbagTypeList = {}
        self.MailKey = ""
        self.MailItemPrize = []
        return
@@ -3143,14 +3429,14 @@
        self.TemplateID = 0
        self.NeedCostGold = 0
        self.AwardIndex = 0
        self.AwardItemList = []
        self.AwardItemList = {}
        self.NotifyKey = ""
        return
        
    def GetTemplateID(self): return self.TemplateID # 模板ID
    def GetNeedCostGold(self): return self.NeedCostGold # 需要消费仙玉数
    def GetAwardIndex(self): return self.AwardIndex # 返利奖励索引0~31,同个模板中不重复
    def GetAwardItemList(self): return self.AwardItemList # 返利物品信息列表 [(物品ID,个数,是否绑定),...]
    def GetAwardItemList(self): return self.AwardItemList # 返利物品信息列表 {世界等级范围:[({职业:物品ID,..},个数,是否绑定), ...]}
    def GetNotifyKey(self): return self.NotifyKey # 全服广播key,默认两个参数(玩家名, 档位额度)
# BOSS复活活动时间表
@@ -3180,7 +3466,7 @@
        self.ID = 0
        self.TotalTimes = 0
        self.SingleTimes = 0
        self.Reward = []
        self.Reward = {}
        return
        
    def GetTemplateID(self): return self.TemplateID # 模板ID
@@ -3448,22 +3734,78 @@
    def GetLVLimit(self): return self.LVLimit # 等级范围
    def GetItemList(self): return self.ItemList # 奖励
# 神兵特效表
class IPY_GodWeaponEffect():
# 跨服竞技场段位表
class IPY_CrossRealmPKDan():
    
    def __init__(self):
        self.GWType = 0
        self.Level = 0
        self.NotifyCode = ""
        self.FightPower = 0
        self.Attr = {}
        self.DanLV = 0
        self.LVUpScore = 0
        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 # 属性加成
    def GetDanLV(self): return self.DanLV # 段位等级
    def GetLVUpScore(self): return self.LVUpScore # 升段位所需积分
# 跨服竞技场段位奖励表
class IPY_CrossRealmPKDanAward():
    def __init__(self):
        self.CrossZoneName = ""
        self.SeasonID = 0
        self.DanLV = 0
        self.DanLVAwardList = []
        self.SeasonDanLVAwardList = []
        return
    def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名
    def GetSeasonID(self): return self.SeasonID # 赛季ID
    def GetDanLV(self): return self.DanLV # 段位等级
    def GetDanLVAwardList(self): return self.DanLVAwardList # 段位达标奖励物品列表 [[奖励物品ID,个数,是否绑定], ...]
    def GetSeasonDanLVAwardList(self): return self.SeasonDanLVAwardList # 赛季段位奖励物品列表 [[奖励物品ID,个数,是否绑定], ...]
# 跨服竞技场排名奖励表
class IPY_CrossRealmPKOrderAward():
    def __init__(self):
        self.CrossZoneName = ""
        self.SeasonID = 0
        self.OrderAwardInfo = {}
        return
    def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名
    def GetSeasonID(self): return self.SeasonID # 赛季ID
    def GetOrderAwardInfo(self): return self.OrderAwardInfo # 赛季排名奖励信息 {"排名":[[奖励物品ID,个数,是否绑定], ...], ...}
# 跨服分区表通用
class IPY_CrossZoneComm():
    def __init__(self):
        self.CrossZoneName = ""
        self.ZoneID = 0
        self.ServerGroupIDList = []
        return
    def GetCrossZoneName(self): return self.CrossZoneName # 跨服分区名
    def GetZoneID(self): return self.ZoneID # 赛区ID
    def GetServerGroupIDList(self): return self.ServerGroupIDList # 赛区服务器组ID列表
# 跨服Boss蓬莱仙境分区地图表
class IPY_CrossPenglaiZoneMap():
    def __init__(self):
        self.ZoneID = 0
        self.MapID = 0
        self.DataMapID = 0
        self.CopyMapID = 0
        self.PosX = 0
        self.PosY = 0
        return
    def GetZoneID(self): return self.ZoneID # 分区ID
    def GetMapID(self): return self.MapID # 场景地图ID
    def GetDataMapID(self): return self.DataMapID # 数据地图ID
    def GetCopyMapID(self): return self.CopyMapID # 虚拟线路ID
    def GetPosX(self): return self.PosX # 坐标X
    def GetPosY(self): return self.PosY # 坐标Y
# 聚魂表
class IPY_GatherSoul():
@@ -3513,6 +3855,437 @@
    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.AdvanceMinutes = 0
        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 GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动
    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 # 积分
# 登录奖励时间表
class IPY_ActLoginAward():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.AdvanceMinutes = 0
        self.IsDayReset = 0
        self.ResetType = 0
        self.LVLimit = 0
        self.TemplateID = []
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
    def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
    def GetResetType(self): return self.ResetType # 重置类型,0-0点重置;1-5点重置
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetTemplateID(self): return self.TemplateID # 模板编号
# 登录奖励模板表
class IPY_LoginAward():
    def __init__(self):
        self.TemplateID = 0
        self.ActionType = 0
        self.TotalTimes = 0
        self.SingleTimes = 0
        self.Reward = ""
        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 # 奖励物品
# 诛仙装备套装属性表
class IPY_ZhuXianSuitAttr():
    def __init__(self):
        self.SuitType = 0
        self.SuitLV = 0
        self.SuitAttrIDList = []
        self.SuitAttrValueList = []
        return
    def GetSuitType(self): return self.SuitType # 套装类型
    def GetSuitLV(self): return self.SuitLV # 套装等级
    def GetSuitAttrIDList(self): return self.SuitAttrIDList # 属性ID列表
    def GetSuitAttrValueList(self): return self.SuitAttrValueList # 属性值列表
# 诛仙BOSS表
class IPY_ZhuXianBoss():
    def __init__(self):
        self.NPCID = 0
        self.LineID = 0
        self.KillTime = 0
        self.RealmLV = 0
        self.ZhuXianScore = 0
        return
    def GetNPCID(self): return self.NPCID # ID
    def GetLineID(self): return self.LineID
    def GetKillTime(self): return self.KillTime # 击杀总时间秒
    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():
    def __init__(self):
        self.ClassLV = 0
        self.DecomposeInfo = {}
        return
    def GetClassLV(self): return self.ClassLV # 阶级
    def GetDecomposeInfo(self): return self.DecomposeInfo # {(产出物品ID,..):饼图,..}
# 节日巡礼活动时间表
class IPY_ActFeastWeekParty():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.AdvanceMinutes = 0
        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 GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动
    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_FeastWeekParty():
    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 # 积分
# 新仙界盛典-全民来嗨表
class IPY_NewAllPeopleParty():
    def __init__(self):
        self.ID = 0
        self.TotalTimes = 0
        self.AddPoint = 0
        return
    def GetID(self): return self.ID # ID
    def GetTotalTimes(self): return self.TotalTimes # 总次数
    def GetAddPoint(self): return self.AddPoint # 每完成次数获得嗨点
# 新仙界盛典-全民来嗨奖励表
class IPY_NewAllPeoplePartyAward():
    def __init__(self):
        self.WorldLvNum = 0
        self.Index = 0
        self.NeedPoint = 0
        self.Award = {}
        return
    def GetWorldLvNum(self): return self.WorldLvNum # 世界等级档
    def GetIndex(self): return self.Index # 索引
    def GetNeedPoint(self): return self.NeedPoint # 需要点数
    def GetAward(self): return self.Award # 奖励 {"职业":[[物品ID,个数,是否绑定],...], ...}
# 诛仙宝石共鸣属性表
class IPY_ZhuXianStoneAttr():
    def __init__(self):
        self.SuitType = 0
        self.ShareSoneLV = 0
        self.AttrIDList = []
        self.AttrValueList = []
        return
    def GetSuitType(self): return self.SuitType # 套装类型
    def GetShareSoneLV(self): return self.ShareSoneLV # 共鸣等级
    def GetAttrIDList(self): return self.AttrIDList # 属性ID列表
    def GetAttrValueList(self): return self.AttrValueList # 属性值列表
# 幸运鉴宝活动时间表
class IPY_ActLuckyTreasure():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.ResetType = 0
        self.LVLimit = 0
        self.TemplateID = 0
        self.LuckyPoint = 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 # 模板编号
    def GetLuckyPoint(self): return self.LuckyPoint # 总幸运值
# 幸运鉴宝库模板表
class IPY_LuckyTreasureTemplate():
    def __init__(self):
        self.TemplateID = 0
        self.WorldLVLimit = []
        self.ItemID = 0
        self.ItemCnt = 0
        self.IsBind = 0
        self.Weight = 0
        return
    def GetTemplateID(self): return self.TemplateID # 模板ID
    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 # 权重
# 神秘商店表
class IPY_MysteryShop():
    def __init__(self):
        self.LVRange = []
        self.GoodsID = 0
        return
    def GetLVRange(self): return self.LVRange # 等级范围
    def GetGoodsID(self): return self.GoodsID # 商城表ID
# 装备位背包索引映射表
class IPY_EquipPlaceIndexMap():
    def __init__(self):
        self.GridIndex = 0
        self.ClassLV = 0
        self.EquipPlace = 0
        return
    def GetGridIndex(self): return self.GridIndex # 背包格子索引
    def GetClassLV(self): return self.ClassLV # 阶级(物品表LV字段)
    def GetEquipPlace(self): return self.EquipPlace # 装备位(物品表EquipPlace字段)
# 装备升星表
class IPY_EquipStarUp():
    def __init__(self):
        self.ClassLV = 0
        self.EquipPlace = 0
        self.Star = 0
        self.CostEquipPlace = []
        self.CostEquipColor = []
        self.CostEquipCnt = 0
        self.SuitTotalRate = 0
        self.CostItemDict = {}
        self.StarAttrInfo = {}
        self.BaseAttrInfo = {}
        return
    def GetClassLV(self): return self.ClassLV # 阶级
    def GetEquipPlace(self): return self.EquipPlace # 装备位
    def GetStar(self): return self.Star # 星数
    def GetCostEquipPlace(self): return self.CostEquipPlace # 可用装备部位
    def GetCostEquipColor(self): return self.CostEquipColor # 可用装备品质
    def GetCostEquipCnt(self): return self.CostEquipCnt # 装备数量
    def GetSuitTotalRate(self): return self.SuitTotalRate # 全套装加成概率(非套50%)
    def GetCostItemDict(self): return self.CostItemDict # 特殊材料
    def GetStarAttrInfo(self): return self.StarAttrInfo # 星级属性
    def GetBaseAttrInfo(self): return self.BaseAttrInfo # 基础属性增加
# 装备强化进化表
class IPY_EquipPlusEvolve():
    def __init__(self):
        self.EquipPlace = 0
        self.EvolveLV = 0
        self.NeedPlusLV = 0
        self.CostItem = {}
        self.Attr = {}
        return
    def GetEquipPlace(self): return self.EquipPlace # 装备位
    def GetEvolveLV(self): return self.EvolveLV # 进化等级
    def GetNeedPlusLV(self): return self.NeedPlusLV # 需要强化等级
    def GetCostItem(self): return self.CostItem # 消耗材料
    def GetAttr(self): return self.Attr # 属性
# 仙盟Boss奖励表
class IPY_FamilyBossAward():
    def __init__(self):
        self.WorldLV = []
        self.Rank = []
        self.Award1 = []
        self.Award2 = {}
        return
    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_ItemWashMax():
    def __init__(self):
        self.Type = 0
        self.Star = 0
        self.LevelMax = 0
        return
    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,数量,是否拍品]),..]}
def Log(msg, playerID=0, par=0):
@@ -3540,6 +4313,8 @@
        self.ipyConfigEx = {}
        self.ipyDienstgradCache = self.__LoadFileData("Dienstgrad", IPY_Dienstgrad)
        self.ipyDienstgradLen = len(self.ipyDienstgradCache)
        self.ipyRolePointCache = self.__LoadFileData("RolePoint", IPY_RolePoint)
        self.ipyRolePointLen = len(self.ipyRolePointCache)
        self.ipyRealmCache = self.__LoadFileData("Realm", IPY_Realm)
        self.ipyRealmLen = len(self.ipyRealmCache)
        self.ipyGodWeaponCache = self.__LoadFileData("GodWeapon", IPY_GodWeapon)
@@ -3554,10 +4329,16 @@
        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)
        self.ipyEquipLegendAttrCountLen = len(self.ipyEquipLegendAttrCountCache)
        self.ipyEquipLegendAttrTypeCache = self.__LoadFileData("EquipLegendAttrType", IPY_EquipLegendAttrType)
        self.ipyEquipLegendAttrTypeLen = len(self.ipyEquipLegendAttrTypeCache)
        self.ipyEquipLegendAttrLibCache = self.__LoadFileData("EquipLegendAttrLib", IPY_EquipLegendAttrLib)
        self.ipyEquipLegendAttrLibLen = len(self.ipyEquipLegendAttrLibCache)
        self.ipyEquipLegendAttrValueCache = self.__LoadFileData("EquipLegendAttrValue", IPY_EquipLegendAttrValue)
        self.ipyEquipLegendAttrValueLen = len(self.ipyEquipLegendAttrValueCache)
        self.ipyDogzCache = self.__LoadFileData("Dogz", IPY_Dogz)
        self.ipyDogzLen = len(self.ipyDogzCache)
        self.ipyDogzEquipPlusCache = self.__LoadFileData("DogzEquipPlus", IPY_DogzEquipPlus)
@@ -3566,8 +4347,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)
@@ -3590,8 +4369,6 @@
        self.ipyNPCStrengthenLen = len(self.ipyNPCStrengthenCache)
        self.ipyEquipSuitAttrCache = self.__LoadFileData("EquipSuitAttr", IPY_EquipSuitAttr)
        self.ipyEquipSuitAttrLen = len(self.ipyEquipSuitAttrCache)
        self.ipyEquipSuitCompoundCache = self.__LoadFileData("EquipSuitCompound", IPY_EquipSuitCompound)
        self.ipyEquipSuitCompoundLen = len(self.ipyEquipSuitCompoundCache)
        self.ipyWingRefineAttrCache = self.__LoadFileData("WingRefineAttr", IPY_WingRefineAttr)
        self.ipyWingRefineAttrLen = len(self.ipyWingRefineAttrCache)
        self.ipyWingRefineExpCache = self.__LoadFileData("WingRefineExp", IPY_WingRefineExp)
@@ -3622,10 +4399,6 @@
        self.ipyTreasureLen = len(self.ipyTreasureCache)
        self.ipyTreasureUpCache = self.__LoadFileData("TreasureUp", IPY_TreasureUp)
        self.ipyTreasureUpLen = len(self.ipyTreasureUpCache)
        self.ipyTreasurePrivilegeCache = self.__LoadFileData("TreasurePrivilege", IPY_TreasurePrivilege)
        self.ipyTreasurePrivilegeLen = len(self.ipyTreasurePrivilegeCache)
        self.ipyTreasureSkillCache = self.__LoadFileData("TreasureSkill", IPY_TreasureSkill)
        self.ipyTreasureSkillLen = len(self.ipyTreasureSkillCache)
        self.ipyContineSignAwardCache = self.__LoadFileData("ContineSignAward", IPY_ContineSignAward)
        self.ipyContineSignAwardLen = len(self.ipyContineSignAwardCache)
        self.ipySignAwardCache = self.__LoadFileData("SignAward", IPY_SignAward)
@@ -3634,6 +4407,8 @@
        self.ipyVIPAwardLen = len(self.ipyVIPAwardCache)
        self.ipyAppointItemCache = self.__LoadFileData("AppointItem", IPY_AppointItem)
        self.ipyAppointItemLen = len(self.ipyAppointItemCache)
        self.ipyAuctionItemCache = self.__LoadFileData("AuctionItem", IPY_AuctionItem)
        self.ipyAuctionItemLen = len(self.ipyAuctionItemCache)
        self.ipyVipPrivilegeCache = self.__LoadFileData("VipPrivilege", IPY_VipPrivilege)
        self.ipyVipPrivilegeLen = len(self.ipyVipPrivilegeCache)
        self.ipyStoreCache = self.__LoadFileData("Store", IPY_Store)
@@ -3662,6 +4437,8 @@
        self.ipyFamilyActivityLen = len(self.ipyFamilyActivityCache)
        self.ipyFamilyRedPackCache = self.__LoadFileData("FamilyRedPack", IPY_FamilyRedPack)
        self.ipyFamilyRedPackLen = len(self.ipyFamilyRedPackCache)
        self.ipyActFeastRedPacketSuccCache = self.__LoadFileData("ActFeastRedPacketSucc", IPY_ActFeastRedPacketSucc)
        self.ipyActFeastRedPacketSuccLen = len(self.ipyActFeastRedPacketSuccCache)
        self.ipyNPCShowCache = self.__LoadFileData("NPCShow", IPY_NPCShow)
        self.ipyNPCShowLen = len(self.ipyNPCShowCache)
        self.ipySealDemonCache = self.__LoadFileData("SealDemon", IPY_SealDemon)
@@ -3672,6 +4449,8 @@
        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.ipyChestsCache = self.__LoadFileData("Chests", IPY_Chests)
        self.ipyChestsLen = len(self.ipyChestsCache)
        self.ipyChestsAwardCache = self.__LoadFileData("ChestsAward", IPY_ChestsAward)
@@ -3746,14 +4525,72 @@
        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.ipyCrossRealmPKDanAwardCache = self.__LoadFileData("CrossRealmPKDanAward", IPY_CrossRealmPKDanAward)
        self.ipyCrossRealmPKDanAwardLen = len(self.ipyCrossRealmPKDanAwardCache)
        self.ipyCrossRealmPKOrderAwardCache = self.__LoadFileData("CrossRealmPKOrderAward", IPY_CrossRealmPKOrderAward)
        self.ipyCrossRealmPKOrderAwardLen = len(self.ipyCrossRealmPKOrderAwardCache)
        self.ipyCrossZoneCommCache = self.__LoadFileData("CrossZoneComm", IPY_CrossZoneComm)
        self.ipyCrossZoneCommLen = len(self.ipyCrossZoneCommCache)
        self.ipyCrossPenglaiZoneMapCache = self.__LoadFileData("CrossPenglaiZoneMap", IPY_CrossPenglaiZoneMap)
        self.ipyCrossPenglaiZoneMapLen = len(self.ipyCrossPenglaiZoneMapCache)
        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)
        self.ipyActLoginAwardCache = self.__LoadFileData("ActLoginAward", IPY_ActLoginAward)
        self.ipyActLoginAwardLen = len(self.ipyActLoginAwardCache)
        self.ipyLoginAwardCache = self.__LoadFileData("LoginAward", IPY_LoginAward)
        self.ipyLoginAwardLen = len(self.ipyLoginAwardCache)
        self.ipyZhuXianSuitAttrCache = self.__LoadFileData("ZhuXianSuitAttr", IPY_ZhuXianSuitAttr)
        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)
        self.ipyActFeastWeekPartyLen = len(self.ipyActFeastWeekPartyCache)
        self.ipyFeastWeekPartyCache = self.__LoadFileData("FeastWeekParty", IPY_FeastWeekParty)
        self.ipyFeastWeekPartyLen = len(self.ipyFeastWeekPartyCache)
        self.ipyNewAllPeoplePartyCache = self.__LoadFileData("NewAllPeopleParty", IPY_NewAllPeopleParty)
        self.ipyNewAllPeoplePartyLen = len(self.ipyNewAllPeoplePartyCache)
        self.ipyNewAllPeoplePartyAwardCache = self.__LoadFileData("NewAllPeoplePartyAward", IPY_NewAllPeoplePartyAward)
        self.ipyNewAllPeoplePartyAwardLen = len(self.ipyNewAllPeoplePartyAwardCache)
        self.ipyZhuXianStoneAttrCache = self.__LoadFileData("ZhuXianStoneAttr", IPY_ZhuXianStoneAttr)
        self.ipyZhuXianStoneAttrLen = len(self.ipyZhuXianStoneAttrCache)
        self.ipyActLuckyTreasureCache = self.__LoadFileData("ActLuckyTreasure", IPY_ActLuckyTreasure)
        self.ipyActLuckyTreasureLen = len(self.ipyActLuckyTreasureCache)
        self.ipyLuckyTreasureTemplateCache = self.__LoadFileData("LuckyTreasureTemplate", IPY_LuckyTreasureTemplate)
        self.ipyLuckyTreasureTemplateLen = len(self.ipyLuckyTreasureTemplateCache)
        self.ipyMysteryShopCache = self.__LoadFileData("MysteryShop", IPY_MysteryShop)
        self.ipyMysteryShopLen = len(self.ipyMysteryShopCache)
        self.ipyEquipPlaceIndexMapCache = self.__LoadFileData("EquipPlaceIndexMap", IPY_EquipPlaceIndexMap)
        self.ipyEquipPlaceIndexMapLen = len(self.ipyEquipPlaceIndexMapCache)
        self.ipyEquipStarUpCache = self.__LoadFileData("EquipStarUp", IPY_EquipStarUp)
        self.ipyEquipStarUpLen = len(self.ipyEquipStarUpCache)
        self.ipyEquipPlusEvolveCache = self.__LoadFileData("EquipPlusEvolve", IPY_EquipPlusEvolve)
        self.ipyEquipPlusEvolveLen = len(self.ipyEquipPlusEvolveCache)
        self.ipyFamilyBossAwardCache = self.__LoadFileData("FamilyBossAward", IPY_FamilyBossAward)
        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)
        Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
        Log("IPY_DataMgr InitOK!")
        return
@@ -3922,6 +4759,8 @@
    
    def GetDienstgradCount(self): return self.ipyDienstgradLen
    def GetDienstgradByIndex(self, index): return self.ipyDienstgradCache[index]
    def GetRolePointCount(self): return self.ipyRolePointLen
    def GetRolePointByIndex(self, index): return self.ipyRolePointCache[index]
    def GetRealmCount(self): return self.ipyRealmLen
    def GetRealmByIndex(self, index): return self.ipyRealmCache[index]
    def GetGodWeaponCount(self): return self.ipyGodWeaponLen
@@ -3936,10 +4775,16 @@
    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
    def GetEquipLegendAttrCountByIndex(self, index): return self.ipyEquipLegendAttrCountCache[index]
    def GetEquipLegendAttrTypeCount(self): return self.ipyEquipLegendAttrTypeLen
    def GetEquipLegendAttrTypeByIndex(self, index): return self.ipyEquipLegendAttrTypeCache[index]
    def GetEquipLegendAttrLibCount(self): return self.ipyEquipLegendAttrLibLen
    def GetEquipLegendAttrLibByIndex(self, index): return self.ipyEquipLegendAttrLibCache[index]
    def GetEquipLegendAttrValueCount(self): return self.ipyEquipLegendAttrValueLen
    def GetEquipLegendAttrValueByIndex(self, index): return self.ipyEquipLegendAttrValueCache[index]
    def GetDogzCount(self): return self.ipyDogzLen
    def GetDogzByIndex(self, index): return self.ipyDogzCache[index]
    def GetDogzEquipPlusCount(self): return self.ipyDogzEquipPlusLen
@@ -3948,8 +4793,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
@@ -3972,8 +4815,6 @@
    def GetNPCStrengthenByIndex(self, index): return self.ipyNPCStrengthenCache[index]
    def GetEquipSuitAttrCount(self): return self.ipyEquipSuitAttrLen
    def GetEquipSuitAttrByIndex(self, index): return self.ipyEquipSuitAttrCache[index]
    def GetEquipSuitCompoundCount(self): return self.ipyEquipSuitCompoundLen
    def GetEquipSuitCompoundByIndex(self, index): return self.ipyEquipSuitCompoundCache[index]
    def GetWingRefineAttrCount(self): return self.ipyWingRefineAttrLen
    def GetWingRefineAttrByIndex(self, index): return self.ipyWingRefineAttrCache[index]
    def GetWingRefineExpCount(self): return self.ipyWingRefineExpLen
@@ -4004,10 +4845,6 @@
    def GetTreasureByIndex(self, index): return self.ipyTreasureCache[index]
    def GetTreasureUpCount(self): return self.ipyTreasureUpLen
    def GetTreasureUpByIndex(self, index): return self.ipyTreasureUpCache[index]
    def GetTreasurePrivilegeCount(self): return self.ipyTreasurePrivilegeLen
    def GetTreasurePrivilegeByIndex(self, index): return self.ipyTreasurePrivilegeCache[index]
    def GetTreasureSkillCount(self): return self.ipyTreasureSkillLen
    def GetTreasureSkillByIndex(self, index): return self.ipyTreasureSkillCache[index]
    def GetContineSignAwardCount(self): return self.ipyContineSignAwardLen
    def GetContineSignAwardByIndex(self, index): return self.ipyContineSignAwardCache[index]
    def GetSignAwardCount(self): return self.ipySignAwardLen
@@ -4016,6 +4853,8 @@
    def GetVIPAwardByIndex(self, index): return self.ipyVIPAwardCache[index]
    def GetAppointItemCount(self): return self.ipyAppointItemLen
    def GetAppointItemByIndex(self, index): return self.ipyAppointItemCache[index]
    def GetAuctionItemCount(self): return self.ipyAuctionItemLen
    def GetAuctionItemByIndex(self, index): return self.ipyAuctionItemCache[index]
    def GetVipPrivilegeCount(self): return self.ipyVipPrivilegeLen
    def GetVipPrivilegeByIndex(self, index): return self.ipyVipPrivilegeCache[index]
    def GetStoreCount(self): return self.ipyStoreLen
@@ -4044,6 +4883,8 @@
    def GetFamilyActivityByIndex(self, index): return self.ipyFamilyActivityCache[index]
    def GetFamilyRedPackCount(self): return self.ipyFamilyRedPackLen
    def GetFamilyRedPackByIndex(self, index): return self.ipyFamilyRedPackCache[index]
    def GetActFeastRedPacketSuccCount(self): return self.ipyActFeastRedPacketSuccLen
    def GetActFeastRedPacketSuccByIndex(self, index): return self.ipyActFeastRedPacketSuccCache[index]
    def GetNPCShowCount(self): return self.ipyNPCShowLen
    def GetNPCShowByIndex(self, index): return self.ipyNPCShowCache[index]
    def GetSealDemonCount(self): return self.ipySealDemonLen
@@ -4054,6 +4895,8 @@
    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 GetChestsCount(self): return self.ipyChestsLen
    def GetChestsByIndex(self, index): return self.ipyChestsCache[index]
    def GetChestsAwardCount(self): return self.ipyChestsAwardLen
@@ -4128,14 +4971,72 @@
    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 GetCrossRealmPKDanAwardCount(self): return self.ipyCrossRealmPKDanAwardLen
    def GetCrossRealmPKDanAwardByIndex(self, index): return self.ipyCrossRealmPKDanAwardCache[index]
    def GetCrossRealmPKOrderAwardCount(self): return self.ipyCrossRealmPKOrderAwardLen
    def GetCrossRealmPKOrderAwardByIndex(self, index): return self.ipyCrossRealmPKOrderAwardCache[index]
    def GetCrossZoneCommCount(self): return self.ipyCrossZoneCommLen
    def GetCrossZoneCommByIndex(self, index): return self.ipyCrossZoneCommCache[index]
    def GetCrossPenglaiZoneMapCount(self): return self.ipyCrossPenglaiZoneMapLen
    def GetCrossPenglaiZoneMapByIndex(self, index): return self.ipyCrossPenglaiZoneMapCache[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]
    def GetActLoginAwardCount(self): return self.ipyActLoginAwardLen
    def GetActLoginAwardByIndex(self, index): return self.ipyActLoginAwardCache[index]
    def GetLoginAwardCount(self): return self.ipyLoginAwardLen
    def GetLoginAwardByIndex(self, index): return self.ipyLoginAwardCache[index]
    def GetZhuXianSuitAttrCount(self): return self.ipyZhuXianSuitAttrLen
    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
    def GetActFeastWeekPartyByIndex(self, index): return self.ipyActFeastWeekPartyCache[index]
    def GetFeastWeekPartyCount(self): return self.ipyFeastWeekPartyLen
    def GetFeastWeekPartyByIndex(self, index): return self.ipyFeastWeekPartyCache[index]
    def GetNewAllPeoplePartyCount(self): return self.ipyNewAllPeoplePartyLen
    def GetNewAllPeoplePartyByIndex(self, index): return self.ipyNewAllPeoplePartyCache[index]
    def GetNewAllPeoplePartyAwardCount(self): return self.ipyNewAllPeoplePartyAwardLen
    def GetNewAllPeoplePartyAwardByIndex(self, index): return self.ipyNewAllPeoplePartyAwardCache[index]
    def GetZhuXianStoneAttrCount(self): return self.ipyZhuXianStoneAttrLen
    def GetZhuXianStoneAttrByIndex(self, index): return self.ipyZhuXianStoneAttrCache[index]
    def GetActLuckyTreasureCount(self): return self.ipyActLuckyTreasureLen
    def GetActLuckyTreasureByIndex(self, index): return self.ipyActLuckyTreasureCache[index]
    def GetLuckyTreasureTemplateCount(self): return self.ipyLuckyTreasureTemplateLen
    def GetLuckyTreasureTemplateByIndex(self, index): return self.ipyLuckyTreasureTemplateCache[index]
    def GetMysteryShopCount(self): return self.ipyMysteryShopLen
    def GetMysteryShopByIndex(self, index): return self.ipyMysteryShopCache[index]
    def GetEquipPlaceIndexMapCount(self): return self.ipyEquipPlaceIndexMapLen
    def GetEquipPlaceIndexMapByIndex(self, index): return self.ipyEquipPlaceIndexMapCache[index]
    def GetEquipStarUpCount(self): return self.ipyEquipStarUpLen
    def GetEquipStarUpByIndex(self, index): return self.ipyEquipStarUpCache[index]
    def GetEquipPlusEvolveCount(self): return self.ipyEquipPlusEvolveLen
    def GetEquipPlusEvolveByIndex(self, index): return self.ipyEquipPlusEvolveCache[index]
    def GetFamilyBossAwardCount(self): return self.ipyFamilyBossAwardLen
    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]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData