ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -146,6 +146,12 @@
                        ("DWORD", "FightPower", 0),
                        ),
                "PresetUnlock":(
                        ("BYTE", "PresetType", 1),
                        ("BYTE", "UnlockType", 0),
                        ("DWORD", "UnlockValue", 0),
                        ),
                "Hero":(
                        ("DWORD", "HeroID", 1),
                        ("char", "Name", 0),
@@ -182,6 +188,7 @@
                        ("list", "AttrIDList", 0),
                        ("list", "AttrValueList", 0),
                        ("DWORD", "SkillID", 0),
                        ("list", "SkillIDExList", 0),
                        ),
                "HeroAwake":(
@@ -283,6 +290,7 @@
                        ("float", "AtkRatio", 0),
                        ("float", "MaxHPRatio", 0),
                        ("float", "DefRatio", 0),
                        ("float", "AtkSpeedRatio", 0),
                        ("float", "StunRateRatio", 0),
                        ("float", "SuperHitRateRatio", 0),
                        ("float", "ComboRateRatio", 0),
@@ -323,6 +331,10 @@
                        ("float", "QunFinalDamPerDefRatio", 0),
                        ("float", "PVPDamPerRatio", 0),
                        ("float", "PVPDamPerDefRatio", 0),
                        ("float", "GuanchuanRatio", 0),
                        ("float", "GuanchuanDefRatio", 0),
                        ("float", "ZhaojiaRatio", 0),
                        ("float", "ZhaojiaDefRatio", 0),
                        ),
                "MainChapter":(
@@ -599,6 +611,39 @@
                        ("list", "LegendAttrValue", 0),
                        ),
                "MGGanwuLV":(
                        ("BYTE", "GanwuLV", 1),
                        ("DWORD", "NextNeedExp", 0),
                        ("DWORD", "AtkBase", 0),
                        ("DWORD", "DefBase", 0),
                        ("DWORD", "HPBase", 0),
                        ("DWORD", "AtkSpeedBase", 0),
                        ("dict", "BatAttrBaseDict", 0),
                        ),
                "MGGuayuQuality":(
                        ("BYTE", "ItemColor", 1),
                        ("float", "AtkPlus", 0),
                        ("float", "DefPlus", 0),
                        ("float", "HPPlus", 0),
                        ("float", "AtkSpeedPlus", 0),
                        ("list", "AttrRange", 0),
                        ("dict", "AttrRangeDict", 0),
                        ),
                "MGGuayuType":(
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "EquipPlace", 0),
                        ("float", "BaseAttrProportion", 0),
                        ("DWORD", "FixedAttrID", 0),
                        ("list", "AttrIDLib", 0),
                        ),
                "MGLingyingQuality":(
                        ("DWORD", "Lingying", 1),
                        ("list", "ItemColorWeightList", 0),
                        ),
                "EquipLegendAttrCount":(
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "ItemColor", 1),
@@ -786,6 +831,10 @@
                        ("BYTE", "SpecAttrID", 0),
                        ("DWORD", "SpecAttrValue", 0),
                        ("DWORD", "SpecAttrPerStarAdd", 0),
                        ("BYTE", "PowerType", 0),
                        ("DWORD", "PowerTypeValue", 0),
                        ("DWORD", "PowerValue", 0),
                        ("DWORD", "PowerPerStarAdd", 0),
                        ),
                "GubaoResonanceAttr":(
@@ -803,6 +852,7 @@
                "GubaoStar":(
                        ("BYTE", "GubaoQuality", 1),
                        ("BYTE", "GubaoStar", 0),
                        ("list", "QualityStarCond", 0),
                        ("BYTE", "StarUPNeedSelfCnt", 0),
                        ("list", "StarUPNeedItemList", 0),
                        ),
@@ -2213,6 +2263,7 @@
                        ("list", "EquipColorRateList", 0),
                        ("list", "EquipColorRateList1", 0),
                        ("list", "EquipColorRateList2", 0),
                        ("DWORD", "LastSureOutNeed", 0),
                        ),
                "LLMJ":(
@@ -2395,6 +2446,17 @@
    def GetBuffRetain(self): return self.attrTuple[40] # Buff保留规则 BYTE
    def GetFightPower(self): return self.attrTuple[41] # 技能战斗力 DWORD
# 预设解锁
class IPY_PresetUnlock():
    def __init__(self):
        self.attrTuple = None
        return
    def GetPresetType(self): return self.attrTuple[0] # 预设类型 BYTE
    def GetUnlockType(self): return self.attrTuple[1] #  解锁类型 BYTE
    def GetUnlockValue(self): return self.attrTuple[2] #  解锁所需值 DWORD
# 武将表
class IPY_Hero():
    
@@ -2446,7 +2508,8 @@
    def GetBreakLV(self): return self.attrTuple[1] #  突破等级 BYTE
    def GetAttrIDList(self): return self.attrTuple[2] #  属性ID列表 list
    def GetAttrValueList(self): return self.attrTuple[3] #  属性值列表 list
    def GetSkillID(self): return self.attrTuple[4] #  激活技能ID DWORD
    def GetSkillID(self): return self.attrTuple[4] #  激活技能ID DWORD
    def GetSkillIDExList(self): return self.attrTuple[5] #  激活的额外技能ID列表 list
# 武将觉醒天赋表
class IPY_HeroAwake():
@@ -2613,46 +2676,51 @@
    def GetAtkRatio(self): return self.attrTuple[1] # 攻击系数 float
    def GetMaxHPRatio(self): return self.attrTuple[2] # float
    def GetDefRatio(self): return self.attrTuple[3] # float
    def GetStunRateRatio(self): return self.attrTuple[4] # float
    def GetSuperHitRateRatio(self): return self.attrTuple[5] # float
    def GetComboRateRatio(self): return self.attrTuple[6] # float
    def GetMissRateRatio(self): return self.attrTuple[7] # float
    def GetParryRateRatio(self): return self.attrTuple[8] # float
    def GetSuckHPPerRatio(self): return self.attrTuple[9] # float
    def GetStunRateDefRatio(self): return self.attrTuple[10] # float
    def GetSuperHitRateDefRatio(self): return self.attrTuple[11] # float
    def GetComboRateDefRatio(self): return self.attrTuple[12] # float
    def GetMissRateDefRatio(self): return self.attrTuple[13] # float
    def GetParryRateDefRatio(self): return self.attrTuple[14] # float
    def GetSuckHPPerDefRatio(self): return self.attrTuple[15] # float
    def GetFinalDamPerRatio(self): return self.attrTuple[16] # float
    def GetFinalDamPerDefRatio(self): return self.attrTuple[17] # float
    def GetPhyDamPerRatio(self): return self.attrTuple[18] # float
    def GetPhyDamPerDefRatio(self): return self.attrTuple[19] # float
    def GetMagDamPerRatio(self): return self.attrTuple[20] # float
    def GetMagDamPerDefRatio(self): return self.attrTuple[21] # float
    def GetNormalSkillPerRatio(self): return self.attrTuple[22] # float
    def GetNormalSkillPerDefRatio(self): return self.attrTuple[23] # float
    def GetAngerSkillPerRatio(self): return self.attrTuple[24] # float
    def GetAngerSkillPerDefRatio(self): return self.attrTuple[25] # float
    def GetSuperDamPerRatio(self): return self.attrTuple[26] # float
    def GetSuperDamPerDefRatio(self): return self.attrTuple[27] # float
    def GetCurePerRatio(self): return self.attrTuple[28] # float
    def GetCurePerDefRatio(self): return self.attrTuple[29] # float
    def GetShieldPerRatio(self): return self.attrTuple[30] # float
    def GetShieldPerDefRatio(self): return self.attrTuple[31] # float
    def GetDOTPerRatio(self): return self.attrTuple[32] # float
    def GetDOTPerDefRatio(self): return self.attrTuple[33] # float
    def GetWeiFinalDamPerRatio(self): return self.attrTuple[34] # float
    def GetWeiFinalDamPerDefRatio(self): return self.attrTuple[35] # float
    def GetShuFinalDamPerRatio(self): return self.attrTuple[36] # float
    def GetShuFinalDamPerDefRatio(self): return self.attrTuple[37] # float
    def GetWuFinalDamPerRatio(self): return self.attrTuple[38] # float
    def GetWuFinalDamPerDefRatio(self): return self.attrTuple[39] # float
    def GetQunFinalDamPerRatio(self): return self.attrTuple[40] # float
    def GetQunFinalDamPerDefRatio(self): return self.attrTuple[41] # float
    def GetPVPDamPerRatio(self): return self.attrTuple[42] # float
    def GetPVPDamPerDefRatio(self): return self.attrTuple[43] # float
    def GetAtkSpeedRatio(self): return self.attrTuple[4] # float
    def GetStunRateRatio(self): return self.attrTuple[5] # float
    def GetSuperHitRateRatio(self): return self.attrTuple[6] # float
    def GetComboRateRatio(self): return self.attrTuple[7] # float
    def GetMissRateRatio(self): return self.attrTuple[8] # float
    def GetParryRateRatio(self): return self.attrTuple[9] # float
    def GetSuckHPPerRatio(self): return self.attrTuple[10] # float
    def GetStunRateDefRatio(self): return self.attrTuple[11] # float
    def GetSuperHitRateDefRatio(self): return self.attrTuple[12] # float
    def GetComboRateDefRatio(self): return self.attrTuple[13] # float
    def GetMissRateDefRatio(self): return self.attrTuple[14] # float
    def GetParryRateDefRatio(self): return self.attrTuple[15] # float
    def GetSuckHPPerDefRatio(self): return self.attrTuple[16] # float
    def GetFinalDamPerRatio(self): return self.attrTuple[17] # float
    def GetFinalDamPerDefRatio(self): return self.attrTuple[18] # float
    def GetPhyDamPerRatio(self): return self.attrTuple[19] # float
    def GetPhyDamPerDefRatio(self): return self.attrTuple[20] # float
    def GetMagDamPerRatio(self): return self.attrTuple[21] # float
    def GetMagDamPerDefRatio(self): return self.attrTuple[22] # float
    def GetNormalSkillPerRatio(self): return self.attrTuple[23] # float
    def GetNormalSkillPerDefRatio(self): return self.attrTuple[24] # float
    def GetAngerSkillPerRatio(self): return self.attrTuple[25] # float
    def GetAngerSkillPerDefRatio(self): return self.attrTuple[26] # float
    def GetSuperDamPerRatio(self): return self.attrTuple[27] # float
    def GetSuperDamPerDefRatio(self): return self.attrTuple[28] # float
    def GetCurePerRatio(self): return self.attrTuple[29] # float
    def GetCurePerDefRatio(self): return self.attrTuple[30] # float
    def GetShieldPerRatio(self): return self.attrTuple[31] # float
    def GetShieldPerDefRatio(self): return self.attrTuple[32] # float
    def GetDOTPerRatio(self): return self.attrTuple[33] # float
    def GetDOTPerDefRatio(self): return self.attrTuple[34] # float
    def GetWeiFinalDamPerRatio(self): return self.attrTuple[35] # float
    def GetWeiFinalDamPerDefRatio(self): return self.attrTuple[36] # float
    def GetShuFinalDamPerRatio(self): return self.attrTuple[37] # float
    def GetShuFinalDamPerDefRatio(self): return self.attrTuple[38] # float
    def GetWuFinalDamPerRatio(self): return self.attrTuple[39] # float
    def GetWuFinalDamPerDefRatio(self): return self.attrTuple[40] # float
    def GetQunFinalDamPerRatio(self): return self.attrTuple[41] # float
    def GetQunFinalDamPerDefRatio(self): return self.attrTuple[42] # float
    def GetPVPDamPerRatio(self): return self.attrTuple[43] # float
    def GetPVPDamPerDefRatio(self): return self.attrTuple[44] # float
    def GetGuanchuanRatio(self): return self.attrTuple[45] # float
    def GetGuanchuanDefRatio(self): return self.attrTuple[46] # float
    def GetZhaojiaRatio(self): return self.attrTuple[47] # float
    def GetZhaojiaDefRatio(self): return self.attrTuple[48] # float
# 主线章节表
class IPY_MainChapter():
@@ -3063,6 +3131,59 @@
    def GetLegendAttrID(self): return self.attrTuple[5] # 传奇属性ID list
    def GetLegendAttrValue(self): return self.attrTuple[6] # 传奇属性值 list
# 感悟等级表
class IPY_MGGanwuLV():
    def __init__(self):
        self.attrTuple = None
        return
    def GetGanwuLV(self): return self.attrTuple[0] # 感悟等级 BYTE
    def GetNextNeedExp(self): return self.attrTuple[1] # 升到下一级所需经验 DWORD
    def GetAtkBase(self): return self.attrTuple[2] # 攻击基础值 DWORD
    def GetDefBase(self): return self.attrTuple[3] # 防御基础值 DWORD
    def GetHPBase(self): return self.attrTuple[4] # 生命基础值 DWORD
    def GetAtkSpeedBase(self): return self.attrTuple[5] # 先攻基础值 DWORD
    def GetBatAttrBaseDict(self): return self.attrTuple[6] # 其他战斗属性基础值字典,{属性ID:基础值, ...} dict
# 卦玉品质表
class IPY_MGGuayuQuality():
    def __init__(self):
        self.attrTuple = None
        return
    def GetItemColor(self): return self.attrTuple[0] # 品质 BYTE
    def GetAtkPlus(self): return self.attrTuple[1] # 攻击加成 float
    def GetDefPlus(self): return self.attrTuple[2] # 防御加成 float
    def GetHPPlus(self): return self.attrTuple[3] # 生命加成 float
    def GetAtkSpeedPlus(self): return self.attrTuple[4] # 先攻加成 float
    def GetAttrRange(self): return self.attrTuple[5] # 其他属性通用加成范围,下限|上限 list
    def GetAttrRangeDict(self): return self.attrTuple[6] # 其他指定属性加成范围字典,{指定属性ID:[范围下限, 上限], ...} dict
# 卦玉类型表
class IPY_MGGuayuType():
    def __init__(self):
        self.attrTuple = None
        return
    def GetItemType(self): return self.attrTuple[0] # 类型 BYTE
    def GetEquipPlace(self): return self.attrTuple[1] # 装备位 BYTE
    def GetBaseAttrProportion(self): return self.attrTuple[2] # 基础四维属性占比 float
    def GetFixedAttrID(self): return self.attrTuple[3] # 固定属性ID DWORD
    def GetAttrIDLib(self): return self.attrTuple[4] # 随机属性ID库,[属性ID, ...] list
# 灵应品质表
class IPY_MGLingyingQuality():
    def __init__(self):
        self.attrTuple = None
        return
    def GetLingying(self): return self.attrTuple[0] # 灵应段值 DWORD
    def GetItemColorWeightList(self): return self.attrTuple[1] # 品质权重列表 list
# 装备传奇属性条数表
class IPY_EquipLegendAttrCount():
    
@@ -3345,7 +3466,11 @@
    def GetSpecEffLayerMax(self): return self.attrTuple[8] # 特殊效果最大层数 BYTE
    def GetSpecAttrID(self): return self.attrTuple[9] # 特殊属性ID BYTE
    def GetSpecAttrValue(self): return self.attrTuple[10] # 特殊属性初始值 DWORD
    def GetSpecAttrPerStarAdd(self): return self.attrTuple[11] # 特殊属性每星成长 DWORD
    def GetSpecAttrPerStarAdd(self): return self.attrTuple[11] # 特殊属性每星成长 DWORD
    def GetPowerType(self): return self.attrTuple[12] # 特权效果类型 BYTE
    def GetPowerTypeValue(self): return self.attrTuple[13] # 特权类型值 DWORD
    def GetPowerValue(self): return self.attrTuple[14] # 特权初始值 DWORD
    def GetPowerPerStarAdd(self): return self.attrTuple[15] # 特权每星值成长 DWORD
# 古宝共鸣属性表
class IPY_GubaoResonanceAttr():
@@ -3378,8 +3503,9 @@
        
    def GetGubaoQuality(self): return self.attrTuple[0] # 古宝品质 BYTE
    def GetGubaoStar(self): return self.attrTuple[1] # 古宝星级 BYTE
    def GetStarUPNeedSelfCnt(self): return self.attrTuple[2] # 升到本星消耗本体碎片数量 BYTE
    def GetStarUPNeedItemList(self): return self.attrTuple[3] # 消耗其他物品列表 [[物品ID,个数], ...] list
    def GetQualityStarCond(self): return self.attrTuple[2] # 需同品质X个X星 list
    def GetStarUPNeedSelfCnt(self): return self.attrTuple[3] # 升到本星消耗本体碎片数量 BYTE
    def GetStarUPNeedItemList(self): return self.attrTuple[4] # 消耗其他物品列表 [[物品ID,个数], ...] list
# 古宝品质升级表
class IPY_GubaoLV():
@@ -5547,7 +5673,8 @@
    def GetLVUPNeedTime(self): return self.attrTuple[2] # 升级下一级所需所需秒 DWORD
    def GetEquipColorRateList(self): return self.attrTuple[3] # 小怪产出装备品质概率列表,[0品质万分率, 1品质万分率, ...] list
    def GetEquipColorRateList1(self): return self.attrTuple[4] # 精英产出装备品质概率列表,[0品质万分率, 1品质万分率, ...] list
    def GetEquipColorRateList2(self): return self.attrTuple[5] # boss产出装备品质概率列表,[0品质万分率, 1品质万分率, ...] list
    def GetEquipColorRateList2(self): return self.attrTuple[5] # boss产出装备品质概率列表,[0品质万分率, 1品质万分率, ...] list
    def GetLastSureOutNeed(self): return self.attrTuple[6] # 最后一档保底必出 DWORD
# 历练秘笈
class IPY_LLMJ():
@@ -5672,6 +5799,7 @@
        self.__LoadFileData("NPC", onlyCheck)
        self.__LoadFileData("NPCStronger", onlyCheck)
        self.__LoadFileData("Skill", onlyCheck)
        self.__LoadFileData("PresetUnlock", onlyCheck)
        self.__LoadFileData("Hero", onlyCheck)
        self.__LoadFileData("HeroTalent", onlyCheck)
        self.__LoadFileData("HeroBreak", onlyCheck)
@@ -5715,6 +5843,10 @@
        self.__LoadFileData("EquipColor", onlyCheck)
        self.__LoadFileData("EquipPlace", onlyCheck)
        self.__LoadFileData("AppointItem", onlyCheck)
        self.__LoadFileData("MGGanwuLV", onlyCheck)
        self.__LoadFileData("MGGuayuQuality", onlyCheck)
        self.__LoadFileData("MGGuayuType", onlyCheck)
        self.__LoadFileData("MGLingyingQuality", onlyCheck)
        self.__LoadFileData("EquipLegendAttrCount", onlyCheck)
        self.__LoadFileData("EquipLegendAttrType", onlyCheck)
        self.__LoadFileData("EquipLegendAttrLib", onlyCheck)
@@ -6154,6 +6286,13 @@
        self.CheckLoadData("Skill")
        return self.ipySkillCache[index]
    def GetPresetUnlockCount(self):
        self.CheckLoadData("PresetUnlock")
        return self.ipyPresetUnlockLen
    def GetPresetUnlockByIndex(self, index):
        self.CheckLoadData("PresetUnlock")
        return self.ipyPresetUnlockCache[index]
    def GetHeroCount(self):
        self.CheckLoadData("Hero")
        return self.ipyHeroLen
@@ -6455,6 +6594,34 @@
        self.CheckLoadData("AppointItem")
        return self.ipyAppointItemCache[index]
    def GetMGGanwuLVCount(self):
        self.CheckLoadData("MGGanwuLV")
        return self.ipyMGGanwuLVLen
    def GetMGGanwuLVByIndex(self, index):
        self.CheckLoadData("MGGanwuLV")
        return self.ipyMGGanwuLVCache[index]
    def GetMGGuayuQualityCount(self):
        self.CheckLoadData("MGGuayuQuality")
        return self.ipyMGGuayuQualityLen
    def GetMGGuayuQualityByIndex(self, index):
        self.CheckLoadData("MGGuayuQuality")
        return self.ipyMGGuayuQualityCache[index]
    def GetMGGuayuTypeCount(self):
        self.CheckLoadData("MGGuayuType")
        return self.ipyMGGuayuTypeLen
    def GetMGGuayuTypeByIndex(self, index):
        self.CheckLoadData("MGGuayuType")
        return self.ipyMGGuayuTypeCache[index]
    def GetMGLingyingQualityCount(self):
        self.CheckLoadData("MGLingyingQuality")
        return self.ipyMGLingyingQualityLen
    def GetMGLingyingQualityByIndex(self, index):
        self.CheckLoadData("MGLingyingQuality")
        return self.ipyMGLingyingQualityCache[index]
    def GetEquipLegendAttrCountCount(self):
        self.CheckLoadData("EquipLegendAttrCount")
        return self.ipyEquipLegendAttrCountLen