From 2350f87cbba3da859d02632aa8116c1511d6d60b Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 24 九月 2025 18:54:13 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(马超所有技能;增加触发方式20 21 22;增加效果5006 6010 6011 6012 6013;修复非学习的子技能加载触发效果bug;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py | 94 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 73 insertions(+), 21 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py index fc0c34a..390ea1a 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py @@ -160,7 +160,13 @@ AttrID_WuFinalDamPerDef, # 对吴减伤 62 AttrID_QunFinalDamPer, # 对群增伤 63 AttrID_QunFinalDamPerDef, # 对群减伤 64 -) = range(1, 1 + 64) +AttrID_SkillPer, # 技能增伤 65 +AttrID_SkillPerDef, # 技能减伤 66 +AttrID_PursueDamPer, # 追击增伤 67 +AttrID_PursueDamPerDef, # 追击减伤 68 +AttrID_ComboDamPer, # 连击增伤 69 +AttrID_ComboDamPerDef, # 连击减伤 70 +) = range(1, 1 + 70) # 需要计算的武将战斗属性ID列表 CalcBattleAttrIDList = [AttrID_Atk, AttrID_Def, AttrID_MaxHP, AttrID_StunRate, AttrID_StunRateDef, @@ -173,6 +179,8 @@ AttrID_ShieldPer, AttrID_ShieldPerDef, AttrID_DOTPer, AttrID_DOTPerDef, AttrID_WeiFinalDamPer, AttrID_WeiFinalDamPerDef, AttrID_ShuFinalDamPer, AttrID_ShuFinalDamPerDef, AttrID_WuFinalDamPer, AttrID_WuFinalDamPerDef, AttrID_QunFinalDamPer, AttrID_QunFinalDamPerDef, + AttrID_SkillPer, AttrID_SkillPerDef, AttrID_PursueDamPer, AttrID_PursueDamPerDef, + AttrID_ComboDamPer, AttrID_ComboDamPerDef, ] # 基础三维属性ID列表 @@ -205,12 +213,14 @@ Def_CalcAttr_LV, # 主公等级 0 Def_CalcAttr_MainEquip, # 主装备 1 Def_CalcAttr_HeroBook, # 武将图鉴 2 -) = range(3) +Def_CalcAttr_Realm, # 官职 3 +) = range(4) CalcAttrName = { Def_CalcAttr_LV:"主公等级", Def_CalcAttr_MainEquip:"主装备", Def_CalcAttr_HeroBook:"武将图鉴", + Def_CalcAttr_Realm:"官职", } ##----------------------------------------------------------------------------------------------- @@ -958,7 +968,7 @@ HurtType_Normal, # 伤害 1 HurtTYpe_Recovery, # 回血 2 HurtType_3, -HurtType_4, +HurtType_Immune, # 免疫 4 HurtType_Parry, # 格挡 5 HurtType_IgnoreDef, # 无视防御/真实伤害 6 HurtType_SuperHit, # 暴击 7 @@ -1317,9 +1327,11 @@ Def_CalcTypeList = ( Def_Calc_Attack, # 攻击 0 Def_Calc_MaxHP, # 最大生命值 1 -Def_Calc_HurtValue, # 伤害值 2 +Def_Calc_LastHurt, # 最后一次伤害值 2 Def_Calc_TagMaxHP, # 目标最大生命值 3 -) = range(4) +Def_Calc_ByBuffValue, # 触发buff的buff值 4 +Def_Calc_TagLostHP, # 目标已损失生命 5 +) = range(6) #治疗类型(影响公式参数) Def_CureTypeList = ( @@ -1382,7 +1394,8 @@ SkillTagAffect_HPHighest, # 血量最高 2 SkillTagAffect_Death, # 死亡单位 3 SkillTagAffect_UncontrolledPriority, # 未被控制优先 4 -) = range(5) +SkillTagAffect_AtkHighest, # 攻击力最高 5 +) = range(6) #技能施法目标 Def_UseSkillAim_Type = 3 @@ -3061,9 +3074,6 @@ Def_Obj_Dict_SkinID = 'SkinID' # 该战斗NPC所绑定的武将皮肤ID,一般仅玩家阵容有 Def_Obj_Dict_TurnFightPosInfo = 'TurnFightPosInfo' # 回合制站位: 阵营编号*100+阵型站位,阵型站位为0时代表非主战单位 Def_Obj_Dict_TurnFightTimeline = 'TurnFightTimeline' # 回合制战斗时间线: 回合数*100+行动编号节点 -Def_Obj_Dict_TurnComboNum = 'TurnComboNum' # 单次累计连击次数 -Def_Obj_Dict_TurnAtkBackNum = 'TurnAtkBackNum' # 单次累计反击次数 -Def_Obj_Dict_TurnParryNum = 'TurnParryNum' # 单次累计格挡次数 Def_Obj_Dict_TurnMissNum = 'TurnMissNum' # 单次累计闪避次数 Def_Obj_Dict_TurnBattleType = 'TurnBattleType' # 本次攻击战斗类型:TurnBattleType_xxx @@ -3135,17 +3145,19 @@ BatObjState_Poison, # 中毒 5 BatObjState_Bleeding, # 流血 6 BatObjState_EasyHurt, # 易伤 7 - BatObjState_Wudi, # 无敌 8 + BatObjState_Wudi, # 无敌( 受任意伤害、控制类、dot效果,全部飘“免疫”) 8 BatObjState_Sneer, # 嘲讽 9 BatObjState_LimitSkill, # 沉默 10 BatObjState_LimitAddHP, # 禁疗 11 BatObjState_Stone, # 石化 12 BatObjState_Disarm, # 缴械 13 BatObjState_ParryYJ, # 格挡印记 14 -) = range(15) - -# 被控制的状态列表,无法行动,处于某些控制类buff影响状态下,如晕眩,冰冻,石化 -InControlledStateList = [BatObjState_Frozen, BatObjState_Stun, BatObjState_Stone] + BatObjState_Weak, # 虚弱 15 + BatObjState_Charm, # 魅惑 16 + BatObjState_Chaos, # 混乱 17 + BatObjState_18, # 权谋 18 + BatObjState_FocusFire, # 军令/集火 19 +) = range(20) #玩家状态定义,不能超过31个,如超过,需扩展多个key支持 Def_PlayerStateList = ( @@ -4270,17 +4282,57 @@ TriggerWay_HeroTurnEnd, # 武将回合开始时 5 TriggerWay_HeroActionStart, # 武将行动前 6 TriggerWay_HeroActionEnd, # 武将行动后 7 -TriggerWay_CalcTagInState, # 攻击计算时对方处于xx状态时(参数:状态1|2|...)一般用于攻击时属性计算 8 -TriggerWay_AttackOverTagInState, # 攻击计算后对方处于xx状态时(参数:状态1|2|...)一般用于攻击后触发效果 9 -TriggerWay_AttackOverDirect, # 直接攻击后 (非buff攻击)10 +TriggerWay_CalcEffValue, # 统计计算效果值时 8 +TriggerWay_UseSkillOver, # 使用技能后(每个目标触发一次)9 +TriggerWay_AttackOverDirect, # 直接攻击后(除dot或buff外的攻击,每个目标触发一次)10 TriggerWay_BeAttackedDirect, # 受到直接攻击时 (非buff攻击)11 TriggerWay_ShieldBroken, # 承伤盾被击破时 12 TriggerWay_CurSkillEff, # 本技能/buff释放后,一般用于本技能/buff释放后触发,仅该技能释放后有效 13 -) = range(1, 1 + 13) +TriggerWay_CurSkillEffLst, # 本持续buff结算后额外触发效果,仅该持续buff结算后有效 14 +TriggerWay_KillOneObj, # 击杀目标后(单次击杀多目标只触发一次) 15 +TriggerWay_KillTagObj, # 击杀每目标后(单次击杀多目标每个目标触发一次) 16 +TriggerWay_BuffDel, # buff消失后 17 +TriggerWay_BeCombo, # 被连击时 18 +TriggerWay_BePursue, # 被追击时 19 +TriggerWay_UseSkillOverOne, # 使用技能后(多目标仅触发一次)20 +TriggerWay_AttackOverDirectOne, # 直接攻击后(除dot或buff外的攻击,多目标仅触发一次)21 +TriggerWay_BeAnyEffect, # 受到任意效果时(除直接攻击外的任意效果,如buff、dot、治疗、额外怒技)22 +) = range(1, 1 + 22) + +# 不加载的被动触发方式,一般用于本技能固定触发逻辑用的 +TriggerWayNoLoadList = [TriggerWay_CurSkillEff, TriggerWay_CurSkillEffLst] # 被动触发有效来源 -TriggerSrc_Skill = 1 -TriggerSrc_Buff = 2 +TriggerSrc_Skill = 1 # 身上技能有效 +TriggerSrc_Buff = 2 # 身上buff有效 +TriggerSrc_SkillSelf = 3 # 本技能有效 +TriggerSrc_BuffSelf = 4 # 本buff有效 + +# 被动效果ID,属性类的直接使用属性ID当做效果ID +PassiveEff_AddBuffLayerByWeight = 6001 # 根据权重随机添加buff层数 数值1-[[权重,层级], ...] +PassiveEff_ChangeHurtType = 6002 # 变更本次伤害类型 +PassiveEff_ChangeHurtMulti = 6003 # 变更伤害倍值(可增可减) +PassiveEff_AddSkillPer = 6004 # 增加本次技能万分比(验证目标状态) +PassiveEff_AddSkillPerByJob = 6006 # 增加本次技能万分比(验证目标职业) +# 6005 增加本次技能万分比(按buff状态层数算) +PassiveEff_AddSkillTagCnt = 6007 # 增加技能目标数 +PassiveEff_ImmuneControlBuff = 6008 # 生命值低于x%时免疫控制效果 +PassiveEff_MustSuperHit = 6009 # 生命值低于x%时必定暴击 +PassiveEff_AddSkillPerByHP = 6010 # 增加本次技能万分比(验证当前生命) +PassiveEff_AddSkillPerByBuffLayer = 6011 # 增加本次技能万分比(根据buff层级) +PassiveEff_AddBuffLayerMax = 6012 # 添加buff层级上限: 数值1-增加层级上限 +PassiveEff_AddFinalDamPer = 6013 # 增加最终增伤(根据属性转化) + +# 被动效果ID有触发值时就返回的 +PassiveEffHappenValueList = [PassiveEff_ChangeHurtType, PassiveEff_ImmuneControlBuff, PassiveEff_MustSuperHit] +# 被动效果ID触发值取最大值的 +PassiveEffValueMaxList = [PassiveEff_ChangeHurtMulti] +# 被动效果ID触发值取最小值的 +PassiveEffValueMinList = [] + +# 技能效果 - 不需要配置触发方式的 +SkillEff_CureWayEx = 7001 # 额外治疗值计算(对CalcType、SkillPer治疗计算方式扩展): 值1-计算方式;值2-万分比 +SkillEff_HurtShare = 7002 # 均摊伤害 ( TriggerType_BeSuperHit, # 被暴击触发技能 1 @@ -4373,7 +4425,7 @@ TriggerType_ThumpSkillValue, # 重击增加技能固定值伤害 88 TriggerType_HitValue, # 记录命中个数 89 TriggerType_ChangeSkillEff, # 改变技能特效广播 90 -) = range(1, 91) +) = range(1001, 1091) #不可以佩戴翅膀的地图 -- Gitblit v1.8.0