From 3beded4a9ae2e126158d89a4e7048f595ea0bc1b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 八月 2025 12:01:24 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(技能触发来源触发逻辑优化;增加承伤盾支持,0428通知buff相关值;增加嘲讽支持,优化技能选择目标逻辑;增加连击、反击、格挡、暴击、通用击晕支持;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 66 ++++++++++++++++++++++++++++-----
1 files changed, 56 insertions(+), 10 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 63e2843..3cde4bd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -954,8 +954,11 @@
Def_SkillID_Peace = 23048 # 玩家间和平buff
#----------------------------------------------------------------------
-#战斗类型
-Def_ChanceDefRate = 2000 # 抵御伤害概率, 目前固定20%概率
+
+#技能释放后需要额外处理逻辑
+AfterLogic_DelBuff = "DelBuff"
+AfterLogic_AddBuff = "AddBuff"
+AfterLogic_SyncBuff = "SyncBuff"
#伤害类型
(
@@ -1312,6 +1315,17 @@
CampType_Justice = ShareDefine.CampType_Justice # 正义
CampType_Evil = ShareDefine.CampType_Evil # 邪恶
+#buff释放类型
+BuffAtkType_DamageShield = 1003 # 承伤盾
+
+#计算类型
+Def_CalcTypeList = (
+Def_Calc_Attack, # 攻击 0
+Def_Calc_MaxHP, # 最大生命值 1
+Def_Calc_HurtValue, # 伤害值 2
+Def_Calc_TagMaxHP, # 目标最大生命值 3
+) = range(4)
+
#治疗类型(影响公式参数)
Def_CureTypeList = (
Def_Cure_Attack, # 攻击 0
@@ -1339,6 +1353,22 @@
Def_Skill_HappenState_LuckyHit = 0x0004 # 必会心一击
Def_Skill_HappenState_ThumpHit = 0x0008 # 必重击
+# 回合战斗行列数
+TurnFightRows = 2
+TurnFightCols = 3
+
+def GetInColNum(posNum):
+ ## 获取站位编号所在列编号
+ # @param posNum: 在阵容中的站位 1 ~ n
+ # @return: 1 ~ 总列数
+ return (posNum - 1) % TurnFightCols + 1
+
+def GetInRowNum(posNum):
+ ## 获取站位编号所在行编号
+ # @param posNum: 在阵容中的站位 1 ~ n
+ # @return: 1 ~ 总行数
+ return (posNum - 1) / TurnFightCols + 1
+
# 技能目标 - 瞄准范围
(
SkillTagAim_All, # 全部 0
@@ -1356,7 +1386,8 @@
SkillTagAffect_HPLowest, # 血量最低 1
SkillTagAffect_HPHighest, # 血量最高 2
SkillTagAffect_Death, # 死亡单位 3
-) = range(4)
+SkillTagAffect_UncontrolledPriority, # 未被控制优先 4
+) = range(5)
#技能施法目标
Def_UseSkillAim_Type = 3
@@ -3060,11 +3091,13 @@
# 回合攻击战斗类型
(
-TurnBattleType_Normal, # 常规攻击
-TurnBattleType_Combo, # 连击
-TurnBattleType_AtkBack, # 反击
-TurnBattleType_Pursue , # 追击
-) = range(4)
+TurnBattleType_Normal, # 常规攻击 0
+TurnBattleType_Combo, # 连击 1
+TurnBattleType_AtkBack, # 反击 2
+TurnBattleType_Pursue, # 追击 3
+TurnBattleType_Enhance, # 额外技能 4
+TurnBattleType_Passive, # 被动技能 5
+) = range(6)
Def_PerTurnTick = 1000 # 每回合等同于常规tick时长
@@ -3158,7 +3191,11 @@
BatObjState_Sneer, # 嘲讽 9
BatObjState_LimitSkill, # 沉默 10
BatObjState_LimitAddHP, # 禁疗 11
-) = range(12)
+ BatObjState_Stone, # 石化 12
+) = range(13)
+
+# 被控制的状态列表,无法行动,处于某些控制类buff影响状态下,如晕眩,冰冻,石化
+InControlledStateList = [BatObjState_Frozen, BatObjState_Stun, BatObjState_Stone]
#玩家状态定义,不能超过31个,如超过,需扩展多个key支持
Def_PlayerStateList = (
@@ -4465,7 +4502,16 @@
TriggerWay_HeroTurnEnd, # 武将回合开始时 5
TriggerWay_HeroActionStart, # 武将行动前 6
TriggerWay_HeroActionEnd, # 武将行动后 7
-) = range(1, 1 + 7)
+TriggerWay_CalcTagInState, # 攻击计算时对方处于xx状态时(参数:状态1|2|...)一般用于攻击时属性计算 8
+TriggerWay_AttackOverTagInState, # 攻击计算后对方处于xx状态时(参数:状态1|2|...)一般用于攻击后触发效果 9
+TriggerWay_AttackOverDirect, # 直接攻击后 (非buff攻击)10
+TriggerWay_BeAttackedDirect, # 受到直接攻击时 (非buff攻击)11
+TriggerWay_ShieldBroken, # 承伤盾被击破时 12
+) = range(1, 1 + 12)
+
+# 被动触发有效来源
+TriggerSrc_Skill = 1
+TriggerSrc_Buff = 2
(
TriggerType_BeSuperHit, # 被暴击触发技能 1
--
Gitblit v1.8.0