From c63ffd10aecb12b2e09dae603cf9a0f824f6482c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 十二月 2025 15:46:15 +0800
Subject: [PATCH] 16 卡牌服务端(合成目标物品与材料物品不在同一背包时支持合成;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
index dad7fca..aaf4f3c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -100,7 +100,7 @@
             
     if not tagObjList:
         # 可扩展其他目标选择,如复活技能没有死亡单位时则使用另外的效果
-        GameWorld.DebugLog("找不到技能目标! skillID=%s,mapID=%s,funcLineID=%s" % (skillID, turnFight.mapID, turnFight.funcLineID), turnFight.playerID)
+        GameWorld.DebugLog("找不到技能目标! skillID=%s,mapID=%s,funcLineID=%s" % (skillID, turnFight.mapID, turnFight.funcLineID), turnFight.getReqPlayerID())
         if useSkill.GetSkillType() == ChConfig.Def_SkillType_Revive:
             otherEff = useSkill.GetEffectByID(ChConfig.SkillEff_ReviveNoUse)
             if otherEff:
@@ -115,7 +115,7 @@
     
     oneActionUseCnt = turnFight.GetOneActionUseSkillCnt(objID)
     if oneActionUseCnt >= 20:
-        GameWorld.ErrLog("单次行动累计使用技能达到上限! objID=%s,oneActionUseCnt=%s" % (objID, oneActionUseCnt), turnFight.playerID)
+        GameWorld.ErrLog("单次行动累计使用技能达到上限! objID=%s,oneActionUseCnt=%s" % (objID, oneActionUseCnt), turnFight.getReqPlayerID())
         return
     oneActionUseCnt = turnFight.SetOneActionUseSkillCnt(objID, oneActionUseCnt + 1)
     
@@ -1114,11 +1114,12 @@
     if useSkill.GetCoolDownTime():
         useSkill.SetRemainTime(useSkill.GetCoolDownTime())
         
+    __doCostZhanchui(turnFight, curBatObj, useSkill) # 先扣除再同步技能
+    
     # 需先技能使用 - 前端按顺序优先表现技能释放内容,前端需要动作或有伤血则通知
     if IsNeedSyncSkill(useSkill):
         Sync_UseSkill(turnFight, curBatObj, useSkill)
         
-    __doCostZhanchui(turnFight, curBatObj, useSkill)
     __doSkillUserAnger(turnFight, curBatObj, useSkill)
     
     DoBeAttackResult(turnFight, curBatObj, useSkill)
@@ -1540,7 +1541,7 @@
         curBatObj.SetXP(0)
     elif SkillCommon.isTurnNormalSkill(useSkill) and useSkill.GetBatType() == ChConfig.TurnBattleType_Normal:
         addXP = IpyGameDataPY.GetFuncCfg("AngerXP", 3)
-        AddTurnFightXP(curBatObj, addXP, "skillID:%s" % useSkill.GetSkillID())
+        AddFightXP(curBatObj, addXP, "skillID:%s" % useSkill.GetSkillID())
     return
 
 def __doSkillHurtAnger(batObj, lostHP, useSkill):
@@ -1550,10 +1551,10 @@
     addXP = IpyGameDataPY.GetFuncCfg("AngerXP", 4)
     if addXP <= 0:
         return
-    AddTurnFightXP(batObj, addXP, "skillID:%s" % useSkill.GetSkillID())
+    AddFightXP(batObj, addXP, "skillID:%s" % useSkill.GetSkillID())
     return
 
-def AddTurnFightXP(gameObj, addXP, reason=""):
+def AddFightXP(gameObj, addXP, reason=""):
     ## 回合战斗增加XP
     if addXP <= 0 or not addXP:
         #GameWorld.DebugLog("        没有增加XP! curID=%s" % (gameObj.GetID()))
@@ -1913,7 +1914,7 @@
         dPursueDamPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_PursueDamPerDef)
         
     aPVPDamPer, dPVPDamPerDef = 0, 0 # PVP
-    if turnFight.getPVPPlayerID() > 0:
+    if turnFight.isPVP() > 0:
         aPVPDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_PVPDamPer)
         dPVPDamPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_PVPDamPerDef)
         GameWorld.DebugLog("PVP aPVPDamPer=%s,dPVPDamPerDef=%s" % (aPVPDamPer, dPVPDamPerDef))
@@ -2502,6 +2503,10 @@
     if hurtHP <= 1:
         return
     
+    if not atkObj.IsAlive():
+        # dot施法者已死亡不再吸血
+        return
+    
     aSuckHPPer = atkObj.GetBatAttrValue(ChConfig.AttrID_SuckHPPer)
     aCurePer = atkObj.GetBatAttrValue(ChConfig.AttrID_CurePer)
     

--
Gitblit v1.8.0