From ad6a669af7002ce115b322f5f10ad44c7992bb7b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 22 十二月 2025 14:43:09 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(吕玲绮技能,除了突破8潜能; buff持续回合计算增加规则3;技能目标范围增加男女;增加效果6030-掉血保护;5022效果支持配置仅对指定性别有效;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

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 ab521b9..32612d3 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerOnline.py
@@ -385,6 +385,12 @@
     heroID = heroItem.GetItemTypeID()
     curAddPer = getHeroCardAddPer(heroItem)
     effAddPer, effItemIndex, inMain = olPlayer.GetHeroEffectiveCard(heroID)
+    curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptHero)
+    hisEffItem = curPack.GetAt(effItemIndex) if curPack.GetCount() > effItemIndex else None
+    if not hisEffItem or hisEffItem.IsEmpty():
+        GameWorld.DebugLog("历史生效的物品不在了,强制设置空! effAddPer=%s,effItemIndex=%s,inMain=%s" % (effAddPer, effItemIndex, inMain))
+        effAddPer, effItemIndex, inMain = -1, -1, False
+        
     if itemIndex == effItemIndex:
         if curAddPer == effAddPer:
             GameWorld.DebugLog("生效的卡牌不变且加成也不变,不用处理! heroID=%s,itemIndex=%s,inMain=%s,effAddPer=%s,curAddPer=%s" % (heroID, itemIndex, inMain, effAddPer, curAddPer))
@@ -584,7 +590,7 @@
     GameWorld.DebugLog("doCalcAllAttr...", curPlayer.GetPlayerID())
     CalcRoleBase(curPlayer)
     ChEquip.CalcRoleEquipAttr(curPlayer)
-    #PlayerHero.CalcHeroAddAttr(curPlayer)
+    PlayerHero.CalcHeroAddAttr(curPlayer)
     PlayerPrestigeSys.CalcOfficialRankAttr(curPlayer)
     PlayerGubao.CalcGubaoAttr(curPlayer)
     PlayerHJG.CalcHJGAttr(curPlayer)
@@ -814,6 +820,7 @@
     
     lvAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_LV)
     equipAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_MainEquip)
+    fatesAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_HeroFates)
     realmAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_Realm)
     gubaoAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_Gubao)
     hjgAttrDict = olPlayer.GetCalcAttr(ChConfig.Def_CalcAttr_HJG)
@@ -832,6 +839,7 @@
     
     GameWorld.DebugLog("    主公等级属性=%s" % lvAttrDict, playerID)
     GameWorld.DebugLog("    主公装备属性=%s" % equipAttrDict, playerID)
+    GameWorld.DebugLog("    主公宿缘属性=%s" % fatesAttrDict, playerID)
     GameWorld.DebugLog("    主公官职属性=%s" % realmAttrDict, playerID)
     GameWorld.DebugLog("    主公古宝属性=%s" % gubaoAttrDict, playerID)
     GameWorld.DebugLog("    主幻境阁属性=%s" % hjgAttrDict, playerID)
@@ -876,6 +884,9 @@
             if attrID in ChConfig.BaseAttrIDList:
                 cardPer = effCardAddPer
                 
+            fatesValue = fatesAttrDict.get(attrID, 0)
+            fatesPer = fatesAttrDict.get(attrPerID, 0) / 10000.0 if attrPerID else 0
+            
             realmValue = realmAttrDict.get(attrID, 0)
             realmPer = realmAttrDict.get(attrPerID, 0) / 10000.0 if attrPerID else 0
             
@@ -916,7 +927,7 @@
             # 计算
             attrParamDict = {"lvValue":lvValue, "equipValue":equipValue, "realmValue":realmValue, "realmPer":realmPer, "cardPer":cardPer,
                              "gubaoValue":gubaoValue, "gubaoPer":gubaoPer, "hjgValue":hjgValue, "hjgPer":hjgPer, "horseValue":horseValue, "horsePer":horsePer, 
-                             "beautyValue":beautyValue, "beautyPer":beautyPer,
+                             "beautyValue":beautyValue, "beautyPer":beautyPer, "fatesValue":fatesValue, "fatesPer":fatesPer,
                              "heroSelfValue":heroSelfValue, "heroSelfPer":heroSelfPer, "inheritPer":inheritPer, "heroLVValue":heroLVValue, "heroLVPer":heroLVPer,
                              "lineupHaloValue":lineupHaloValue, "lineupHaloPer":lineupHaloPer, "fetterValue":fetterValue, "fetterPer":fetterPer,
                              "starTalentValue":starTalentValue, "starTalentPer":starTalentPer, "breakLVValue":breakLVValue, "breakLVPer":breakLVPer,

--
Gitblit v1.8.0