From 11c9a3b5846401523e4dafc17f2a074a712730da Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 11 三月 2026 18:27:10 +0800
Subject: [PATCH] 526 【挑战】PVP群英榜-后端(本服群英榜;优化机器人表支持按功能加载不同的机器人;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py |   87 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 69 insertions(+), 18 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 8257d1d..8bab621 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -216,12 +216,16 @@
                         ("list", "AttrValueList", 0),
                         ),
 
-                "HeroSkin":(
+                "HeroSkinAttr":(
                         ("DWORD", "SkinID", 1),
+                        ("DWORD", "NeedItemID", 0),
+                        ("BYTE", "StarMax", 0),
                         ("list", "WearAttrIDList", 0),
                         ("list", "WearAttrValueList", 0),
-                        ("list", "AllBatAttrIDList", 0),
-                        ("list", "AllBatAttrValueList", 0),
+                        ("list", "WearAttrPerStarAddList", 0),
+                        ("list", "RoleAttrIDList", 0),
+                        ("list", "RoleAttrValueList", 0),
+                        ("list", "RoleAttrPerStarAddList", 0),
                         ),
 
                 "HeroQuality":(
@@ -1213,7 +1217,9 @@
                         ("list", "GridItemRateList2", 0),
                         ("dict", "GridItemRateList3", 0),
                         ("list", "GridItemRateList4", 0),
+                        ("dict", "AtLeastCntLimitInfo", 0),
                         ("dict", "LuckyItemRateInfo", 0),
+                        ("dict", "LuckyItemRateInfoEx", 0),
                         ),
 
                 "TreasureItemLib":(
@@ -1607,6 +1613,15 @@
                         ("dict", "Attr", 0),
                         ),
 
+                "QunyingCross":(
+                        ("char", "AppID", 1),
+                        ("WORD", "ZoneID", 1),
+                        ("DWORD", "CrossServerID", 0),
+                        ("list", "ServerIDList", 0),
+                        ("BYTE", "SplitServerCnt", 0),
+                        ("BYTE", "MatchServerCnt", 0),
+                        ),
+
                 "FamilyCross":(
                         ("char", "AppID", 1),
                         ("WORD", "ZoneID", 1),
@@ -1743,6 +1758,10 @@
                 "Robot":(
                         ("DWORD", "ID", 1),
                         ("char", "RobotName", 0),
+                        ("BYTE", "RealmLV", 0),
+                        ("DWORD", "TempNum", 0),
+                        ("DWORD", "TempValue1", 0),
+                        ("DWORD", "TempValue2", 0),
                         ("char", "ViewCache", 0),
                         ),
                 }
@@ -1994,18 +2013,22 @@
     def GetAttrIDList(self): return self.attrTuple[2] #  属性ID列表 list
     def GetAttrValueList(self): return self.attrTuple[3] #  属性值列表 list
 
-# 皮肤表
-class IPY_HeroSkin():
+# 皮肤时装属性表
+class IPY_HeroSkinAttr():
     
     def __init__(self):
         self.attrTuple = None
         return
         
     def GetSkinID(self): return self.attrTuple[0] # 皮肤NPCID DWORD
-    def GetWearAttrIDList(self): return self.attrTuple[1] #  穿戴属性ID列表 list
-    def GetWearAttrValueList(self): return self.attrTuple[2] #  穿戴属性值列表 list
-    def GetAllBatAttrIDList(self): return self.attrTuple[3] #  全体上阵属性ID列表 list
-    def GetAllBatAttrValueList(self): return self.attrTuple[4] #  全体上阵属性值列表 list
+    def GetNeedItemID(self): return self.attrTuple[1] # 所需道具 DWORD
+    def GetStarMax(self): return self.attrTuple[2] # 最高星级 BYTE
+    def GetWearAttrIDList(self): return self.attrTuple[3] #  穿戴属性ID列表 list
+    def GetWearAttrValueList(self): return self.attrTuple[4] #  穿戴属性值列表 list
+    def GetWearAttrPerStarAddList(self): return self.attrTuple[5] # 穿戴每星加成值列表 list
+    def GetRoleAttrIDList(self): return self.attrTuple[6] #  主公属性ID列表 list
+    def GetRoleAttrValueList(self): return self.attrTuple[7] #  主公属性初始值列表 list
+    def GetRoleAttrPerStarAddList(self): return self.attrTuple[8] # 主公每星加成值列表 list
 
 # 武将品质表
 class IPY_HeroQuality():
@@ -3467,7 +3490,9 @@
     def GetGridItemRateList2(self): return self.attrTuple[7] # 每满x次保底产出格子编号饼图 [[概率, 格子编号], ...] list
     def GetGridItemRateList3(self): return self.attrTuple[8] # 第x次必出产出格子编号饼图 {次数:[[概率, 格子编号], ...], ...} dict
     def GetGridItemRateList4(self): return self.attrTuple[9] # 第x次x抽必出 list
-    def GetLuckyItemRateInfo(self): return self.attrTuple[10] # 幸运产出概率饼图 {"幸运值":[[概率, 格子编号], ...], ...} dict
+    def GetAtLeastCntLimitInfo(self): return self.attrTuple[10] # 最小次数才能产出限制 {格子:至少所需次数才可产出, ...} dict
+    def GetLuckyItemRateInfo(self): return self.attrTuple[11] # 幸运产出概率饼图 {"幸运值":[[概率, 格子编号], ...], ...} dict
+    def GetLuckyItemRateInfoEx(self): return self.attrTuple[12] # 非永久卡玩家幸运产出概率饼图 {"幸运值":[[概率, 格子编号], ...], ...} dict
 
 # 寻宝物品库
 class IPY_TreasureItemLib():
@@ -4075,6 +4100,20 @@
     def GetCostItem(self): return self.attrTuple[3] # 消耗材料 dict
     def GetAttr(self): return self.attrTuple[4] # 属性 dict
 
+# 群英榜分区表
+class IPY_QunyingCross():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetAppID(self): return self.attrTuple[0] # AppID char
+    def GetZoneID(self): return self.attrTuple[1] # 分区ID WORD
+    def GetCrossServerID(self): return self.attrTuple[2] # 跨服服务器ID DWORD
+    def GetServerIDList(self): return self.attrTuple[3] # 互通服务器ID列表 list
+    def GetSplitServerCnt(self): return self.attrTuple[4] # 按X个相邻服分割 BYTE
+    def GetMatchServerCnt(self): return self.attrTuple[5] # 分割区服内X个服随机匹配一组 BYTE
+
 # 跨服公会表
 class IPY_FamilyCross():
     
@@ -4307,7 +4346,11 @@
         
     def GetID(self): return self.attrTuple[0] # 机器人ID,同玩家ID DWORD
     def GetRobotName(self): return self.attrTuple[1] # char
-    def GetViewCache(self): return self.attrTuple[2] # 机器人缓存 char
+    def GetRealmLV(self): return self.attrTuple[2] # 指定官职 BYTE
+    def GetTempNum(self): return self.attrTuple[3] # 功能模版 DWORD
+    def GetTempValue1(self): return self.attrTuple[4] # 功能值1 DWORD
+    def GetTempValue2(self): return self.attrTuple[5] # 功能值2 DWORD
+    def GetViewCache(self): return self.attrTuple[6] # 机器人缓存 char
 
 
 def Log(msg, playerID=0, par=0):
@@ -4377,7 +4420,7 @@
         self.__LoadFileData("HeroAwake", onlyCheck)
         self.__LoadFileData("HeroFetter", onlyCheck)
         self.__LoadFileData("HeroLineupHalo", onlyCheck)
-        self.__LoadFileData("HeroSkin", onlyCheck)
+        self.__LoadFileData("HeroSkinAttr", onlyCheck)
         self.__LoadFileData("HeroQuality", onlyCheck)
         self.__LoadFileData("HeroQualityBreak", onlyCheck)
         self.__LoadFileData("HeroQualityAwake", onlyCheck)
@@ -4515,6 +4558,7 @@
         self.__LoadFileData("EquipShenEvolve", onlyCheck)
         self.__LoadFileData("EquipStarUp", onlyCheck)
         self.__LoadFileData("EquipPlusEvolve", onlyCheck)
+        self.__LoadFileData("QunyingCross", onlyCheck)
         self.__LoadFileData("FamilyCross", onlyCheck)
         self.__LoadFileData("Family", onlyCheck)
         self.__LoadFileData("FamilyEmblem", onlyCheck)
@@ -4843,12 +4887,12 @@
         self.CheckLoadData("HeroLineupHalo")
         return self.ipyHeroLineupHaloCache[index]
 
-    def GetHeroSkinCount(self):
-        self.CheckLoadData("HeroSkin")
-        return self.ipyHeroSkinLen
-    def GetHeroSkinByIndex(self, index):
-        self.CheckLoadData("HeroSkin")
-        return self.ipyHeroSkinCache[index]
+    def GetHeroSkinAttrCount(self):
+        self.CheckLoadData("HeroSkinAttr")
+        return self.ipyHeroSkinAttrLen
+    def GetHeroSkinAttrByIndex(self, index):
+        self.CheckLoadData("HeroSkinAttr")
+        return self.ipyHeroSkinAttrCache[index]
 
     def GetHeroQualityCount(self):
         self.CheckLoadData("HeroQuality")
@@ -5809,6 +5853,13 @@
         self.CheckLoadData("EquipPlusEvolve")
         return self.ipyEquipPlusEvolveCache[index]
 
+    def GetQunyingCrossCount(self):
+        self.CheckLoadData("QunyingCross")
+        return self.ipyQunyingCrossLen
+    def GetQunyingCrossByIndex(self, index):
+        self.CheckLoadData("QunyingCross")
+        return self.ipyQunyingCrossCache[index]
+
     def GetFamilyCrossCount(self):
         self.CheckLoadData("FamilyCross")
         return self.ipyFamilyCrossLen

--
Gitblit v1.8.0