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