From 750ff5ee6204bb088713b0ce10d53d05f22679e0 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 16 一月 2026 19:32:27 +0800
Subject: [PATCH] 438 【方案】方案预设-服务端
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 546 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 461 insertions(+), 85 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 03bdf94..a73cf8e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/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":(
@@ -217,7 +224,7 @@
),
"HeroQuality":(
- ("DWORD", "Quality", 1),
+ ("BYTE", "Quality", 1),
("list", "InitTalentWeight", 0),
("BYTE", "InitStarUpper", 0),
("DWORD", "InitAddPer", 0),
@@ -230,22 +237,21 @@
),
"HeroQualityBreak":(
- ("DWORD", "Quality", 1),
+ ("BYTE", "Quality", 1),
("DWORD", "BreakLV", 1),
- ("WORD", "LVMax", 0),
("WORD", "UPLVNeed", 0),
("list", "UPCostItemList", 0),
),
"HeroQualityAwake":(
- ("DWORD", "Quality", 1),
+ ("BYTE", "Quality", 1),
("DWORD", "AwakeLV", 1),
("list", "UPCostItem", 0),
("DWORD", "RebirthCostMoney", 0),
),
"HeroQualityLV":(
- ("DWORD", "Quality", 1),
+ ("BYTE", "Quality", 1),
("DWORD", "HeroLV", 1),
("list", "UPCostItem", 0),
("list", "AttrIDList", 0),
@@ -255,6 +261,23 @@
"LineupRecommend":(
("DWORD", "RecommendID", 1),
("list", "HeroIDList", 0),
+ ),
+
+ "HeroFates":(
+ ("WORD", "FatesID", 1),
+ ("BYTE", "FatesQuality", 0),
+ ("list", "HeroIDList", 0),
+ ("list", "AwardItemList", 0),
+ ("list", "AttrIDList", 0),
+ ("list", "LVAttrValueList", 0),
+ ),
+
+ "HeroFatesQualityLV":(
+ ("BYTE", "FatesQuality", 1),
+ ("BYTE", "FatesLV", 1),
+ ("BYTE", "NeedStarTotal", 0),
+ ("BYTE", "NeedHeroCnt", 0),
+ ("BYTE", "NeedQuality", 0),
),
"PlayerAttr":(
@@ -267,6 +290,7 @@
("float", "AtkRatio", 0),
("float", "MaxHPRatio", 0),
("float", "DefRatio", 0),
+ ("float", "AtkSpeedRatio", 0),
("float", "StunRateRatio", 0),
("float", "SuperHitRateRatio", 0),
("float", "ComboRateRatio", 0),
@@ -307,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":(
@@ -341,6 +369,7 @@
("BYTE", "BossPosView", 0),
("list", "SkillIDExList", 0),
("BYTE", "SkillExCnt", 0),
+ ("WORD", "ReModelID", 0),
),
"Title":(
@@ -582,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),
+ ),
+
+ "MGGuayuQuality":(
+ ("BYTE", "ItemColor", 1),
+ ("float", "AtkPlus", 0),
+ ("float", "DefPlus", 0),
+ ("float", "HPPlus", 0),
+ ("float", "AtkSpeedPlus", 0),
+ ("BYTE", "AttrLibCnt", 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),
@@ -768,8 +830,11 @@
("BYTE", "SpecEffLayerMax", 0),
("BYTE", "SpecAttrID", 0),
("DWORD", "SpecAttrValue", 0),
- ("DWORD", "SpecAttrPerLVAdd", 0),
("DWORD", "SpecAttrPerStarAdd", 0),
+ ("BYTE", "PowerType", 0),
+ ("DWORD", "PowerTypeValue", 0),
+ ("DWORD", "PowerValue", 0),
+ ("DWORD", "PowerPerStarAdd", 0),
),
"GubaoResonanceAttr":(
@@ -787,6 +852,7 @@
"GubaoStar":(
("BYTE", "GubaoQuality", 1),
("BYTE", "GubaoStar", 0),
+ ("list", "QualityStarCond", 0),
("BYTE", "StarUPNeedSelfCnt", 0),
("list", "StarUPNeedItemList", 0),
),
@@ -795,6 +861,13 @@
("BYTE", "GubaoQuality", 1),
("BYTE", "LessEqualLV", 0),
("list", "LVUPNeedItemInfo", 0),
+ ),
+
+ "GubaoLVAttr":(
+ ("BYTE", "GubaoQuality", 1),
+ ("BYTE", "GubaoLV", 1),
+ ("list", "SpecAttrIDList", 0),
+ ("list", "SpecAttrValueList", 0),
),
"Beauty":(
@@ -857,6 +930,12 @@
("DWORD", "MaxHP", 0),
("DWORD", "Atk", 0),
("DWORD", "Def", 0),
+ ),
+
+ "LVReValue":(
+ ("WORD", "ModelID", 1),
+ ("WORD", "LV", 1),
+ ("BYTE", "ReHeroStar", 0),
("BYTE", "ReHeroBreakLV", 0),
("BYTE", "ReHeroAwakeLV", 0),
("DWORD", "ReAtk", 0),
@@ -939,6 +1018,29 @@
("DWORD", "MaxHP", 0),
("dict", "OtherAttrDict", 0),
("list", "RandWeightItemList", 0),
+ ),
+
+ "FBDJGLevel":(
+ ("WORD", "LayerNum", 1),
+ ("BYTE", "LevelNum", 1),
+ ("list", "PassAwardList", 0),
+ ("list", "AwardList", 0),
+ ("list", "LineupIDList", 0),
+ ("WORD", "NPCLV", 0),
+ ("float", "Difficulty", 0),
+ ),
+
+ "FBDJGQuick":(
+ ("WORD", "NeedLayer", 1),
+ ("list", "QuickAwardList", 0),
+ ),
+
+ "FBDJGEffect":(
+ ("DWORD", "EffID", 1),
+ ("BYTE", "EffQuality", 0),
+ ("BYTE", "AttrID", 0),
+ ("DWORD", "AttrValue", 0),
+ ("DWORD", "RandWeight", 0),
),
"ADAward":(
@@ -1248,9 +1350,13 @@
("BYTE", "LuckyGridNum", 0),
("dict", "GridNumMaxLimitInfo", 0),
("list", "NotifyGridNumList", 0),
- ("char", "NotifyKey", 0),
+ ("dict", "NotifyKeyDict", 0),
("BYTE", "AwardMoneyType", 0),
("WORD", "AwardMoneyValue", 0),
+ ("BYTE", "WishReset", 0),
+ ("dict", "WishLibSelect", 0),
+ ("dict", "WishLibPubFreeCnt", 0),
+ ("dict", "WishLibCard", 0),
),
"TreasureHouse":(
@@ -1268,10 +1374,13 @@
),
"TreasureItemLib":(
+ ("WORD", "ID", 0),
("WORD", "LibID", 1),
("DWORD", "ItemID", 0),
("DWORD", "ItemCount", 0),
("DWORD", "ItemWeight", 0),
+ ("BYTE", "IsWishItem", 0),
+ ("BYTE", "WishOutCnt", 0),
),
"TreasureCntAward":(
@@ -2154,6 +2263,7 @@
("list", "EquipColorRateList", 0),
("list", "EquipColorRateList1", 0),
("list", "EquipColorRateList2", 0),
+ ("DWORD", "LastSureOutNeed", 0),
),
"LLMJ":(
@@ -2336,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():
@@ -2387,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():
@@ -2448,7 +2570,7 @@
self.attrTuple = None
return
- def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
+ def GetQuality(self): return self.attrTuple[0] # 品质 BYTE
def GetInitTalentWeight(self): return self.attrTuple[1] # 初始天赋数权重 list
def GetInitStarUpper(self): return self.attrTuple[2] # 初始星级上限 BYTE
def GetInitAddPer(self): return self.attrTuple[3] # 卡牌初始加成万分率 DWORD
@@ -2466,11 +2588,10 @@
self.attrTuple = None
return
- def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
+ def GetQuality(self): return self.attrTuple[0] # 品质 BYTE
def GetBreakLV(self): return self.attrTuple[1] # 突破等级 DWORD
- def GetLVMax(self): return self.attrTuple[2] # 等级上限 WORD
- def GetUPLVNeed(self): return self.attrTuple[3] # 突破到下级需要等级 WORD
- def GetUPCostItemList(self): return self.attrTuple[4] # 突破到下级消耗道具 list
+ def GetUPLVNeed(self): return self.attrTuple[2] # 突破到下级需要等级 WORD
+ def GetUPCostItemList(self): return self.attrTuple[3] # 突破到下级消耗道具 list
# 武将品质觉醒表
class IPY_HeroQualityAwake():
@@ -2479,7 +2600,7 @@
self.attrTuple = None
return
- def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
+ def GetQuality(self): return self.attrTuple[0] # 品质 BYTE
def GetAwakeLV(self): return self.attrTuple[1] # 觉醒等级 DWORD
def GetUPCostItem(self): return self.attrTuple[2] # 觉醒到下级消耗道具 list
def GetRebirthCostMoney(self): return self.attrTuple[3] # 重生消耗货币 DWORD
@@ -2491,7 +2612,7 @@
self.attrTuple = None
return
- def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
+ def GetQuality(self): return self.attrTuple[0] # 品质 BYTE
def GetHeroLV(self): return self.attrTuple[1] # 武将等级 DWORD
def GetUPCostItem(self): return self.attrTuple[2] # 升级到下级消耗道具 list
def GetAttrIDList(self): return self.attrTuple[3] # 武将属性ID列表 list
@@ -2506,6 +2627,33 @@
def GetRecommendID(self): return self.attrTuple[0] # 推荐ID DWORD
def GetHeroIDList(self): return self.attrTuple[1] # 推荐武将ID列表 list
+
+# 武将宿缘表
+class IPY_HeroFates():
+
+ def __init__(self):
+ self.attrTuple = None
+ return
+
+ def GetFatesID(self): return self.attrTuple[0] # 宿缘ID WORD
+ def GetFatesQuality(self): return self.attrTuple[1] # 宿缘品质 BYTE
+ def GetHeroIDList(self): return self.attrTuple[2] # 武将ID组合列表 list
+ def GetAwardItemList(self): return self.attrTuple[3] # 激活奖励物品列表 list
+ def GetAttrIDList(self): return self.attrTuple[4] # 属性ID列表 list
+ def GetLVAttrValueList(self): return self.attrTuple[5] # 每级属性值列表 list
+
+# 武将宿缘品质等级表
+class IPY_HeroFatesQualityLV():
+
+ def __init__(self):
+ self.attrTuple = None
+ return
+
+ def GetFatesQuality(self): return self.attrTuple[0] # 宿缘品质 BYTE
+ def GetFatesLV(self): return self.attrTuple[1] # 宿缘等级 BYTE
+ def GetNeedStarTotal(self): return self.attrTuple[2] # 升到该级所需总星数 BYTE
+ def GetNeedHeroCnt(self): return self.attrTuple[3] # 所需品质武将数 BYTE
+ def GetNeedQuality(self): return self.attrTuple[4] # 所需武将品质 BYTE
# 属性条目表
class IPY_PlayerAttr():
@@ -2528,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():
@@ -2616,7 +2769,8 @@
def GetBossID(self): return self.attrTuple[7] # 本阵容的BossID,没有boss时为0 DWORD
def GetBossPosView(self): return self.attrTuple[8] # Boss通知站位 BYTE
def GetSkillIDExList(self): return self.attrTuple[9] # boss附加技能列表 list
- def GetSkillExCnt(self): return self.attrTuple[10] # 随机附加技能数,0为所有 BYTE
+ def GetSkillExCnt(self): return self.attrTuple[10] # 随机附加技能数,0为所有 BYTE
+ def GetReModelID(self): return self.attrTuple[11] # 等级参考值模版 WORD
# 称号表
class IPY_Title():
@@ -2977,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
+
+# 卦玉品质表
+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 GetAttrLibCnt(self): return self.attrTuple[5] # 库属性条数 BYTE
+ def GetAttrRange(self): return self.attrTuple[6] # 通用属性范围,下限|上限 list
+ def GetAttrRangeDict(self): return self.attrTuple[7] # 指定属性范围字典,{指定属性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():
@@ -3259,8 +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 GetSpecAttrPerLVAdd(self): return self.attrTuple[11] # 特殊属性每级成长 DWORD
- def GetSpecAttrPerStarAdd(self): return self.attrTuple[12] # 特殊属性每星成长 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():
@@ -3293,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():
@@ -3306,6 +3517,18 @@
def GetGubaoQuality(self): return self.attrTuple[0] # 古宝品质 BYTE
def GetLessEqualLV(self): return self.attrTuple[1] # 小于等于等级 BYTE
def GetLVUPNeedItemInfo(self): return self.attrTuple[2] # 升级所需物品 [[物品ID,个数], ...] list
+
+# 品质升级属性表
+class IPY_GubaoLVAttr():
+
+ def __init__(self):
+ self.attrTuple = None
+ return
+
+ def GetGubaoQuality(self): return self.attrTuple[0] # 古宝品质 BYTE
+ def GetGubaoLV(self): return self.attrTuple[1] # 古宝等级 BYTE
+ def GetSpecAttrIDList(self): return self.attrTuple[2] # 特殊属性ID列表 list
+ def GetSpecAttrValueList(self): return self.attrTuple[3] # 特殊总属性值列表 list
# 红颜表
class IPY_Beauty():
@@ -3397,24 +3620,35 @@
def GetExp(self): return self.attrTuple[1] # 升级所需经验 DWORD
def GetMaxHP(self): return self.attrTuple[2] # 生命 DWORD
def GetAtk(self): return self.attrTuple[3] # 攻击 DWORD
- def GetDef(self): return self.attrTuple[4] # 防御 DWORD
- def GetReHeroBreakLV(self): return self.attrTuple[5] # 参考突破等级 BYTE
- def GetReHeroAwakeLV(self): return self.attrTuple[6] # 参考觉醒等级 BYTE
- def GetReAtk(self): return self.attrTuple[7] # 参考攻击 DWORD
- def GetReDef(self): return self.attrTuple[8] # 防御 DWORD
- def GetReMaxHP(self): return self.attrTuple[9] # 生命 DWORD
- def GetReStunRate(self): return self.attrTuple[10] # DWORD
- def GetReSuperHitRate(self): return self.attrTuple[11] # DWORD
- def GetReComboRate(self): return self.attrTuple[12] # DWORD
- def GetReMissRate(self): return self.attrTuple[13] # DWORD
- def GetReParryRate(self): return self.attrTuple[14] # DWORD
- def GetReSuckHPPer(self): return self.attrTuple[15] # DWORD
- def GetReStunRateDef(self): return self.attrTuple[16] # DWORD
- def GetReSuperHitRateDef(self): return self.attrTuple[17] # DWORD
- def GetReComboRateDef(self): return self.attrTuple[18] # DWORD
- def GetReMissRateDef(self): return self.attrTuple[19] # DWORD
- def GetReParryRateDef(self): return self.attrTuple[20] # DWORD
- def GetReSuckHPPerDef(self): return self.attrTuple[21] # DWORD
+ def GetDef(self): return self.attrTuple[4] # 防御 DWORD
+
+# 等级参考值
+class IPY_LVReValue():
+
+ def __init__(self):
+ self.attrTuple = None
+ return
+
+ def GetModelID(self): return self.attrTuple[0] # 模版ID WORD
+ def GetLV(self): return self.attrTuple[1] # 玩家等级 WORD
+ def GetReHeroStar(self): return self.attrTuple[2] # 参考星级 BYTE
+ def GetReHeroBreakLV(self): return self.attrTuple[3] # 参考突破等级 BYTE
+ def GetReHeroAwakeLV(self): return self.attrTuple[4] # 参考觉醒等级 BYTE
+ def GetReAtk(self): return self.attrTuple[5] # 参考攻击 DWORD
+ def GetReDef(self): return self.attrTuple[6] # 防御 DWORD
+ def GetReMaxHP(self): return self.attrTuple[7] # 生命 DWORD
+ def GetReStunRate(self): return self.attrTuple[8] # DWORD
+ def GetReSuperHitRate(self): return self.attrTuple[9] # DWORD
+ def GetReComboRate(self): return self.attrTuple[10] # DWORD
+ def GetReMissRate(self): return self.attrTuple[11] # DWORD
+ def GetReParryRate(self): return self.attrTuple[12] # DWORD
+ def GetReSuckHPPer(self): return self.attrTuple[13] # DWORD
+ def GetReStunRateDef(self): return self.attrTuple[14] # DWORD
+ def GetReSuperHitRateDef(self): return self.attrTuple[15] # DWORD
+ def GetReComboRateDef(self): return self.attrTuple[16] # DWORD
+ def GetReMissRateDef(self): return self.attrTuple[17] # DWORD
+ def GetReParryRateDef(self): return self.attrTuple[18] # DWORD
+ def GetReSuckHPPerDef(self): return self.attrTuple[19] # DWORD
# 特殊地图玩家属性公式表
class IPY_SpecMapPlayerAttrFormat():
@@ -3515,6 +3749,44 @@
def GetMaxHP(self): return self.attrTuple[4] # DWORD
def GetOtherAttrDict(self): return self.attrTuple[5] # 其他属性 {attrID:attrValue, ...} dict
def GetRandWeightItemList(self): return self.attrTuple[6] # 宝箱随机物品权重列表,[[权重,物品ID,数量], ...] list
+
+# 定军阁关卡表
+class IPY_FBDJGLevel():
+
+ def __init__(self):
+ self.attrTuple = None
+ return
+
+ def GetLayerNum(self): return self.attrTuple[0] # 层数 WORD
+ def GetLevelNum(self): return self.attrTuple[1] # 关卡编号 BYTE
+ def GetPassAwardList(self): return self.attrTuple[2] # 过关奖励列表,[[物品ID,个数], ...] list
+ def GetAwardList(self): return self.attrTuple[3] # 挑战奖励,[[物品ID,个数], ...] list
+ def GetLineupIDList(self): return self.attrTuple[4] # 阵容ID列表,小队1阵容ID|小队2阵容ID|... list
+ def GetNPCLV(self): return self.attrTuple[5] # NPC等级 WORD
+ def GetDifficulty(self): return self.attrTuple[6] # 难度系数 float
+
+# 定军阁速战奖励表
+class IPY_FBDJGQuick():
+
+ def __init__(self):
+ self.attrTuple = None
+ return
+
+ def GetNeedLayer(self): return self.attrTuple[0] # 所需层数 WORD
+ def GetQuickAwardList(self): return self.attrTuple[1] # 速战奖励列表,[[物品ID,个数], ...] list
+
+# 定军阁效果表
+class IPY_FBDJGEffect():
+
+ def __init__(self):
+ self.attrTuple = None
+ return
+
+ def GetEffID(self): return self.attrTuple[0] # 效果ID DWORD
+ def GetEffQuality(self): return self.attrTuple[1] # 效果品质 BYTE
+ def GetAttrID(self): return self.attrTuple[2] # 属性ID BYTE
+ def GetAttrValue(self): return self.attrTuple[3] # 属性值 DWORD
+ def GetRandWeight(self): return self.attrTuple[4] # 随机权重 DWORD
# 广告奖励表
class IPY_ADAward():
@@ -3969,9 +4241,13 @@
def GetLuckyGridNum(self): return self.attrTuple[15] # 幸运格子编号 BYTE
def GetGridNumMaxLimitInfo(self): return self.attrTuple[16] # 格子最大产出次数限制,{"格子":最大可产出次数, ...} dict
def GetNotifyGridNumList(self): return self.attrTuple[17] # 需要额外广播的格子 list
- def GetNotifyKey(self): return self.attrTuple[18] # 广播key char
+ def GetNotifyKeyDict(self): return self.attrTuple[18] # 广播key dict
def GetAwardMoneyType(self): return self.attrTuple[19] # 额外奖励货币类型 BYTE
- def GetAwardMoneyValue(self): return self.attrTuple[20] # 单次奖励货币数 WORD
+ def GetAwardMoneyValue(self): return self.attrTuple[20] # 单次奖励货币数 WORD
+ def GetWishReset(self): return self.attrTuple[21] # 心愿重置规则 BYTE
+ def GetWishLibSelect(self): return self.attrTuple[22] # 心愿库选择数 dict
+ def GetWishLibPubFreeCnt(self): return self.attrTuple[23] # 心愿库公共免费次数 dict
+ def GetWishLibCard(self): return self.attrTuple[24] # 心愿库心愿卡 dict
# 寻宝产出库表
class IPY_TreasureHouse():
@@ -3999,10 +4275,13 @@
self.attrTuple = None
return
- def GetLibID(self): return self.attrTuple[0] # 库ID WORD
- def GetItemID(self): return self.attrTuple[1] # 物品ID DWORD
- def GetItemCount(self): return self.attrTuple[2] # 物品个数 DWORD
- def GetItemWeight(self): return self.attrTuple[3] # 物品权重 DWORD
+ def GetID(self): return self.attrTuple[0] # ID WORD
+ def GetLibID(self): return self.attrTuple[1] # 库ID WORD
+ def GetItemID(self): return self.attrTuple[2] # 物品ID DWORD
+ def GetItemCount(self): return self.attrTuple[3] # 物品个数 DWORD
+ def GetItemWeight(self): return self.attrTuple[4] # 物品权重 DWORD
+ def GetIsWishItem(self): return self.attrTuple[5] # 心愿可选 BYTE
+ def GetWishOutCnt(self): return self.attrTuple[6] # 心愿独立产出次数 BYTE
# 寻宝累计次数奖励表
class IPY_TreasureCntAward():
@@ -5394,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():
@@ -5519,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)
@@ -5531,6 +5812,8 @@
self.__LoadFileData("HeroQualityAwake", onlyCheck)
self.__LoadFileData("HeroQualityLV", onlyCheck)
self.__LoadFileData("LineupRecommend", onlyCheck)
+ self.__LoadFileData("HeroFates", onlyCheck)
+ self.__LoadFileData("HeroFatesQualityLV", onlyCheck)
self.__LoadFileData("PlayerAttr", onlyCheck)
self.__LoadFileData("FightPowerRatio", onlyCheck)
self.__LoadFileData("MainChapter", onlyCheck)
@@ -5560,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)
@@ -5583,12 +5870,14 @@
self.__LoadFileData("GubaoResonance", onlyCheck)
self.__LoadFileData("GubaoStar", onlyCheck)
self.__LoadFileData("GubaoLV", onlyCheck)
+ self.__LoadFileData("GubaoLVAttr", onlyCheck)
self.__LoadFileData("Beauty", onlyCheck)
self.__LoadFileData("BeautyQualityLV", onlyCheck)
self.__LoadFileData("BeautySkin", onlyCheck)
self.__LoadFileData("TravelEvent", onlyCheck)
self.__LoadFileData("TravelScenery", onlyCheck)
self.__LoadFileData("PlayerLV", onlyCheck)
+ self.__LoadFileData("LVReValue", onlyCheck)
self.__LoadFileData("SpecMapPlayerAttrFormat", onlyCheck)
self.__LoadFileData("GMAttr", onlyCheck)
self.__LoadFileData("RuneTower", onlyCheck)
@@ -5596,6 +5885,9 @@
self.__LoadFileData("FBFunc", onlyCheck)
self.__LoadFileData("FBLine", onlyCheck)
self.__LoadFileData("Tianzi", onlyCheck)
+ self.__LoadFileData("FBDJGLevel", onlyCheck)
+ self.__LoadFileData("FBDJGQuick", onlyCheck)
+ self.__LoadFileData("FBDJGEffect", onlyCheck)
self.__LoadFileData("ADAward", onlyCheck)
self.__LoadFileData("Success", onlyCheck)
self.__LoadFileData("TongTianLV", onlyCheck)
@@ -5994,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
@@ -6077,6 +6376,20 @@
def GetLineupRecommendByIndex(self, index):
self.CheckLoadData("LineupRecommend")
return self.ipyLineupRecommendCache[index]
+
+ def GetHeroFatesCount(self):
+ self.CheckLoadData("HeroFates")
+ return self.ipyHeroFatesLen
+ def GetHeroFatesByIndex(self, index):
+ self.CheckLoadData("HeroFates")
+ return self.ipyHeroFatesCache[index]
+
+ def GetHeroFatesQualityLVCount(self):
+ self.CheckLoadData("HeroFatesQualityLV")
+ return self.ipyHeroFatesQualityLVLen
+ def GetHeroFatesQualityLVByIndex(self, index):
+ self.CheckLoadData("HeroFatesQualityLV")
+ return self.ipyHeroFatesQualityLVCache[index]
def GetPlayerAttrCount(self):
self.CheckLoadData("PlayerAttr")
@@ -6281,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
@@ -6442,6 +6783,13 @@
self.CheckLoadData("GubaoLV")
return self.ipyGubaoLVCache[index]
+ def GetGubaoLVAttrCount(self):
+ self.CheckLoadData("GubaoLVAttr")
+ return self.ipyGubaoLVAttrLen
+ def GetGubaoLVAttrByIndex(self, index):
+ self.CheckLoadData("GubaoLVAttr")
+ return self.ipyGubaoLVAttrCache[index]
+
def GetBeautyCount(self):
self.CheckLoadData("Beauty")
return self.ipyBeautyLen
@@ -6483,6 +6831,13 @@
def GetPlayerLVByIndex(self, index):
self.CheckLoadData("PlayerLV")
return self.ipyPlayerLVCache[index]
+
+ def GetLVReValueCount(self):
+ self.CheckLoadData("LVReValue")
+ return self.ipyLVReValueLen
+ def GetLVReValueByIndex(self, index):
+ self.CheckLoadData("LVReValue")
+ return self.ipyLVReValueCache[index]
def GetSpecMapPlayerAttrFormatCount(self):
self.CheckLoadData("SpecMapPlayerAttrFormat")
@@ -6533,6 +6888,27 @@
self.CheckLoadData("Tianzi")
return self.ipyTianziCache[index]
+ def GetFBDJGLevelCount(self):
+ self.CheckLoadData("FBDJGLevel")
+ return self.ipyFBDJGLevelLen
+ def GetFBDJGLevelByIndex(self, index):
+ self.CheckLoadData("FBDJGLevel")
+ return self.ipyFBDJGLevelCache[index]
+
+ def GetFBDJGQuickCount(self):
+ self.CheckLoadData("FBDJGQuick")
+ return self.ipyFBDJGQuickLen
+ def GetFBDJGQuickByIndex(self, index):
+ self.CheckLoadData("FBDJGQuick")
+ return self.ipyFBDJGQuickCache[index]
+
+ def GetFBDJGEffectCount(self):
+ self.CheckLoadData("FBDJGEffect")
+ return self.ipyFBDJGEffectLen
+ def GetFBDJGEffectByIndex(self, index):
+ self.CheckLoadData("FBDJGEffect")
+ return self.ipyFBDJGEffectCache[index]
+
def GetADAwardCount(self):
self.CheckLoadData("ADAward")
return self.ipyADAwardLen
--
Gitblit v1.8.0