From 26958aff1b844a743a805b4f9075bee800b72a46 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 04 十一月 2025 14:35:37 +0800
Subject: [PATCH] 332 【主界面】座骑系统-服务端
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py | 40 ++++++++++++++++++++++++++++++++++++----
1 files changed, 36 insertions(+), 4 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 1304663..4db8785 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/TurnSkill.py
@@ -1001,13 +1001,17 @@
# 统计击杀
killObjList = [] # 击杀其他阵营目标列表
+ dieObjList = [] # 死亡的单位列表
for tagObj in useSkill.GetTagObjList():
tagID = tagObj.GetID()
- if tagObj.IsAlive() and tagObj.GetHP() <= 0 and tagObj.GetFaction() != curObj.GetFaction():
- killObjList.append(tagObj)
- TurnAttack.SetObjKilled(turnFight, tagObj, curObj, useSkill)
+ if tagObj.IsAlive() and tagObj.GetHP() <= 0:
+ dieObjList.append(tagObj)
+ if tagObj.GetFaction() != curObj.GetFaction():
+ killObjList.append(tagObj)
+ TurnAttack.SetObjKilled(turnFight, tagObj, curObj, useSkill)
useSkill.SetKillObjList(killObjList)
if curObj.IsAlive() and curObj.GetHP() <= 0:
+ dieObjList.append(curObj)
TurnAttack.SetObjKilled(turnFight, curObj)
# 统计伤血,可能单个技能对同一目标造成多次伤害
@@ -1087,6 +1091,23 @@
TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_KillOneObj, tagObj, connSkill=useSkill)
TurnPassive.OnTriggerPassiveEffect(turnFight, curObj, ChConfig.TriggerWay_KillTagObj, tagObj, connSkill=useSkill)
+ if dieObjList:
+ for faction in [ChConfig.Def_FactionA, ChConfig.Def_FactionB]:
+ batFaction = turnFight.getBatFaction(faction)
+ for lineupNum in batFaction.lineupDict.keys():
+ batLineup = batFaction.getBatlineup(lineupNum)
+ for lineupObjID in batLineup.posObjIDDict.values():
+ lineupObj = batObjMgr.getBatObj(lineupObjID)
+ if not lineupObj.IsAlive():
+ continue
+ for dieObj in dieObjList:
+ # 敌方单位死亡时
+ if lineupObj.GetFaction() != dieObj.GetFaction():
+ TurnPassive.OnTriggerPassiveEffect(turnFight, lineupObj, ChConfig.TriggerWay_EnemyDie, dieObj, connSkill=useSkill)
+ # 己方单位死亡时
+ else:
+ TurnPassive.OnTriggerPassiveEffect(turnFight, lineupObj, ChConfig.TriggerWay_FriendDie, dieObj, connSkill=useSkill)
+
triggerOne = False
batType = useSkill.GetBatType()
isAttackDirect = (isUseSkill and not SkillCommon.IsBuff(useSkill) and useSkill.GetSkillType() in [ChConfig.Def_SkillType_Atk])
@@ -1107,7 +1128,10 @@
TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeAttackedDirect, curObj, connSkill=useSkill)
else:
TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeAnyEffect, curObj, connSkill=useSkill)
-
+ # 受到持续伤害
+ if tagID in beHurtObjIDList:
+ TurnPassive.OnTriggerPassiveEffect(turnFight, tagObj, ChConfig.TriggerWay_BeDOTHurt, curObj, connSkill=useSkill)
+
# 使用技能后
if isUseSkill:
if not triggerOne:
@@ -1432,6 +1456,7 @@
'''计算伤害,默认按攻击计算
'''
+ mapID = turnFight.mapID
skillID = curSkill.GetSkillID()
pmType = GetPMType(atkObj, curSkill)
ignoreDef = IsIgnoreDef(curSkill)
@@ -1547,6 +1572,11 @@
if batType == ChConfig.TurnBattleType_Pursue:
aPursueDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_PursueDamPer)
+ aArenaDamPer, dArenaDamPerDef = 0, 0 # 竞技增伤、竞技减伤
+ if mapID == ChConfig.Def_FBMapID_ArenaBattle:
+ aArenaDamPer = atkObj.GetBatAttrValue(ChConfig.AttrID_ArenaDamPer)
+ dArenaDamPerDef = atkObj.GetBatAttrValue(ChConfig.AttrID_ArenaDamPerDef)
+
# 所有万分率参数统一除10000.0
atkSkillPer /= 10000.0
aNormalSkillPer /= 10000.0
@@ -1562,6 +1592,8 @@
dFinalDamPerDef /= 10000.0
aComboDamPer /= 10000.0
aPursueDamPer /= 10000.0
+ aArenaDamPer /= 10000.0
+ dArenaDamPerDef /= 10000.0
if calcType != ChConfig.Def_Calc_Attack:
aAtk = GetCalcBaseValue(calcType, atkObj, defObj, curSkill)
--
Gitblit v1.8.0