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