From 5c1ecb8765c16468299dba0d62cc003e7d3769d7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 23 一月 2026 17:22:34 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(PrintFightPower命令支持刷属性指定属性明细)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py |    7 +++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py         |   11 +++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
index a4b2391..18ee1b6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/PrintFightPower.py
@@ -33,6 +33,7 @@
     
     olPlayer = PlayerOnline.GetOnlinePlayer(curPlayer)
     if not msgList:
+        GameWorld.DebugAnswer(curPlayer, "重刷计算属性: PrintFightPower calc [明细]")
         GameWorld.DebugAnswer(curPlayer, "PrintFightPower [预设方案 专享属性地图ID]")
         GameWorld.DebugAnswer(curPlayer, "主公战力: %s" % PlayerControl.GetFightPower(curPlayer))
         
@@ -61,6 +62,12 @@
             
         return
     
+    if msgList[0] == "calc":
+        GameWorld.DebugAnswer(curPlayer, "重刷计算属性详见地图日志")
+        PlayerOnline.g_calcDetail = msgList[1] if len(msgList) > 1 else 0
+        PlayerOnline.GetOnlinePlayer(curPlayer).RefreshRoleAttr()
+        return
+    
     batPresetID = msgList[0]
     exclusiveMapID = msgList[1] if len(msgList) > 1 else 0
     batPresetIDList = olPlayer.GetBatPresetIDList()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
index f1f1396..6d0e74e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
@@ -40,6 +40,8 @@
 
 import time
 
+g_calcDetail = 0
+
 class LineupHero():
     ## 阵容武将,注意:同一个武将在不同阵容中可能属性不一样
     
@@ -1086,8 +1088,13 @@
                 attrValue = FormulaControl.Eval("baseAttrFormula", baseAttrFormula, attrParamDict, toInt=False, ndigits=3)
             else:
                 attrValue = FormulaControl.Eval("otherAttrFormula", otherAttrFormula, attrParamDict, toInt=False, ndigits=3)
-            #GameWorld.DebugLog("    attrID=%s,attrValue=%s,attrParamDict=%s" % (attrID, attrValue, attrParamDict))
-            
+            if g_calcDetail and attrValue > 0:
+                calcParamDict = {}
+                for k, v in attrParamDict.items():
+                    if v > 0:
+                        calcParamDict[k] = v
+                GameWorld.DebugLog("    heroID=%s,attrID=%s,attrValue=%s,attrParamDict=%s" % (heroID, attrID, attrValue, calcParamDict))
+                
             attrIpyData = IpyGameDataPY.GetIpyGameData("PlayerAttr", attrID)
             attrName = attrIpyData.GetParameter() if attrIpyData else "%s" % attrID
             attrRatioName = "%sRatio" % attrName

--
Gitblit v1.8.0