From f7a8b9973ec7ca6625b922520a3eef092b7a2d2e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 22 十二月 2025 09:43:24 +0800
Subject: [PATCH] 1111 后台转让会长支持;
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py | 40 ++++++++++++++++++++++++++++++----------
1 files changed, 30 insertions(+), 10 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 adc7c25..f967ef2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -59,9 +59,10 @@
if not skillID:
return
+ skillType = useSkill.GetSkillType()
byTriggerWay = kwargs["byTriggerWay"] if "byTriggerWay" in kwargs else 0 # 不使用参数名 triggerWay, 防止传递过程中参数混乱
if not curBatObj.IsAlive():
- if useSkill.GetSkillType() == ChConfig.Def_SkillType_Revive and useSkill.GetTagAim() == ChConfig.SkillTagAim_Self:
+ if skillType == ChConfig.Def_SkillType_Revive and useSkill.GetTagAim() == ChConfig.SkillTagAim_Self:
GameWorld.DebugLogEx("死亡时使用复活自己的技能! skillID=%s", skillID)
else:
if byTriggerWay in ChConfig.DeadCanTriggerWayList:
@@ -103,10 +104,16 @@
if not tagObjList and isRemove:
return
+ if tagObjList and skillType == ChConfig.Def_SkillType_Revive:
+ for tagObj in tagObjList[::-1]:
+ if tagObj.CheckInState(ChConfig.BatObjState_RebornLimit):
+ GameWorld.DebugLogEx(" 目标被禁止复活不处理! tagID=%s", tagObj.GetID())
+ tagObjList.remove(tagObj)
+
if not tagObjList:
# 可扩展其他目标选择,如复活技能没有死亡单位时则使用另外的效果
GameWorld.DebugLogEx("找不到技能目标! skillID=%s,mapID=%s,funcLineID=%s", skillID, turnFight.mapID, turnFight.funcLineID, turnFight.getReqPlayerID())
- if useSkill.GetSkillType() == ChConfig.Def_SkillType_Revive:
+ if skillType == ChConfig.Def_SkillType_Revive and not isinstance(useSkill, IpyGameDataPY.IPY_Skill):
otherEff = useSkill.GetEffectByID(ChConfig.SkillEff_ReviveNoUse)
if otherEff:
otherSkillID = otherEff.GetEffectValue(0)
@@ -1165,7 +1172,7 @@
if IsNeedSyncSkill(useSkill):
Sync_UseSkill(turnFight, curBatObj, useSkill)
- __doSkillUserAnger(turnFight, curBatObj, useSkill)
+ __doSkillUserAnger(turnFight, curBatObj, useSkill, **kwargs)
DoBeAttackResult(turnFight, curBatObj, useSkill)
return
@@ -1504,7 +1511,8 @@
elif not isAttackDirect:
# 受到持续伤害
if tagID in beHurtObjIDList:
- TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeDOTHurt, curObj, connSkill=useSkill)
+ TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_DOTHurt, tagObj, connSkill=useSkill, connBuff=timeBuff)
+ TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeDOTHurt, curObj, connSkill=useSkill, connBuff=timeBuff)
# 使用技能后
if isUseSkill:
@@ -1637,10 +1645,14 @@
return
-def __doSkillUserAnger(turnFight, curBatObj, useSkill):
+def __doSkillUserAnger(turnFight, curBatObj, useSkill, **kwargs):
## 技能释放者怒气相关
if SkillCommon.isAngerSkill(useSkill):
- curBatObj.SetXP(0)
+ if "noUseXP" in kwargs:
+ kwargs.pop("noUseXP")
+ GameWorld.DebugLogEx("本次不消耗怒气")
+ else:
+ curBatObj.SetXP(0)
elif SkillCommon.isTurnNormalSkill(useSkill) and useSkill.GetBatType() == ChConfig.TurnBattleType_Normal:
addXP = IpyGameDataPY.GetFuncCfg("AngerXP", 3)
AddFightXP(curBatObj, addXP, "skillID:%s" % useSkill.GetSkillID())
@@ -1765,8 +1777,11 @@
for tagObj in tagObjList:
tagID = tagObj.GetID()
if not tagObj.IsAlive():
- GameWorld.DebugLogEx(" 已被击杀不触发: tagID=%s", tagID)
- continue
+ if enhanceSkillData.GetCurBuffState() == ChConfig.BatObjState_RebornLimit:
+ GameWorld.DebugLogEx(" 禁止复活buff允许对死亡对象释放: tagID=%s", tagID)
+ else:
+ GameWorld.DebugLogEx(" 已被击杀不触发: tagID=%s", tagID)
+ continue
if tagID in effIgnoreObjIDList:
GameWorld.DebugLogEx(" 闪避或免疫的不触发: tagID=%s", tagID)
continue
@@ -1997,9 +2012,14 @@
aDOTPer = atkObj.GetBatAttrValue(ChConfig.AttrID_DOTPer)
dDOTPerDef = defObj.GetBatAttrValue(ChConfig.AttrID_DOTPerDef)
GameWorld.DebugLogEx("aDOTPer=%s,dDOTPerDef=%s", aDOTPer, dDOTPerDef)
-
+ if curSkill.GetCurBuffState() in ChConfig.BurnStateList:
+ aDOTPer += atkObj.GetBatAttrValue(ChConfig.AttrID_DOTBurnPer)
+ dDOTPerDef += defObj.GetBatAttrValue(ChConfig.AttrID_DOTBurnPerDef)
+ GameWorld.DebugLogEx("是灼烧: aDOTPer=%s,dDOTPerDef=%s", aDOTPer, dDOTPerDef)
+
#aAddSkillPer = 0 # 技能增伤
- aBatDamPer, dBatDamPerDef = 0, 0 # 战斗增减伤
+ dBatDamPerDef = 0 # 战斗增减伤
+ aBatDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_BatDamPer)
aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.AttrID_BatDamPer, curSkill)
aBatDamPer += TurnPassive.GetTriggerEffectValue(turnFight, atkObj, defObj, ChConfig.PassiveEff_AddBatDamPerByTagLostHP, curSkill)
aBatDamPer += addBatDamPer
--
Gitblit v1.8.0