From 0e043421fbceafb93068ead6a71deccba82651d8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 29 七月 2019 17:40:09 +0800
Subject: [PATCH] 8180 【后端】【主干】优化组队打BOSS(修复选中非玩家报错)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py |  367 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 232 insertions(+), 135 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 74a5e84..f7c3a8e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -45,9 +45,17 @@
                         ("BYTE", "AttrID", 1),
                         ("dict", "AddAttrInfoPerPoint", 0),
                         ("BYTE", "FightPowerPerPoint", 0),
-                        ("dict", "PointQualityAttrIDDict", 0),
-                        ("dict", "PointQualityAttrValueDict", 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":(
@@ -90,6 +98,7 @@
                         ("WORD", "LimiRealmLV", 0),
                         ("DWORD", "LimitMissionID", 0),
                         ("BYTE", "LimitVIPLV", 0),
+                        ("char", "MailKey", 0),
                         ),
 
                 "ItemCompound":(
@@ -136,6 +145,7 @@
                         ("BYTE", "ItemType", 1),
                         ("BYTE", "ItemColor", 1),
                         ("BYTE", "IsSuit", 1),
+                        ("BYTE", "ItemQuality", 1),
                         ("list", "LegendAttrCountInfo", 0),
                         ),
 
@@ -154,6 +164,7 @@
                         ("BYTE", "ItemClassLV", 1),
                         ("BYTE", "ItemColor", 1),
                         ("BYTE", "IsSuit", 1),
+                        ("BYTE", "ItemQuality", 1),
                         ("dict", "LVLegendAttrLibNumInfo", 0),
                         ),
 
@@ -341,6 +352,7 @@
                         ("DWORD", "LostHPPerSecond", 0),
                         ("BYTE", "MaxPlayerCount", 0),
                         ("DWORD", "LostHPPerSecondEx", 0),
+                        ("BYTE", "FightPowerMinByLV", 0),
                         ("DWORD", "FightPowerMin", 0),
                         ("DWORD", "FightPowerMax", 0),
                         ("DWORD", "EveryFightPower", 0),
@@ -382,28 +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),
@@ -425,6 +435,7 @@
                         ("dict", "EquipColorMaxDropCount", 0),
                         ("dict", "EquipColorSuitInfo", 0),
                         ("dict", "EquipPartKeyRateInfo", 0),
+                        ("BYTE", "ColorSuitPartOptimization", 0),
                         ("dict", "KillCountDropEquipPub", 0),
                         ("dict", "ItemIDDropRate", 0),
                         ("dict", "ItemIDMaxDropCount", 0),
@@ -452,6 +463,12 @@
                         ("DWORD", "SweepRunePoint", 0),
                         ("DWORD", "SweepYsog", 0),
                         ("dict", "SweepGoodDrop", 0),
+                        ),
+
+                "ChinMap":(
+                        ("DWORD", "MapID", 1),
+                        ("BYTE", "CanRide", 0),
+                        ("BYTE", "CanOutPet", 0),
                         ),
 
                 "FBFunc":(
@@ -530,6 +547,7 @@
                         ("BYTE", "ClassLV", 1),
                         ("BYTE", "EquipColor", 1),
                         ("BYTE", "IsSuit", 1),
+                        ("BYTE", "ItemQuality", 1),
                         ("DWORD", "BaseEquipMaxHPAddPerC", 0),
                         ("DWORD", "BaseEquipAtkAddPerC", 0),
                         ("DWORD", "SuperHitC", 0),
@@ -541,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":(
@@ -605,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":(
@@ -770,7 +787,7 @@
                 "SealDemon":(
                         ("DWORD", "NPCID", 1),
                         ("BYTE", "LineID", 0),
-                        ("WORD", "KillTime", 0),
+                        ("list", "OwnerAwardItemEx", 0),
                         ),
 
                 "FbEncourage":(
@@ -841,6 +858,7 @@
                         ("WORD", "CostGold", 0),
                         ("BYTE", "ShowType", 0),
                         ("BYTE", "IsBind", 0),
+                        ("BYTE", "AucionItemCanSell", 0),
                         ),
 
                 "ChestsAward":(
@@ -857,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":(
@@ -909,6 +933,8 @@
 
                 "CTG":(
                         ("BYTE", "RecordID", 1),
+                        ("BYTE", "CanResetBuyCount", 0),
+                        ("BYTE", "TotalBuyCount", 0),
                         ("BYTE", "DailyBuyCount", 0),
                         ("WORD", "GainGold", 0),
                         ("WORD", "GainGoldPrize", 0),
@@ -1275,24 +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),
-                        ),
-
-                "ZhuXianEquipDecompose":(
-                        ("BYTE", "ClassLV", 1),
-                        ("dict", "DecomposeInfo", 0),
                         ),
 
                 "ActFeastWeekParty":(
@@ -1327,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":(
@@ -1374,7 +1380,8 @@
                         ("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),
@@ -1389,6 +1396,7 @@
                         ),
 
                 "FamilyBossAward":(
+                        ("DWORD", "BossID", 1),
                         ("list", "WorldLV", 0),
                         ("list", "Rank", 0),
                         ("list", "Award1", 0),
@@ -1406,7 +1414,7 @@
                         ("list", "WorldLV", 0),
                         ("list", "Rank", 0),
                         ("list", "Award1", 0),
-                        ("dict", "Award2", 0),
+                        ("list", "Award2", 0),
                         ),
 
                 "FairyDomain":(
@@ -1461,6 +1469,27 @@
                         ("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),
+                        ),
                 }
 
 
@@ -1490,17 +1519,34 @@
         self.AttrID = 0
         self.AddAttrInfoPerPoint = {}
         self.FightPowerPerPoint = 0
-        self.PointQualityAttrIDDict = {}
-        self.PointQualityAttrValueDict = {}
+        self.PointQualityAttrDict = {}
         self.PointQualityIntervalList = []
         return
         
     def GetAttrID(self): return self.AttrID # 属性ID
     def GetAddAttrInfoPerPoint(self): return self.AddAttrInfoPerPoint # 每点增加属性信息 {"职业":[[每X点,属性ID,值], ...], ..}
     def GetFightPowerPerPoint(self): return self.FightPowerPerPoint # 每点附加战斗力
-    def GetPointQualityAttrIDDict(self): return self.PointQualityAttrIDDict # 点数品质进阶增加属性ID, 根据职业区分
-    def GetPointQualityAttrValueDict(self): return self.PointQualityAttrValueDict # 点数品质进阶增加属性值列表, 根据职业区分
+    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():
@@ -1580,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 # 功能标识
@@ -1588,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():
@@ -1681,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 # 传奇属性条数信息 [[条数, [属性类型库编号, ...]], ...]
 
 # 装备传奇属性类型表
@@ -1719,6 +1769,7 @@
         self.ItemClassLV = 0
         self.ItemColor = 0
         self.IsSuit = 0
+        self.ItemQuality = 0
         self.LVLegendAttrLibNumInfo = {}
         return
         
@@ -1726,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:{等级:库编号, ...}}
 
 # 神兽表
@@ -2108,6 +2160,7 @@
         self.LostHPPerSecond = 0
         self.MaxPlayerCount = 0
         self.LostHPPerSecondEx = 0
+        self.FightPowerMinByLV = 0
         self.FightPowerMin = 0
         self.FightPowerMax = 0
         self.EveryFightPower = 0
@@ -2118,6 +2171,7 @@
     def GetLostHPPerSecond(self): return self.LostHPPerSecond # 单人每秒掉血量
     def GetMaxPlayerCount(self): return self.MaxPlayerCount # 最大人数
     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点战力
@@ -2196,28 +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
@@ -2229,28 +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 # 对目标弓箭伤害加成
@@ -2274,6 +2324,7 @@
         self.EquipColorMaxDropCount = {}
         self.EquipColorSuitInfo = {}
         self.EquipPartKeyRateInfo = {}
+        self.ColorSuitPartOptimization = 0
         self.KillCountDropEquipPub = {}
         self.ItemIDDropRate = {}
         self.ItemIDMaxDropCount = {}
@@ -2302,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:随机次数,...}
@@ -2343,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():
@@ -2500,6 +2565,7 @@
         self.ClassLV = 0
         self.EquipColor = 0
         self.IsSuit = 0
+        self.ItemQuality = 0
         self.BaseEquipMaxHPAddPerC = 0
         self.BaseEquipAtkAddPerC = 0
         self.SuperHitC = 0
@@ -2511,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 #  暴击值系数
@@ -2528,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():
@@ -2659,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():
@@ -3005,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():
@@ -3149,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
@@ -3157,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():
@@ -3175,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
@@ -3190,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():
@@ -3300,6 +3379,8 @@
     
     def __init__(self):
         self.RecordID = 0
+        self.CanResetBuyCount = 0
+        self.TotalBuyCount = 0
         self.DailyBuyCount = 0
         self.GainGold = 0
         self.GainGoldPrize = 0
@@ -3309,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 # 赠送仙玉数
@@ -4075,48 +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_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():
@@ -4189,21 +4244,6 @@
     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():
@@ -4280,7 +4320,8 @@
         self.IsJobLimit = 0
         self.CostEquipColor = []
         self.CostEquipCnt = 0
-        self.SuitTotalRate = 0
+        self.UnSuitRate = 0
+        self.SuitRate = 0
         self.CostItemDict = {}
         self.StarAttrInfo = {}
         self.BaseAttrInfo = {}
@@ -4293,7 +4334,8 @@
     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 # 基础属性增加
@@ -4319,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,数量,是否拍品]],..]
@@ -4351,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():
@@ -4471,6 +4515,51 @@
     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):
@@ -4500,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)
@@ -4568,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)
@@ -4746,12 +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.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)
@@ -4760,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)
@@ -4792,6 +4879,12 @@
         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
@@ -4962,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
@@ -5030,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
@@ -5208,12 +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 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
@@ -5222,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
@@ -5254,6 +5345,12 @@
     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

--
Gitblit v1.8.0