From 2b91d1223f3d78bd2efa970478d1ed63666e131c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 10 十二月 2025 11:40:43 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(优化演武场匹配逻辑;)
---
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