hch
2019-08-28 5880a05cd7028b88baee029a93a4303d136a2db0
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -44,9 +44,18 @@
                "RolePoint":(
                        ("BYTE", "AttrID", 1),
                        ("dict", "AddAttrInfoPerPoint", 0),
                        ("dict", "PointQualityAttrIDDict", 0),
                        ("dict", "PointQualityAttrValueDict", 0),
                        ("BYTE", "FightPowerPerPoint", 0),
                        ("dict", "PointQualityAttrDict", 0),
                        ("list", "PointQualityIntervalList", 0),
                        ),
                "LingQiAttr":(
                        ("BYTE", "ItemID", 1),
                        ("list", "LingQiAttrID", 0),
                        ("list", "LingQiAttrValue", 0),
                        ("DWORD", "LingQiAttrScore", 0),
                        ("dict", "UpCostItem", 0),
                        ("DWORD", "NextItemID", 0),
                        ),
                "Realm":(
@@ -54,6 +63,7 @@
                        ("DWORD", "NeedLV", 0),
                        ("DWORD", "NeedItemID", 0),
                        ("WORD", "NeedItemCnt", 0),
                        ("list", "NeedEquip", 0),
                        ("list", "AddAttrType", 0),
                        ("list", "AddAttrNum", 0),
                        ("DWORD", "BossID", 0),
@@ -88,6 +98,7 @@
                        ("WORD", "LimiRealmLV", 0),
                        ("DWORD", "LimitMissionID", 0),
                        ("BYTE", "LimitVIPLV", 0),
                        ("char", "MailKey", 0),
                        ),
                "ItemCompound":(
@@ -134,6 +145,7 @@
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("BYTE", "ItemQuality", 1),
                        ("list", "LegendAttrCountInfo", 0),
                        ),
@@ -152,6 +164,7 @@
                        ("BYTE", "ItemClassLV", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("BYTE", "ItemQuality", 1),
                        ("dict", "LVLegendAttrLibNumInfo", 0),
                        ),
@@ -338,7 +351,12 @@
                        ("DWORD", "NPCID", 1),
                        ("DWORD", "LostHPPerSecond", 0),
                        ("BYTE", "MaxPlayerCount", 0),
                        ("DWORD", "ReduceRate", 0),
                        ("DWORD", "LostHPPerSecondEx", 0),
                        ("BYTE", "FightPowerMinByLV", 0),
                        ("DWORD", "FightPowerMin", 0),
                        ("DWORD", "FightPowerMax", 0),
                        ("DWORD", "EveryFightPower", 0),
                        ("DWORD", "EveryFightPowerLostHPEx", 0),
                        ),
                "EquipSuitAttr":(
@@ -376,26 +394,26 @@
                        ("WORD", "LV", 1),
                        ("DWORD", "CftHit", 0),
                        ("DWORD", "CftMiss", 0),
                        ("DWORD", "CftDamagePer", 0),
                        ("DWORD", "CftDamReduce", 0),
                        ("DWORD", "CftIgnoreDefRate", 0),
                        ("DWORD", "CftDamChanceDef", 0),
                        ("DWORD", "CftBleedDamage", 0),
                        ("DWORD", "CftFaintRate", 0),
                        ("DWORD", "CftSuperHitReduce", 0),
                        ("DWORD", "CftSuperHitRateReduce", 0),
                        ("DWORD", "CftSuperHitRate", 0),
                        ("DWORD", "CftLuckyHitRate", 0),
                        ("DWORD", "CftLuckyHitRateReduce", 0),
                        ("DWORD", "CftSkillAtkRate", 0),
                        ("DWORD", "CftSkillAtkRateReduce", 0),
                        ("DWORD", "CftFinalHurtPer", 0),
                        ("DWORD", "CftFinalHurtReducePer", 0),
                        ("DWORD", "CftDamagePerPVP", 0),
                        ("DWORD", "CftDamagePerPVPReduce", 0),
                        ("DWORD", "CftNPCHurtAddPer", 0),
                        ("DWORD", "CftNormalHurtPer", 0),
                        ("DWORD", "CftFabaoHurtPer", 0),
                        ("DWORD", "CftDamBackPer", 0),
                        ("DWORD", "CftIgnoreDefRateReduce", 0),
                        ("DWORD", "CftFaintDefRate", 0),
                        ("DWORD", "CftAtkSpeed", 0),
                        ("DWORD", "CftLuckyHit", 0),
                        ("DWORD", "CftSpeedPer", 0),
                        ("DWORD", "CftAtkPer", 0),
                        ("DWORD", "CftMaxHPPer", 0),
                        ("DWORD", "CftJobAHurtAddPer", 0),
                        ("DWORD", "CftJobBHurtAddPer", 0),
                        ("DWORD", "CftJobCHurtAddPer", 0),
@@ -417,6 +435,7 @@
                        ("dict", "EquipColorMaxDropCount", 0),
                        ("dict", "EquipColorSuitInfo", 0),
                        ("dict", "EquipPartKeyRateInfo", 0),
                        ("BYTE", "ColorSuitPartOptimization", 0),
                        ("dict", "KillCountDropEquipPub", 0),
                        ("dict", "ItemIDDropRate", 0),
                        ("dict", "ItemIDMaxDropCount", 0),
@@ -444,6 +463,12 @@
                        ("DWORD", "SweepRunePoint", 0),
                        ("DWORD", "SweepYsog", 0),
                        ("dict", "SweepGoodDrop", 0),
                        ),
                "ChinMap":(
                        ("DWORD", "MapID", 1),
                        ("BYTE", "CanRide", 0),
                        ("BYTE", "CanOutPet", 0),
                        ),
                "FBFunc":(
@@ -522,6 +547,7 @@
                        ("BYTE", "ClassLV", 1),
                        ("BYTE", "EquipColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("BYTE", "ItemQuality", 1),
                        ("DWORD", "BaseEquipMaxHPAddPerC", 0),
                        ("DWORD", "BaseEquipAtkAddPerC", 0),
                        ("DWORD", "SuperHitC", 0),
@@ -533,8 +559,10 @@
                        ("DWORD", "PerLVMaxHPC", 0),
                        ("DWORD", "DropMoneyPerC", 0),
                        ("DWORD", "SuperHitReduceC", 0),
                        ("DWORD", "SuperHitRateReduceC", 0),
                        ("DWORD", "HitC", 0),
                        ("DWORD", "MissC", 0),
                        ("DWORD", "PetDamPerC", 0),
                        ),
                "Success":(
@@ -597,12 +625,9 @@
                "AppointItem":(
                        ("DWORD", "ID", 1),
                        ("BYTE", "SuiteLV", 0),
                        ("BYTE", "CancelUseLimit", 0),
                        ("list", "LegendAttrID", 0),
                        ("list", "LegendAttrValue", 0),
                        ("list", "OutOfPrintAttr", 0),
                        ("list", "OutOfPrintAttrValue", 0),
                        ),
                "AuctionItem":(
@@ -685,17 +710,6 @@
                        ("list", "ItemBind", 0),
                        ),
                "TreasureRefine":(
                        ("WORD", "TreasureID", 1),
                        ("BYTE", "TreasureLV", 1),
                        ("dict", "TreasureAttr", 0),
                        ("dict", "Material", 0),
                        ("WORD", "SuccessRate", 0),
                        ("DWORD", "OpenSkill", 0),
                        ("BYTE", "NeedAlchemyLV", 0),
                        ("BYTE", "NeedAllTreasureLV", 0),
                        ),
                "RefineStove":(
                        ("BYTE", "StoveLV", 1),
                        ("DWORD", "UpNeedExp", 0),
@@ -708,7 +722,7 @@
                        ("BYTE", "AlchemyQuality", 0),
                        ("DWORD", "LearnNeedItemID", 0),
                        ("BYTE", "LearnNeedAlchemLV", 0),
                        ("WORD", "LearnNeedLuck", 0),
                        ("WORD", "LearnNeedLingGenPoint", 0),
                        ("WORD", "NeedTime", 0),
                        ("WORD", "AlchemyExp", 0),
                        ("dict", "Material", 0),
@@ -736,8 +750,8 @@
                        ),
                "PersonalBoss":(
                        ("DWORD", "NPCID", 1),
                        ("DWORD", "ChanllengeLv", 0),
                        ("DWORD", "NPCID", 0),
                        ("DWORD", "FuncLineID", 1),
                        ),
                "FamilyActivity":(
@@ -773,7 +787,7 @@
                "SealDemon":(
                        ("DWORD", "NPCID", 1),
                        ("BYTE", "LineID", 0),
                        ("WORD", "KillTime", 0),
                        ("list", "OwnerAwardItemEx", 0),
                        ),
                "FbEncourage":(
@@ -814,6 +828,7 @@
                "CollectNPC":(
                        ("DWORD", "NPCID", 1),
                        ("BYTE", "IsMissionCollectNPC", 0),
                        ("BYTE", "PrepareTime", 0),
                        ("list", "LostHPPer", 0),
                        ("BYTE", "MaxCollectCount", 0),
@@ -823,6 +838,17 @@
                        ("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":(
@@ -832,6 +858,7 @@
                        ("WORD", "CostGold", 0),
                        ("BYTE", "ShowType", 0),
                        ("BYTE", "IsBind", 0),
                        ("BYTE", "AucionItemCanSell", 0),
                        ),
                "ChestsAward":(
@@ -848,6 +875,12 @@
                        ("BYTE", "MoneyType", 0),
                        ("DWORD", "MoneyCount", 0),
                        ("list", "NeedNotifyItemList", 0),
                        ("BYTE", "IsDropJobSelf", 0),
                        ("list", "PieRateDrop", 0),
                        ("BYTE", "PieRateDoCnt", 0),
                        ("dict", "IndepRateDrop", 0),
                        ("dict", "EquipColorSuitInfo", 0),
                        ("dict", "EquipPartKeyRateInfo", 0),
                        ),
                "VIPKillNPC":(
@@ -900,6 +933,8 @@
                "CTG":(
                        ("BYTE", "RecordID", 1),
                        ("BYTE", "CanResetBuyCount", 0),
                        ("BYTE", "TotalBuyCount", 0),
                        ("BYTE", "DailyBuyCount", 0),
                        ("WORD", "GainGold", 0),
                        ("WORD", "GainGoldPrize", 0),
@@ -1167,6 +1202,12 @@
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossZonePK":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
                        ("list", "ServerGroupIDList", 0),
                        ),
                "CrossPenglaiZoneMap":(
                        ("BYTE", "ZoneID", 0),
                        ("DWORD", "MapID", 1),
@@ -1260,33 +1301,11 @@
                        ("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":(
@@ -1321,13 +1340,6 @@
                        ("DWORD", "Index", 1),
                        ("DWORD", "NeedPoint", 0),
                        ("dict", "Award", 0),
                        ),
                "ZhuXianStoneAttr":(
                        ("BYTE", "SuitType", 1),
                        ("BYTE", "ShareSoneLV", 1),
                        ("list", "AttrIDList", 0),
                        ("list", "AttrValueList", 0),
                        ),
                "ActLuckyTreasure":(
@@ -1365,9 +1377,11 @@
                        ("BYTE", "EquipPlace", 1),
                        ("BYTE", "Star", 1),
                        ("list", "CostEquipPlace", 0),
                        ("BYTE", "IsJobLimit", 0),
                        ("list", "CostEquipColor", 0),
                        ("BYTE", "CostEquipCnt", 0),
                        ("BYTE", "SuitTotalRate", 0),
                        ("BYTE", "UnSuitRate", 0),
                        ("BYTE", "SuitRate", 0),
                        ("dict", "CostItemDict", 0),
                        ("dict", "StarAttrInfo", 0),
                        ("dict", "BaseAttrInfo", 0),
@@ -1382,6 +1396,7 @@
                        ),
                "FamilyBossAward":(
                        ("DWORD", "BossID", 1),
                        ("list", "WorldLV", 0),
                        ("list", "Rank", 0),
                        ("list", "Award1", 0),
@@ -1399,7 +1414,7 @@
                        ("list", "WorldLV", 0),
                        ("list", "Rank", 0),
                        ("list", "Award1", 0),
                        ("dict", "Award2", 0),
                        ("list", "Award2", 0),
                        ),
                "FairyDomain":(
@@ -1408,10 +1423,13 @@
                        ("DWORD", "MapID", 0),
                        ("BYTE", "LineID", 0),
                        ("DWORD", "BossID", 0),
                        ("BYTE", "EventFBType", 0),
                        ("BYTE", "CostEnergy", 0),
                        ("BYTE", "NeedAlchemyLV", 0),
                        ("list", "NeedLV", 0),
                        ("DWORD", "Weight", 0),
                        ("DWORD", "HourCntPriLimit", 0),
                        ("DWORD", "DayCntPriLimit", 0),
                        ),
                "FairyAdventures":(
@@ -1427,6 +1445,7 @@
                        ("WORD", "Cnt", 1),
                        ("DWORD", "EventID", 0),
                        ("list", "Award", 0),
                        ("list", "RandomAward", 0),
                        ),
                "FBBuyBuff":(
@@ -1434,6 +1453,42 @@
                        ("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),
                        ),
                "LingGenEffect":(
                        ("DWORD", "ID", 0),
                        ("DWORD", "PointID", 1),
                        ("BYTE", "QualityLV", 1),
                        ),
                "HorsePetSkin":(
                        ("BYTE", "Type", 1),
                        ("DWORD", "ID", 1),
                        ("BYTE", "SkinLV", 1),
                        ("DWORD", "NeedExp", 0),
                        ("dict", "AttrInfo", 0),
                        ("BYTE", "SkinIndex", 0),
                        ),
                "HistoryRechargeAward":(
                        ("BYTE", "ID", 1),
                        ("DWORD", "Recharge", 0),
                        ("dict", "Reward", 0),
                        ),
                }
@@ -1463,16 +1518,35 @@
    def __init__(self):
        self.AttrID = 0
        self.AddAttrInfoPerPoint = {}
        self.PointQualityAttrIDDict = {}
        self.PointQualityAttrValueDict = {}
        self.FightPowerPerPoint = 0
        self.PointQualityAttrDict = {}
        self.PointQualityIntervalList = []
        return
        
    def GetAttrID(self): return self.AttrID # 属性ID
    def GetAddAttrInfoPerPoint(self): return self.AddAttrInfoPerPoint # 每点增加属性信息
    def GetPointQualityAttrIDDict(self): return self.PointQualityAttrIDDict # 点数品质进阶增加属性ID, 根据职业区分
    def GetPointQualityAttrValueDict(self): return self.PointQualityAttrValueDict # 点数品质进阶增加属性值列表, 根据职业区分
    def GetAddAttrInfoPerPoint(self): return self.AddAttrInfoPerPoint # 每点增加属性信息 {"职业":[[每X点,属性ID,值], ...], ..}
    def GetFightPowerPerPoint(self): return self.FightPowerPerPoint # 每点附加战斗力
    def GetPointQualityAttrDict(self): return self.PointQualityAttrDict # 点数品质进阶增加属性,  {职业:{属性ID:[阶段属性,..],..},..}
    def GetPointQualityIntervalList(self): return self.PointQualityIntervalList # 点数品质进阶属性点区间列表
# 灵器属性表
class IPY_LingQiAttr():
    def __init__(self):
        self.ItemID = 0
        self.LingQiAttrID = []
        self.LingQiAttrValue = []
        self.LingQiAttrScore = 0
        self.UpCostItem = {}
        self.NextItemID = 0
        return
    def GetItemID(self): return self.ItemID # 属性ID
    def GetLingQiAttrID(self): return self.LingQiAttrID # 灵器属性ID
    def GetLingQiAttrValue(self): return self.LingQiAttrValue # 灵器属性数值
    def GetLingQiAttrScore(self): return self.LingQiAttrScore # 灵器属性评分
    def GetUpCostItem(self): return self.UpCostItem # 突破需要材料
    def GetNextItemID(self): return self.NextItemID # 突破后物品ID
# 境界表
class IPY_Realm():
@@ -1482,6 +1556,7 @@
        self.NeedLV = 0
        self.NeedItemID = 0
        self.NeedItemCnt = 0
        self.NeedEquip = []
        self.AddAttrType = []
        self.AddAttrNum = []
        self.BossID = 0
@@ -1494,6 +1569,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
@@ -1550,7 +1626,8 @@
        self.LimitMagicWeapon = 0
        self.LimiRealmLV = 0
        self.LimitMissionID = 0
        self.LimitVIPLV = 0
        self.LimitVIPLV = 0
        self.MailKey = ""
        return
        
    def GetFuncId(self): return self.FuncId # 功能标识
@@ -1558,7 +1635,8 @@
    def GetLimitMagicWeapon(self): return self.LimitMagicWeapon # 需要解锁法宝ID
    def GetLimiRealmLV(self): return self.LimiRealmLV # 需要境界等级
    def GetLimitMissionID(self): return self.LimitMissionID # 需要完成的任务ID
    def GetLimitVIPLV(self): return self.LimitVIPLV # 需要VIP等级
    def GetLimitVIPLV(self): return self.LimitVIPLV # 需要VIP等级
    def GetMailKey(self): return self.MailKey # 邮件
# 合成表
class IPY_ItemCompound():
@@ -1651,12 +1729,14 @@
        self.ItemType = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.ItemQuality = 0
        self.LegendAttrCountInfo = []
        return
        
    def GetItemType(self): return self.ItemType # 物品类型
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetItemQuality(self): return self.ItemQuality # 物品星级
    def GetLegendAttrCountInfo(self): return self.LegendAttrCountInfo # 传奇属性条数信息 [[条数, [属性类型库编号, ...]], ...]
# 装备传奇属性类型表
@@ -1689,6 +1769,7 @@
        self.ItemClassLV = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.ItemQuality = 0
        self.LVLegendAttrLibNumInfo = {}
        return
        
@@ -1696,6 +1777,7 @@
    def GetItemClassLV(self): return self.ItemClassLV # 物品阶级
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetItemQuality(self): return self.ItemQuality # 物品星级
    def GetLVLegendAttrLibNumInfo(self): return self.LVLegendAttrLibNumInfo # 属性ID等级段对应数值库编号 {属性ID:{等级:库编号, ...}}
# 神兽表
@@ -2077,13 +2159,23 @@
        self.NPCID = 0
        self.LostHPPerSecond = 0
        self.MaxPlayerCount = 0
        self.ReduceRate = 0
        self.LostHPPerSecondEx = 0
        self.FightPowerMinByLV = 0
        self.FightPowerMin = 0
        self.FightPowerMax = 0
        self.EveryFightPower = 0
        self.EveryFightPowerLostHPEx = 0
        return
        
    def GetNPCID(self): return self.NPCID # NPCID
    def GetLostHPPerSecond(self): return self.LostHPPerSecond # 单人每秒掉血量
    def GetMaxPlayerCount(self): return self.MaxPlayerCount # 最大人数
    def GetReduceRate(self): return self.ReduceRate # 衰减万分率
    def GetLostHPPerSecondEx(self): return self.LostHPPerSecondEx # 每增加一人附加掉血量
    def GetFightPowerMinByLV(self): return self.FightPowerMinByLV # 标准战力是否取等级表
    def GetFightPowerMin(self): return self.FightPowerMin # 标准战力
    def GetFightPowerMax(self): return self.FightPowerMax # 上限战力
    def GetEveryFightPower(self): return self.EveryFightPower # 每x点战力
    def GetEveryFightPowerLostHPEx(self): return self.EveryFightPowerLostHPEx # 每x点战力附加伤害
# 装备套装属性表
class IPY_EquipSuitAttr():
@@ -2158,26 +2250,26 @@
        self.LV = 0
        self.CftHit = 0
        self.CftMiss = 0
        self.CftDamagePer = 0
        self.CftDamReduce = 0
        self.CftIgnoreDefRate = 0
        self.CftDamChanceDef = 0
        self.CftBleedDamage = 0
        self.CftFaintRate = 0
        self.CftSuperHitReduce = 0
        self.CftSuperHitRateReduce = 0
        self.CftSuperHitRate = 0
        self.CftLuckyHitRate = 0
        self.CftLuckyHitRateReduce = 0
        self.CftSkillAtkRate = 0
        self.CftSkillAtkRateReduce = 0
        self.CftFinalHurtPer = 0
        self.CftFinalHurtReducePer = 0
        self.CftDamagePerPVP = 0
        self.CftDamagePerPVPReduce = 0
        self.CftNPCHurtAddPer = 0
        self.CftNormalHurtPer = 0
        self.CftFabaoHurtPer = 0
        self.CftDamBackPer = 0
        self.CftIgnoreDefRateReduce = 0
        self.CftFaintDefRate = 0
        self.CftAtkSpeed = 0
        self.CftLuckyHit = 0
        self.CftSpeedPer = 0
        self.CftAtkPer = 0
        self.CftMaxHPPer = 0
        self.CftJobAHurtAddPer = 0
        self.CftJobBHurtAddPer = 0
        self.CftJobCHurtAddPer = 0
@@ -2189,26 +2281,26 @@
    def GetLV(self): return self.LV # 等级
    def GetCftHit(self): return self.CftHit # 命中系数
    def GetCftMiss(self): return self.CftMiss # 闪避系数
    def GetCftDamagePer(self): return self.CftDamagePer # 增加伤害系数
    def GetCftDamReduce(self): return self.CftDamReduce # 减少伤害系数
    def GetCftIgnoreDefRate(self): return self.CftIgnoreDefRate # 无视防御系数
    def GetCftDamChanceDef(self): return self.CftDamChanceDef # 抵御系数
    def GetCftBleedDamage(self): return self.CftBleedDamage # 流血伤害系数
    def GetCftFaintRate(self): return self.CftFaintRate # 击晕系数
    def GetCftSuperHitReduce(self): return self.CftSuperHitReduce # 暴击抗性系数
    def GetCftSuperHitRateReduce(self): return self.CftSuperHitRateReduce # 暴击率抗性系数
    def GetCftSuperHitRate(self): return self.CftSuperHitRate # 暴击率系数
    def GetCftLuckyHitRate(self): return self.CftLuckyHitRate # 会心一击率系数
    def GetCftLuckyHitRateReduce(self): return self.CftLuckyHitRateReduce # 会心一击抗性系数
    def GetCftSkillAtkRate(self): return self.CftSkillAtkRate # 技能伤害系数
    def GetCftSkillAtkRateReduce(self): return self.CftSkillAtkRateReduce # 技能减伤系数
    def GetCftDamagePerPVP(self): return self.CftDamagePerPVP # PVP伤害增肌系数
    def GetCftFinalHurtPer(self): return self.CftFinalHurtPer # 最终伤害加成系数
    def GetCftFinalHurtReducePer(self): return self.CftFinalHurtReducePer # 最终伤害减免系数
    def GetCftDamagePerPVP(self): return self.CftDamagePerPVP # PVP伤害增加系数
    def GetCftDamagePerPVPReduce(self): return self.CftDamagePerPVPReduce # PVP伤害减少系数
    def GetCftNPCHurtAddPer(self): return self.CftNPCHurtAddPer # PVE技能加成系数
    def GetCftNormalHurtPer(self): return self.CftNormalHurtPer # 普通附加伤害加成系数
    def GetCftFabaoHurtPer(self): return self.CftFabaoHurtPer # 法宝附加伤害加成系数
    def GetCftDamBackPer(self): return self.CftDamBackPer # 伤害反射系数
    def GetCftIgnoreDefRateReduce(self): return self.CftIgnoreDefRateReduce # 无视防御抗性系数
    def GetCftFaintDefRate(self): return self.CftFaintDefRate # 控制抵抗系数
    def GetCftAtkSpeed(self): return self.CftAtkSpeed # 攻速系数
    def GetCftLuckyHit(self): return self.CftLuckyHit # 会心一击系数
    def GetCftSpeedPer(self): return self.CftSpeedPer # 移动速度百分比系数
    def GetCftAtkPer(self): return self.CftAtkPer # 攻击百分比系数
    def GetCftMaxHPPer(self): return self.CftMaxHPPer # 生命百分比系数
    def GetCftJobAHurtAddPer(self): return self.CftJobAHurtAddPer # 对目标战士伤害加成
    def GetCftJobBHurtAddPer(self): return self.CftJobBHurtAddPer # 对目标法师伤害加成
    def GetCftJobCHurtAddPer(self): return self.CftJobCHurtAddPer # 对目标弓箭伤害加成
@@ -2232,6 +2324,7 @@
        self.EquipColorMaxDropCount = {}
        self.EquipColorSuitInfo = {}
        self.EquipPartKeyRateInfo = {}
        self.ColorSuitPartOptimization = 0
        self.KillCountDropEquipPub = {}
        self.ItemIDDropRate = {}
        self.ItemIDMaxDropCount = {}
@@ -2260,6 +2353,7 @@
    def GetEquipColorMaxDropCount(self): return self.EquipColorMaxDropCount # 装备颜色最大掉落物品数 {颜色:上限数量,...}
    def GetEquipColorSuitInfo(self): return self.EquipColorSuitInfo # 装备颜色对应套装概率 {颜色:套装概率, ...}
    def GetEquipPartKeyRateInfo(self): return self.EquipPartKeyRateInfo # 装备部位集合信息 {(颜色,是否套装):部位集合key, ...}
    def GetColorSuitPartOptimization(self): return self.ColorSuitPartOptimization # 部位颜色套评分优选掉落,十位代表颜色,个位代表套装
    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:随机次数,...}
@@ -2301,6 +2395,19 @@
    def GetSweepRunePoint(self): return self.SweepRunePoint # 扫荡符印精华
    def GetSweepYsog(self): return self.SweepYsog # 扫荡魔精
    def GetSweepGoodDrop(self): return self.SweepGoodDrop # 扫荡珍稀符印
# 地图表格
class IPY_ChinMap():
    def __init__(self):
        self.MapID = 0
        self.CanRide = 0
        self.CanOutPet = 0
        return
    def GetMapID(self): return self.MapID # 地图ID
    def GetCanRide(self): return self.CanRide # 可否骑乘
    def GetCanOutPet(self): return self.CanOutPet # 可否召唤宠物
# 副本总表
class IPY_FBFunc():
@@ -2458,6 +2565,7 @@
        self.ClassLV = 0
        self.EquipColor = 0
        self.IsSuit = 0
        self.ItemQuality = 0
        self.BaseEquipMaxHPAddPerC = 0
        self.BaseEquipAtkAddPerC = 0
        self.SuperHitC = 0
@@ -2469,13 +2577,16 @@
        self.PerLVMaxHPC = 0
        self.DropMoneyPerC = 0
        self.SuperHitReduceC = 0
        self.SuperHitRateReduceC = 0
        self.HitC = 0
        self.MissC = 0
        self.MissC = 0
        self.PetDamPerC = 0
        return
        
    def GetClassLV(self): return self.ClassLV #  装备阶级
    def GetEquipColor(self): return self.EquipColor #  装备颜色
    def GetIsSuit(self): return self.IsSuit #  是否套装
    def GetItemQuality(self): return self.ItemQuality # 物品星级
    def GetBaseEquipMaxHPAddPerC(self): return self.BaseEquipMaxHPAddPerC #  基础防具生命百分比系数
    def GetBaseEquipAtkAddPerC(self): return self.BaseEquipAtkAddPerC #  基础武器攻击百分比系数
    def GetSuperHitC(self): return self.SuperHitC #  暴击值系数
@@ -2486,9 +2597,11 @@
    def GetPerLVAtkC(self): return self.PerLVAtkC #  每级增加攻击力系数
    def GetPerLVMaxHPC(self): return self.PerLVMaxHPC #  每级增加生命值系数
    def GetDropMoneyPerC(self): return self.DropMoneyPerC #  增加掉落金币量百分比系数
    def GetSuperHitReduceC(self): return self.SuperHitReduceC #  暴击抗性百分比系数
    def GetSuperHitReduceC(self): return self.SuperHitReduceC #  暴击减伤百分比系数
    def GetSuperHitRateReduceC(self): return self.SuperHitRateReduceC #  暴击抗性系数
    def GetHitC(self): return self.HitC #  命中系数
    def GetMissC(self): return self.MissC #  闪避系数
    def GetMissC(self): return self.MissC #  闪避系数
    def GetPetDamPerC(self): return self.PetDamPerC #  灵宠增伤百分比系数
# 成就表
class IPY_Success():
@@ -2617,21 +2730,15 @@
    
    def __init__(self):
        self.ID = 0
        self.SuiteLV = 0
        self.CancelUseLimit = 0
        self.LegendAttrID = []
        self.LegendAttrValue = []
        self.OutOfPrintAttr = []
        self.OutOfPrintAttrValue = []
        self.LegendAttrValue = []
        return
        
    def GetID(self): return self.ID # 定制物品ID
    def GetSuiteLV(self): return self.SuiteLV # 套装等级
    def GetCancelUseLimit(self): return self.CancelUseLimit # 穿戴限制(除职业)
    def GetLegendAttrID(self): return self.LegendAttrID # 传奇属性ID
    def GetLegendAttrValue(self): return self.LegendAttrValue # 传奇属性值
    def GetOutOfPrintAttr(self): return self.OutOfPrintAttr # 绝版属性ID
    def GetOutOfPrintAttrValue(self): return self.OutOfPrintAttrValue # 绝版属性最大值
    def GetLegendAttrValue(self): return self.LegendAttrValue # 传奇属性值
# 拍卖物品表
class IPY_AuctionItem():
@@ -2799,29 +2906,6 @@
    def GetItemCount(self): return self.ItemCount # 物品数量
    def GetItemBind(self): return self.ItemBind # 是否绑定
# 法宝铸炼表
class IPY_TreasureRefine():
    def __init__(self):
        self.TreasureID = 0
        self.TreasureLV = 0
        self.TreasureAttr = {}
        self.Material = {}
        self.SuccessRate = 0
        self.OpenSkill = 0
        self.NeedAlchemyLV = 0
        self.NeedAllTreasureLV = 0
        return
    def GetTreasureID(self): return self.TreasureID # 法宝id
    def GetTreasureLV(self): return self.TreasureLV # 法宝阶数
    def GetTreasureAttr(self): return self.TreasureAttr # 属性(最多3条)
    def GetMaterial(self): return self.Material # 铸炼材料
    def GetSuccessRate(self): return self.SuccessRate # 成功率
    def GetOpenSkill(self): return self.OpenSkill # 解锁技能
    def GetNeedAlchemyLV(self): return self.NeedAlchemyLV # 所需炼丹等级
    def GetNeedAllTreasureLV(self): return self.NeedAllTreasureLV # 所需所有法宝等级
# 炼丹炉等级表
class IPY_RefineStove():
    
@@ -2843,7 +2927,7 @@
        self.AlchemyQuality = 0
        self.LearnNeedItemID = 0
        self.LearnNeedAlchemLV = 0
        self.LearnNeedLuck = 0
        self.LearnNeedLingGenPoint = 0
        self.NeedTime = 0
        self.AlchemyExp = 0
        self.Material = {}
@@ -2855,7 +2939,7 @@
    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 GetLearnNeedLingGenPoint(self): return self.LearnNeedLingGenPoint # 丹方需要总灵根点数
    def GetNeedTime(self): return self.NeedTime # 炼丹时间(秒)
    def GetAlchemyExp(self): return self.AlchemyExp # 炼丹获得经验值
    def GetMaterial(self): return self.Material # 炼丹材料
@@ -2910,11 +2994,11 @@
    
    def __init__(self):
        self.NPCID = 0
        self.ChanllengeLv = 0
        self.FuncLineID = 0
        return
        
    def GetNPCID(self): return self.NPCID # ID
    def GetChanllengeLv(self): return self.ChanllengeLv # 可挑战等级
    def GetFuncLineID(self): return self.FuncLineID # 可挑战等级
# 仙盟活跃表
class IPY_FamilyActivity():
@@ -2986,12 +3070,12 @@
    def __init__(self):
        self.NPCID = 0
        self.LineID = 0
        self.KillTime = 0
        self.OwnerAwardItemEx = []
        return
        
    def GetNPCID(self): return self.NPCID # ID
    def GetLineID(self): return self.LineID
    def GetKillTime(self): return self.KillTime # 击杀总时间秒
    def GetOwnerAwardItemEx(self): return self.OwnerAwardItemEx # 第一名额外奖励物品[[itemID,个数,是否拍品], ...]
# 副本鼓舞表
class IPY_FbEncourage():
@@ -3074,6 +3158,7 @@
    
    def __init__(self):
        self.NPCID = 0
        self.IsMissionCollectNPC = 0
        self.PrepareTime = 0
        self.LostHPPer = []
        self.MaxCollectCount = 0
@@ -3082,10 +3167,12 @@
        self.CollectAward = []
        self.CollectAppointAward = {}
        self.AlchemyDiffLV = 0
        self.NotifyCollectResult = 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无限制
@@ -3094,7 +3181,29 @@
    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 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():
@@ -3105,7 +3214,8 @@
        self.CostItemCount = 0
        self.CostGold = 0
        self.ShowType = 0
        self.IsBind = 0
        self.IsBind = 0
        self.AucionItemCanSell = 0
        return
        
    def GetChestsItemID(self): return self.ChestsItemID # 宝箱物品ID
@@ -3113,7 +3223,8 @@
    def GetCostItemCount(self): return self.CostItemCount # 消耗物品个数
    def GetCostGold(self): return self.CostGold # 消耗仙玉
    def GetShowType(self): return self.ShowType # 前端表现类型0-无表现, >0有表现需同步结果,具体类型前端自定义
    def GetIsBind(self): return self.IsBind # 开出物品是否绑定
    def GetIsBind(self): return self.IsBind # 开出物品是否绑定
    def GetAucionItemCanSell(self): return self.AucionItemCanSell # 开出拍品可否上架集市
# 宝箱表产出表
class IPY_ChestsAward():
@@ -3131,7 +3242,13 @@
        self.JobItemList = []
        self.MoneyType = 0
        self.MoneyCount = 0
        self.NeedNotifyItemList = []
        self.NeedNotifyItemList = []
        self.IsDropJobSelf = 0
        self.PieRateDrop = []
        self.PieRateDoCnt = 0
        self.IndepRateDrop = {}
        self.EquipColorSuitInfo = {}
        self.EquipPartKeyRateInfo = {}
        return
        
    def GetChestsItemID(self): return self.ChestsItemID # 宝箱物品ID
@@ -3146,7 +3263,13 @@
    def GetJobItemList(self): return self.JobItemList # 职业物品列表
    def GetMoneyType(self): return self.MoneyType # 货币类型
    def GetMoneyCount(self): return self.MoneyCount # 货币数量
    def GetNeedNotifyItemList(self): return self.NeedNotifyItemList # 需要广播的物品ID列表
    def GetNeedNotifyItemList(self): return self.NeedNotifyItemList # 需要广播的物品ID列表
    def GetIsDropJobSelf(self): return self.IsDropJobSelf # 是否只掉落本职业
    def GetPieRateDrop(self): return self.PieRateDrop # 饼图概率掉落信息 [(概率,0),(概率,(阶,颜色)),...]
    def GetPieRateDoCnt(self): return self.PieRateDoCnt # 饼图概率执行次数
    def GetIndepRateDrop(self): return self.IndepRateDrop # 独立概率掉落信息 {(阶,颜色):概率,...}
    def GetEquipColorSuitInfo(self): return self.EquipColorSuitInfo # 装备颜色对应套装概率 {颜色:套装概率, ...}
    def GetEquipPartKeyRateInfo(self): return self.EquipPartKeyRateInfo # 装备部位集合信息 {(颜色,是否套装):部位集合key, ...}
# VIP杀怪加攻击表
class IPY_VIPKillNPC():
@@ -3256,6 +3379,8 @@
    
    def __init__(self):
        self.RecordID = 0
        self.CanResetBuyCount = 0
        self.TotalBuyCount = 0
        self.DailyBuyCount = 0
        self.GainGold = 0
        self.GainGoldPrize = 0
@@ -3265,6 +3390,8 @@
        return
        
    def GetRecordID(self): return self.RecordID # 记录ID
    def GetCanResetBuyCount(self): return self.CanResetBuyCount # 是否允许重置次数
    def GetTotalBuyCount(self): return self.TotalBuyCount # 总限购次数
    def GetDailyBuyCount(self): return self.DailyBuyCount # 每日限购次数
    def GetGainGold(self): return self.GainGold # 获得仙玉数
    def GetGainGoldPrize(self): return self.GainGoldPrize # 赠送仙玉数
@@ -3821,6 +3948,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():
    
@@ -4018,67 +4158,20 @@
    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():
@@ -4152,21 +4245,6 @@
    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():
    
@@ -4239,9 +4317,11 @@
        self.EquipPlace = 0
        self.Star = 0
        self.CostEquipPlace = []
        self.IsJobLimit = 0
        self.CostEquipColor = []
        self.CostEquipCnt = 0
        self.SuitTotalRate = 0
        self.UnSuitRate = 0
        self.SuitRate = 0
        self.CostItemDict = {}
        self.StarAttrInfo = {}
        self.BaseAttrInfo = {}
@@ -4251,9 +4331,11 @@
    def GetEquipPlace(self): return self.EquipPlace # 装备位
    def GetStar(self): return self.Star # 星数
    def GetCostEquipPlace(self): return self.CostEquipPlace # 可用装备部位
    def GetIsJobLimit(self): return self.IsJobLimit # 是否只用本职业装备材料
    def GetCostEquipColor(self): return self.CostEquipColor # 可用装备品质
    def GetCostEquipCnt(self): return self.CostEquipCnt # 装备数量
    def GetSuitTotalRate(self): return self.SuitTotalRate # 全套装加成概率(非套50%)
    def GetUnSuitRate(self): return self.UnSuitRate # 单件非套装加成概率
    def GetSuitRate(self): return self.SuitRate # 单件套装加成概率
    def GetCostItemDict(self): return self.CostItemDict # 特殊材料
    def GetStarAttrInfo(self): return self.StarAttrInfo # 星级属性
    def GetBaseAttrInfo(self): return self.BaseAttrInfo # 基础属性增加
@@ -4279,12 +4361,14 @@
class IPY_FamilyBossAward():
    
    def __init__(self):
        self.BossID = 0
        self.WorldLV = []
        self.Rank = []
        self.Award1 = []
        self.Award2 = {}
        return
        
    def GetBossID(self): return self.BossID # BossID
    def GetWorldLV(self): return self.WorldLV # 世界等级
    def GetRank(self): return self.Rank # 排名
    def GetAward1(self): return self.Award1 # 奖励 [[独立概率万分率,[物品ID,数量,是否拍品]],..]
@@ -4311,14 +4395,14 @@
        self.WorldLV = []
        self.Rank = []
        self.Award1 = []
        self.Award2 = {}
        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 GetAward2(self): return self.Award2 # 饼图奖励  [[(概率,[物品ID,数量,是否拍品]),..]]
# 缥缈仙域表
class IPY_FairyDomain():
@@ -4329,10 +4413,13 @@
        self.MapID = 0
        self.LineID = 0
        self.BossID = 0
        self.EventFBType = 0
        self.CostEnergy = 0
        self.NeedAlchemyLV = 0
        self.NeedLV = []
        self.Weight = 0
        self.Weight = 0
        self.HourCntPriLimit = 0
        self.DayCntPriLimit = 0
        return
        
    def GetID(self): return self.ID # 事件编号
@@ -4340,10 +4427,13 @@
    def GetMapID(self): return self.MapID # 副本id
    def GetLineID(self): return self.LineID # 副本线路id
    def GetBossID(self): return self.BossID # 副本BossID
    def GetEventFBType(self): return self.EventFBType # 事件副本类型,0-前端,1-本服,2-跨服
    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 GetWeight(self): return self.Weight # 权重
    def GetHourCntPriLimit(self): return self.HourCntPriLimit # 个人每小时次数限制
    def GetDayCntPriLimit(self): return self.DayCntPriLimit # 个人每天次数限制
# 缥缈奇遇表
class IPY_FairyAdventures():
@@ -4370,12 +4460,14 @@
    def __init__(self):
        self.Cnt = 0
        self.EventID = 0
        self.Award = []
        self.Award = []
        self.RandomAward = []
        return
        
    def GetCnt(self): return self.Cnt # 次数
    def GetEventID(self): return self.EventID # 事件编号
    def GetAward(self): return self.Award # 定制奖励(没配走正常奖励规则)[[物品ID,数量,是否拍品],..]
    def GetAward(self): return self.Award # 定制奖励(没配走正常奖励规则)[[物品ID,数量,是否拍品],..]
    def GetRandomAward(self): return self.RandomAward # 随机奖励 [[(权重,[物品ID,数量,是否拍品]),..],..]
# 副本Buff表
class IPY_FBBuyBuff():
@@ -4391,6 +4483,83 @@
    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 # 是否广播
# 灵根特效表
class IPY_LingGenEffect():
    def __init__(self):
        self.ID = 0
        self.PointID = 0
        self.QualityLV = 0
        return
    def GetID(self): return self.ID # ΨһID
    def GetPointID(self): return self.PointID # 灵根ID
    def GetQualityLV(self): return self.QualityLV # 品级
# 骑宠幻化表
class IPY_HorsePetSkin():
    def __init__(self):
        self.Type = 0
        self.ID = 0
        self.SkinLV = 0
        self.NeedExp = 0
        self.AttrInfo = {}
        self.SkinIndex = 0
        return
    def GetType(self): return self.Type # 1坐骑2灵宠
    def GetID(self): return self.ID # 关联ID(坐骑表和灵宠表ID)
    def GetSkinLV(self): return self.SkinLV # 幻化等级
    def GetNeedExp(self): return self.NeedExp # 升级需要经验
    def GetAttrInfo(self): return self.AttrInfo # 属性
    def GetSkinIndex(self): return self.SkinIndex # 外观
# 累计充值奖励表
class IPY_HistoryRechargeAward():
    def __init__(self):
        self.ID = 0
        self.Recharge = 0
        self.Reward = {}
        return
    def GetID(self): return self.ID # id
    def GetRecharge(self): return self.Recharge # 所需充值元
    def GetReward(self): return self.Reward # 职业对应的奖励内容,每个职业4组数据,物品ID和物品数量(1.枪豪2.道师3.剑修)
def Log(msg, playerID=0, par=0):
@@ -4420,6 +4589,8 @@
        self.ipyDienstgradLen = len(self.ipyDienstgradCache)
        self.ipyRolePointCache = self.__LoadFileData("RolePoint", IPY_RolePoint)
        self.ipyRolePointLen = len(self.ipyRolePointCache)
        self.ipyLingQiAttrCache = self.__LoadFileData("LingQiAttr", IPY_LingQiAttr)
        self.ipyLingQiAttrLen = len(self.ipyLingQiAttrCache)
        self.ipyRealmCache = self.__LoadFileData("Realm", IPY_Realm)
        self.ipyRealmLen = len(self.ipyRealmCache)
        self.ipyGodWeaponCache = self.__LoadFileData("GodWeapon", IPY_GodWeapon)
@@ -4488,6 +4659,8 @@
        self.ipyNPCDropItemLen = len(self.ipyNPCDropItemCache)
        self.ipyRuneTowerCache = self.__LoadFileData("RuneTower", IPY_RuneTower)
        self.ipyRuneTowerLen = len(self.ipyRuneTowerCache)
        self.ipyChinMapCache = self.__LoadFileData("ChinMap", IPY_ChinMap)
        self.ipyChinMapLen = len(self.ipyChinMapCache)
        self.ipyFBFuncCache = self.__LoadFileData("FBFunc", IPY_FBFunc)
        self.ipyFBFuncLen = len(self.ipyFBFuncCache)
        self.ipyFBLineCache = self.__LoadFileData("FBLine", IPY_FBLine)
@@ -4526,8 +4699,6 @@
        self.ipyDailyQuestLen = len(self.ipyDailyQuestCache)
        self.ipyDailyLivenessRewardCache = self.__LoadFileData("DailyLivenessReward", IPY_DailyLivenessReward)
        self.ipyDailyLivenessRewardLen = len(self.ipyDailyLivenessRewardCache)
        self.ipyTreasureRefineCache = self.__LoadFileData("TreasureRefine", IPY_TreasureRefine)
        self.ipyTreasureRefineLen = len(self.ipyTreasureRefineCache)
        self.ipyRefineStoveCache = self.__LoadFileData("RefineStove", IPY_RefineStove)
        self.ipyRefineStoveLen = len(self.ipyRefineStoveCache)
        self.ipyAlchemyCache = self.__LoadFileData("Alchemy", IPY_Alchemy)
@@ -4560,6 +4731,8 @@
        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)
@@ -4642,6 +4815,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)
@@ -4664,14 +4839,8 @@
        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)
@@ -4680,8 +4849,6 @@
        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)
@@ -4708,6 +4875,16 @@
        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)
        self.ipyLingGenEffectCache = self.__LoadFileData("LingGenEffect", IPY_LingGenEffect)
        self.ipyLingGenEffectLen = len(self.ipyLingGenEffectCache)
        self.ipyHorsePetSkinCache = self.__LoadFileData("HorsePetSkin", IPY_HorsePetSkin)
        self.ipyHorsePetSkinLen = len(self.ipyHorsePetSkinCache)
        self.ipyHistoryRechargeAwardCache = self.__LoadFileData("HistoryRechargeAward", IPY_HistoryRechargeAward)
        self.ipyHistoryRechargeAwardLen = len(self.ipyHistoryRechargeAwardCache)
        Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
        Log("IPY_DataMgr InitOK!")
        return
@@ -4878,6 +5055,8 @@
    def GetDienstgradByIndex(self, index): return self.ipyDienstgradCache[index]
    def GetRolePointCount(self): return self.ipyRolePointLen
    def GetRolePointByIndex(self, index): return self.ipyRolePointCache[index]
    def GetLingQiAttrCount(self): return self.ipyLingQiAttrLen
    def GetLingQiAttrByIndex(self, index): return self.ipyLingQiAttrCache[index]
    def GetRealmCount(self): return self.ipyRealmLen
    def GetRealmByIndex(self, index): return self.ipyRealmCache[index]
    def GetGodWeaponCount(self): return self.ipyGodWeaponLen
@@ -4946,6 +5125,8 @@
    def GetNPCDropItemByIndex(self, index): return self.ipyNPCDropItemCache[index]
    def GetRuneTowerCount(self): return self.ipyRuneTowerLen
    def GetRuneTowerByIndex(self, index): return self.ipyRuneTowerCache[index]
    def GetChinMapCount(self): return self.ipyChinMapLen
    def GetChinMapByIndex(self, index): return self.ipyChinMapCache[index]
    def GetFBFuncCount(self): return self.ipyFBFuncLen
    def GetFBFuncByIndex(self, index): return self.ipyFBFuncCache[index]
    def GetFBLineCount(self): return self.ipyFBLineLen
@@ -4984,8 +5165,6 @@
    def GetDailyQuestByIndex(self, index): return self.ipyDailyQuestCache[index]
    def GetDailyLivenessRewardCount(self): return self.ipyDailyLivenessRewardLen
    def GetDailyLivenessRewardByIndex(self, index): return self.ipyDailyLivenessRewardCache[index]
    def GetTreasureRefineCount(self): return self.ipyTreasureRefineLen
    def GetTreasureRefineByIndex(self, index): return self.ipyTreasureRefineCache[index]
    def GetRefineStoveCount(self): return self.ipyRefineStoveLen
    def GetRefineStoveByIndex(self, index): return self.ipyRefineStoveCache[index]
    def GetAlchemyCount(self): return self.ipyAlchemyLen
@@ -5018,6 +5197,8 @@
    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
@@ -5100,6 +5281,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
@@ -5122,14 +5305,8 @@
    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
@@ -5138,8 +5315,6 @@
    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
@@ -5166,6 +5341,16 @@
    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]
    def GetLingGenEffectCount(self): return self.ipyLingGenEffectLen
    def GetLingGenEffectByIndex(self, index): return self.ipyLingGenEffectCache[index]
    def GetHorsePetSkinCount(self): return self.ipyHorsePetSkinLen
    def GetHorsePetSkinByIndex(self, index): return self.ipyHorsePetSkinCache[index]
    def GetHistoryRechargeAwardCount(self): return self.ipyHistoryRechargeAwardLen
    def GetHistoryRechargeAwardByIndex(self, index): return self.ipyHistoryRechargeAwardCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData