From 8b48c5f51f276546228ea44bc6e870a73e46b845 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 06 一月 2026 14:52:12 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(6011效果支持验证主技能目标;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py |  182 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 154 insertions(+), 28 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index cbd6e77..9f0122e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -270,6 +270,7 @@
                         ("BYTE", "FatesLV", 1),
                         ("BYTE", "NeedStarTotal", 0),
                         ("BYTE", "NeedHeroCnt", 0),
+                        ("BYTE", "NeedQuality", 0),
                         ),
 
                 "PlayerAttr":(
@@ -356,6 +357,7 @@
                         ("BYTE", "BossPosView", 0),
                         ("list", "SkillIDExList", 0),
                         ("BYTE", "SkillExCnt", 0),
+                        ("WORD", "ReModelID", 0),
                         ),
 
                 "Title":(
@@ -872,6 +874,11 @@
                         ("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),
@@ -955,6 +962,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":(
@@ -1264,9 +1294,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":(
@@ -1284,10 +1318,13 @@
                         ),
 
                 "TreasureItemLib":(
+                        ("WORD", "ID", 0),
                         ("WORD", "LibID", 1),
                         ("DWORD", "ItemID", 0),
                         ("DWORD", "ItemCount", 0),
                         ("DWORD", "ItemWeight", 0),
+                        ("BYTE", "IsWishItem", 0),
+                        ("BYTE", "WishOutCnt", 0),
                         ),
 
                 "TreasureCntAward":(
@@ -2546,7 +2583,8 @@
     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 GetNeedHeroCnt(self): return self.attrTuple[3] #  所需品质武将数 BYTE
+    def GetNeedQuality(self): return self.attrTuple[4] #  所需武将品质 BYTE
 
 # 属性条目表
 class IPY_PlayerAttr():
@@ -2657,7 +2695,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():
@@ -3438,25 +3477,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 GetReHeroStar(self): return self.attrTuple[5] # 参考星级 BYTE
-    def GetReHeroBreakLV(self): return self.attrTuple[6] # 参考突破等级 BYTE
-    def GetReHeroAwakeLV(self): return self.attrTuple[7] # 参考觉醒等级 BYTE
-    def GetReAtk(self): return self.attrTuple[8] # 参考攻击 DWORD
-    def GetReDef(self): return self.attrTuple[9] # 防御 DWORD
-    def GetReMaxHP(self): return self.attrTuple[10] # 生命 DWORD
-    def GetReStunRate(self): return self.attrTuple[11] # DWORD
-    def GetReSuperHitRate(self): return self.attrTuple[12] # DWORD
-    def GetReComboRate(self): return self.attrTuple[13] # DWORD
-    def GetReMissRate(self): return self.attrTuple[14] # DWORD
-    def GetReParryRate(self): return self.attrTuple[15] # DWORD
-    def GetReSuckHPPer(self): return self.attrTuple[16] # DWORD
-    def GetReStunRateDef(self): return self.attrTuple[17] # DWORD
-    def GetReSuperHitRateDef(self): return self.attrTuple[18] # DWORD
-    def GetReComboRateDef(self): return self.attrTuple[19] # DWORD
-    def GetReMissRateDef(self): return self.attrTuple[20] # DWORD
-    def GetReParryRateDef(self): return self.attrTuple[21] # DWORD
-    def GetReSuckHPPerDef(self): return self.attrTuple[22] # 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():
@@ -3557,6 +3606,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():
@@ -4011,9 +4098,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():
@@ -4041,10 +4132,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():
@@ -5633,6 +5727,7 @@
         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)
@@ -5640,6 +5735,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)
@@ -6542,6 +6640,13 @@
         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")
         return self.ipySpecMapPlayerAttrFormatLen
@@ -6591,6 +6696,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