From f198885f31c9c7eb19eb28adce562e39e64d581c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 18 七月 2025 16:23:11 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(属性计算、战斗力计算;新角色初始给默认装备、默认阵容武将;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py |  114 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 59 insertions(+), 55 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 29411cc..e39ca0d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -68,6 +68,7 @@
                         ("WORD", "DefInheritPer", 0),
                         ("WORD", "HPInheritPer", 0),
                         ("dict", "BatAttrDict", 0),
+                        ("list", "FetterIDList", 0),
                         ),
 
                 "HeroTalent":(
@@ -100,6 +101,13 @@
                 "HeroFetter":(
                         ("WORD", "FetterID", 1),
                         ("list", "HeroIDList", 0),
+                        ("list", "AttrIDList", 0),
+                        ("list", "AttrValueList", 0),
+                        ),
+
+                "HeroLineupHalo":(
+                        ("WORD", "Country", 1),
+                        ("BYTE", "NeedHeroCount", 0),
                         ("list", "AttrIDList", 0),
                         ("list", "AttrValueList", 0),
                         ),
@@ -143,6 +151,11 @@
                         ("DWORD", "Quality", 1),
                         ("DWORD", "HeroLV", 1),
                         ("list", "UPCostItem", 0),
+                        ),
+
+                "PlayerAttr":(
+                        ("DWORD", "AttrID", 1),
+                        ("char", "Parameter", 0),
                         ),
 
                 "MainChapter":(
@@ -697,33 +710,9 @@
                 "PlayerLV":(
                         ("WORD", "LV", 1),
                         ("DWORD", "Exp", 0),
-                        ("BYTE", "TalentPoint", 0),
-                        ("DWORD", "ReExp", 0),
-                        ("DWORD", "ReMaxHP", 0),
-                        ("DWORD", "ReAtk", 0),
-                        ("DWORD", "ReDef", 0),
-                        ("DWORD", "ReHit", 0),
-                        ("DWORD", "ReMiss", 0),
-                        ("DWORD", "ReAtkSpeed", 0),
-                        ("DWORD", "ReSkillAtkRate", 0),
-                        ("DWORD", "ReDamagePer", 0),
-                        ("DWORD", "ReDamReduce", 0),
-                        ("DWORD", "ReIgnoreDefRate", 0),
-                        ("DWORD", "ReLuckyHitRate", 0),
-                        ("DWORD", "ReLuckyHit", 0),
-                        ("DWORD", "ReBleedDamage", 0),
-                        ("DWORD", "ReIceAtk", 0),
-                        ("DWORD", "ReIceDef", 0),
-                        ("DWORD", "RePetAtk", 0),
-                        ("DWORD", "RePetSkillAtkRate", 0),
-                        ("DWORD", "RePetDamPer", 0),
-                        ("DWORD", "ReFinalHurt", 0),
-                        ("DWORD", "ReFinalHurtReduce", 0),
-                        ("DWORD", "RePotionReply", 0),
-                        ("DWORD", "RePotionCD", 0),
-                        ("DWORD", "AttackEff", 0),
-                        ("DWORD", "ReFightPower", 0),
-                        ("DWORD", "IceLodeFightPower", 0),
+                        ("DWORD", "MaxHP", 0),
+                        ("DWORD", "Atk", 0),
+                        ("DWORD", "Def", 0),
                         ),
 
                 "SpecMapPlayerAttrFormat":(
@@ -2868,7 +2857,8 @@
     def GetAtkInheritPer(self): return self.attrTuple[7] # 攻击继承 WORD
     def GetDefInheritPer(self): return self.attrTuple[8] # 防御继承 WORD
     def GetHPInheritPer(self): return self.attrTuple[9] # 生命继承 WORD
-    def GetBatAttrDict(self): return self.attrTuple[10] # 其他战斗属性字典 {"属性ID":值, ...} dict
+    def GetBatAttrDict(self): return self.attrTuple[10] # 其他战斗属性字典 {"属性ID":值, ...} dict
+    def GetFetterIDList(self): return self.attrTuple[11] # 羁绊ID列表 list
 
 # 武将星级天赋表
 class IPY_HeroTalent():
@@ -2921,6 +2911,18 @@
         
     def GetFetterID(self): return self.attrTuple[0] # 羁绊ID WORD
     def GetHeroIDList(self): return self.attrTuple[1] #  武将ID组合列表 list
+    def GetAttrIDList(self): return self.attrTuple[2] #  属性ID列表 list
+    def GetAttrValueList(self): return self.attrTuple[3] #  属性值列表 list
+
+# 阵容光环表
+class IPY_HeroLineupHalo():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetCountry(self): return self.attrTuple[0] # 国家 WORD
+    def GetNeedHeroCount(self): return self.attrTuple[1] #  所需武将数 BYTE
     def GetAttrIDList(self): return self.attrTuple[2] #  属性ID列表 list
     def GetAttrValueList(self): return self.attrTuple[3] #  属性值列表 list
 
@@ -2989,6 +2991,16 @@
     def GetQuality(self): return self.attrTuple[0] # 品质 DWORD
     def GetHeroLV(self): return self.attrTuple[1] # 武将等级 DWORD
     def GetUPCostItem(self): return self.attrTuple[2] #  升级到下级消耗道具 list
+
+# 属性条目表
+class IPY_PlayerAttr():
+    
+    def __init__(self):
+        self.attrTuple = None
+        return
+        
+    def GetAttrID(self): return self.attrTuple[0] # 属性ID DWORD
+    def GetParameter(self): return self.attrTuple[1] # 属性名、参数名 char
 
 # 主线章节表
 class IPY_MainChapter():
@@ -3848,33 +3860,9 @@
         
     def GetLV(self): return self.attrTuple[0] # 玩家等级 WORD
     def GetExp(self): return self.attrTuple[1] # 升级所需经验 DWORD
-    def GetTalentPoint(self): return self.attrTuple[2] # 等级获得的天赋点 BYTE
-    def GetReExp(self): return self.attrTuple[3] # 等级经验效率(second) DWORD
-    def GetReMaxHP(self): return self.attrTuple[4] # 生命 DWORD
-    def GetReAtk(self): return self.attrTuple[5] # 攻击 DWORD
-    def GetReDef(self): return self.attrTuple[6] # 防御 DWORD
-    def GetReHit(self): return self.attrTuple[7] # 命中 DWORD
-    def GetReMiss(self): return self.attrTuple[8] # 闪避 DWORD
-    def GetReAtkSpeed(self): return self.attrTuple[9] # 攻速 DWORD
-    def GetReSkillAtkRate(self): return self.attrTuple[10] # 技能伤害比例 DWORD
-    def GetReDamagePer(self): return self.attrTuple[11] # 增加伤害 DWORD
-    def GetReDamReduce(self): return self.attrTuple[12] # 减少伤害 DWORD
-    def GetReIgnoreDefRate(self): return self.attrTuple[13] # 无视防御比例 DWORD
-    def GetReLuckyHitRate(self): return self.attrTuple[14] # 会心一击率 DWORD
-    def GetReLuckyHit(self): return self.attrTuple[15] # 会心一击伤害 DWORD
-    def GetReBleedDamage(self): return self.attrTuple[16] # 流血伤害增加 DWORD
-    def GetReIceAtk(self): return self.attrTuple[17] # 真实伤害 DWORD
-    def GetReIceDef(self): return self.attrTuple[18] # 真实抵御 DWORD
-    def GetRePetAtk(self): return self.attrTuple[19] # 灵宠攻击 DWORD
-    def GetRePetSkillAtkRate(self): return self.attrTuple[20] # 灵宠技能 DWORD
-    def GetRePetDamPer(self): return self.attrTuple[21] # 灵宠伤害增加 DWORD
-    def GetReFinalHurt(self): return self.attrTuple[22] # 固定伤害增加 DWORD
-    def GetReFinalHurtReduce(self): return self.attrTuple[23] # 固定伤害减少 DWORD
-    def GetRePotionReply(self): return self.attrTuple[24] # 血瓶恢复量 DWORD
-    def GetRePotionCD(self): return self.attrTuple[25] # 血瓶CD DWORD
-    def GetAttackEff(self): return self.attrTuple[26] # 挂机效率 DWORD
-    def GetReFightPower(self): return self.attrTuple[27] # 战斗力 DWORD
-    def GetIceLodeFightPower(self): return self.attrTuple[28] # 冰晶矿脉扫荡战斗力 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
 
 # 特殊地图玩家属性公式表
 class IPY_SpecMapPlayerAttrFormat():
@@ -7101,11 +7089,13 @@
         self.__LoadFileData("HeroBreak", onlyCheck)
         self.__LoadFileData("HeroAwake", onlyCheck)
         self.__LoadFileData("HeroFetter", onlyCheck)
+        self.__LoadFileData("HeroLineupHalo", onlyCheck)
         self.__LoadFileData("HeroSkin", onlyCheck)
         self.__LoadFileData("HeroQuality", onlyCheck)
         self.__LoadFileData("HeroQualityBreak", onlyCheck)
         self.__LoadFileData("HeroQualityAwake", onlyCheck)
         self.__LoadFileData("HeroQualityLV", onlyCheck)
+        self.__LoadFileData("PlayerAttr", onlyCheck)
         self.__LoadFileData("MainChapter", onlyCheck)
         self.__LoadFileData("MainLevel", onlyCheck)
         self.__LoadFileData("NPCLineup", onlyCheck)
@@ -7649,6 +7639,13 @@
         self.CheckLoadData("HeroFetter")
         return self.ipyHeroFetterCache[index]
 
+    def GetHeroLineupHaloCount(self):
+        self.CheckLoadData("HeroLineupHalo")
+        return self.ipyHeroLineupHaloLen
+    def GetHeroLineupHaloByIndex(self, index):
+        self.CheckLoadData("HeroLineupHalo")
+        return self.ipyHeroLineupHaloCache[index]
+
     def GetHeroSkinCount(self):
         self.CheckLoadData("HeroSkin")
         return self.ipyHeroSkinLen
@@ -7684,6 +7681,13 @@
         self.CheckLoadData("HeroQualityLV")
         return self.ipyHeroQualityLVCache[index]
 
+    def GetPlayerAttrCount(self):
+        self.CheckLoadData("PlayerAttr")
+        return self.ipyPlayerAttrLen
+    def GetPlayerAttrByIndex(self, index):
+        self.CheckLoadData("PlayerAttr")
+        return self.ipyPlayerAttrCache[index]
+
     def GetMainChapterCount(self):
         self.CheckLoadData("MainChapter")
         return self.ipyMainChapterLen

--
Gitblit v1.8.0