From fdf293d937f74d7012ad80ef9ea71c23f440193a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 28 十月 2025 10:04:32 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(陆逊技能;增加效果ID5009:检测场上最高层buff复制buff到目标上; 增加效果ID5020:引爆目标所有持续buff所有回合效果(只算按回合结算的))
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 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 3b23e4c..1bdbfc9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -62,11 +62,11 @@
if not curBatObj.CanAction():
return
- buffStateLimit = useSkill.GetBuffStateLimit()
- if buffStateLimit:
- limitState = curBatObj.IsInBuffStateGroup(buffStateLimit)
+ buffStateGroups = useSkill.GetBuffStateLimit()
+ if buffStateGroups:
+ limitState = curBatObj.IsInBuffStateGroup(buffStateGroups)
if limitState:
- GameWorld.DebugLog("技能使用处于buff状态限制中! skillID=%s,buffStateLimit=%s,limitState=%s" % (skillID, buffStateLimit, limitState))
+ GameWorld.DebugLog("技能使用处于buff状态限制中! skillID=%s,buffStateGroups=%s,limitState=%s" % (skillID, buffStateGroups, limitState))
return
#没有指定目标,则按技能自身的目标逻辑
@@ -879,6 +879,7 @@
FBLogic.OnPlayerLineupAttackResult(curPlayer, curObj, killObjList, useSkill, turnFight.mapID, turnFight.funcLineID)
effIgnoreObjIDList = missObjIDList + immuneObjIDList
+ useSkill.SetEffIgnoreObjIDList(effIgnoreObjIDList)
# 优先触发本技能额外效果,注:仅该技能释放后该技能的额外效果视为主技能的效果,优先级最高
__DoCurSkillEff(turnFight, curObj, useSkill, effIgnoreObjIDList, isUseSkill)
@@ -1457,6 +1458,7 @@
if hurtValue <= 0:
return 0, 0, hurtTypes
+ hurtValue = int(hurtValue)
buffMgr = defObj.GetBuffManager()
wudiBuffList = buffMgr.FindBuffListByState(ChConfig.BatObjState_Wudi)
if wudiBuffList:
@@ -1684,7 +1686,7 @@
GameWorld.DebugLog("根据buff值: %s" % baseValue)
return baseValue
-def DoDOTAttack(turnFight, batObj, curBuff, hurtValue, hurtTypes):
+def DoDOTAttack(turnFight, batObj, curBuff, hurtValue, hurtTypes, **kwargs):
## 执行单次dot逻辑
skillID = curBuff.GetSkillID()
skillIpyData = IpyGameDataPY.GetIpyGameData("Skill", skillID)
@@ -1716,6 +1718,10 @@
if layer > 0:
hurtValue *= layer
GameWorld.DebugLog(" 多层buff伤害: hurtValue=%s,layer=%s" % (hurtValue, layer))
+ if "FinalDamPer" in kwargs:
+ FinalDamPer = kwargs["FinalDamPer"]
+ hurtValue *= (10000 + FinalDamPer) / 10000.0
+ GameWorld.DebugLog(" 增伤: hurtValue=%s,FinalDamPer=%s" % (hurtValue, FinalDamPer))
hurtValue, realHurtHP, hurtTypes = CalcHurtHPWithBuff(turnFight, atkObj, defObj, useSkill, hurtValue, hurtTypes)
remainHP = max(0, dHP - realHurtHP) # 剩余血量
--
Gitblit v1.8.0