From 1f8360c2e5992e9be8585cdbb832c7827862873d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 14 一月 2021 14:15:00 +0800
Subject: [PATCH] 4903 【主干】【BT】穿脱套装部件重新激活套装战力显示异常;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py         |   10 +++++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py |   19 +++++++++++++++++++
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
index 3b459b6..9f3c231 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChEquip.py
@@ -1064,7 +1064,7 @@
         return
     #GameWorld.DebugLog('    suitCntDict=%s'%suitCntDict)
     learnSkillList = []
-    delSkillID = []
+    delSkillIDList = []
     skillManager = curPlayer.GetSkillManager()
     playerName = curPlayer.GetName()
     for suiteID, starList in suitCntDict.items():
@@ -1094,7 +1094,7 @@
 
             else:
                 if skillID and skillManager.FindSkillBySkillTypeID(skillID):
-                    delSkillID.append(skillID)
+                    delSkillIDList.append(skillID)
                     skillManager.DeleteSkillBySkillTypeID(skillID)
                             
             
@@ -1105,7 +1105,11 @@
             continue
         skillManager.LVUpSkillBySkillTypeID(skillID)   
         PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillID, 0)
-    if learnSkillList or delSkillID:
+        
+    for delSkillID in delSkillIDList:
+        PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerByDel(delSkillID)
+        
+    if learnSkillList or delSkillIDList:
         # 重刷被动技能
         PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer)    
     return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 1f70a34..009e152 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -5063,6 +5063,25 @@
             
         return
     
+    def RefreshSkillFightPowerByDel(self, delSkillID, isRefreshState=True):
+        curPlayer = self.__Player
+        # 新技能战力-旧技能战力为增加的技能战力
+        curSkill = GameWorld.GetGameData().GetSkillBySkillID(delSkillID)
+        if not curSkill:
+            return
+        delFightPower = curSkill.GetFightPower()
+        mfpType = ChConfig.Def_SkillFuncType_MFPType.get(curSkill.GetFuncType(), ShareDefine.Def_MFPType_Role)
+        skillMFP = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_MFPSkill % mfpType)
+        curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPSkill % mfpType, max(0, skillMFP - delFightPower))
+        GameWorld.DebugLog("刷新技能附加战斗力: delSkillID=%s,mfpType=%s,skillMFP=%s,delFightPower=%s" 
+                           % (delSkillID, mfpType, skillMFP, delFightPower), curPlayer.GetPlayerID())
+        
+        if isRefreshState:
+            # 如果需要同步排行榜的话先强制刷属性
+            self.RefreshPlayerAttrState()
+            
+        return
+    
     ## 计算被动buff属性加成
     #  @param self 类实例
     #  @return 

--
Gitblit v1.8.0