From fc3f5ce2d3362ca59a04c1b1aba43f8cfbcf79b1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 09 一月 2026 10:34:11 +0800
Subject: [PATCH] 271 【内政】古宝系统-服务端(古宝升星增加验证同品质x个x星条件;修复古宝月卡特权领奖会越领越多bug;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py |  144 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 137 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index ab8a339..707ea02 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -323,6 +323,10 @@
                         ("float", "QunFinalDamPerDefRatio", 0),
                         ("float", "PVPDamPerRatio", 0),
                         ("float", "PVPDamPerDefRatio", 0),
+                        ("float", "GuanchuanRatio", 0),
+                        ("float", "GuanchuanDefRatio", 0),
+                        ("float", "ZhaojiaRatio", 0),
+                        ("float", "ZhaojiaDefRatio", 0),
                         ),
 
                 "MainChapter":(
@@ -785,8 +789,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":(
@@ -804,6 +811,7 @@
                 "GubaoStar":(
                         ("BYTE", "GubaoQuality", 1),
                         ("BYTE", "GubaoStar", 0),
+                        ("list", "QualityStarCond", 0),
                         ("BYTE", "StarUPNeedSelfCnt", 0),
                         ("list", "StarUPNeedItemList", 0),
                         ),
@@ -812,6 +820,13 @@
                         ("BYTE", "GubaoQuality", 1),
                         ("BYTE", "LessEqualLV", 0),
                         ("list", "LVUPNeedItemInfo", 0),
+                        ),
+
+                "GubaoLVAttr":(
+                        ("BYTE", "GubaoQuality", 1),
+                        ("BYTE", "GubaoLV", 1),
+                        ("list", "SpecAttrIDList", 0),
+                        ("list", "SpecAttrValueList", 0),
                         ),
 
                 "Beauty":(
@@ -962,6 +977,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":(
@@ -2184,6 +2222,7 @@
                         ("list", "EquipColorRateList", 0),
                         ("list", "EquipColorRateList1", 0),
                         ("list", "EquipColorRateList2", 0),
+                        ("DWORD", "LastSureOutNeed", 0),
                         ),
 
                 "LLMJ":(
@@ -2623,7 +2662,11 @@
     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 GetPVPDamPerDefRatio(self): return self.attrTuple[43] # float
+    def GetGuanchuanRatio(self): return self.attrTuple[44] # float
+    def GetGuanchuanDefRatio(self): return self.attrTuple[45] # float
+    def GetZhaojiaRatio(self): return self.attrTuple[46] # float
+    def GetZhaojiaDefRatio(self): return self.attrTuple[47] # float
 
 # 主线章节表
 class IPY_MainChapter():
@@ -3316,8 +3359,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():
@@ -3350,8 +3396,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():
@@ -3363,6 +3410,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():
@@ -3583,6 +3642,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():
@@ -5469,7 +5566,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():
@@ -5660,6 +5758,7 @@
         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)
@@ -5674,6 +5773,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)
@@ -6534,6 +6636,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
@@ -6632,6 +6741,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