添加英雄合击不是单写一个 txt 就行,要引擎开关、数据库技能、QF 触发脚本、NPC 领书、快捷键五处一起动。1.76 原版和纯复古端没有英雄模块,必须先换合击版服务端(Hero/LEG/GOM/GEE/BLUE 合击版),否则写啥都不生效。
一、引擎层先开英雄与合击
• 打开 M2Server→选项→功能设置→英雄系统,勾“开启英雄系统”“开启合击技能”,设英雄召唤等级(常用 40 或 43)。
• 改 Mir200\!Setup.txt 或 Config.ini,搜 HeroMode=1(没有就加一行),HeroRage 相关参数按版本填;GOM 还要在“模块管理”确认 HeroModule.dll 已加载。
- 合击设置里调伤害系数、需怒气值(如 500)、火龙之心消耗,保存后重启 M2。
二、Magic.DB 加合击技能记录
用 DBC2000 开 Mir200\DB\Magic.DB(或 Magic.txt 视引擎而定):
- 新增一行,Name 填“破魂斩/雷霆一击/噬魂沼泽/火龙气焰/劈星斩/末日审判”,Job 按主号职业填,Skill 设唯一 ID(如 101 雷霆一击、501 破魂斩)。
• Effect 类型选合击特效编号,Spell 填耗蓝,Power 填最小/最大伤害基准,Range 填 8~10。
- 英雄侧同名技能在 HeroMagic.DB 再加一条,或者引擎配 HeroSkillLink 让英雄共享主号技能 ID。
改完关 M2 存盘再开,热重载读不到 DB 改动。
三、QFunction-0.txt 写合击触发段
路径 Mir200\Envir\Market_Def\QFunction-0.txt,文件末尾追加(以战战破魂斩为例,GOM/Hero 语法):
[@ComboSkill_ZZ]
#IF
CHECKHEROEXIST
CHECKHEROONLINE
CheckHeroJob WARRIOR
CheckJob WARRIOR
CHECKRAGE 500
CHECKITEM 火龙之心 1
#ACT
CASTCOMBOSKILL 501
TAKE 火龙之心 1
SetRage -500
SENDMSG 6 你与英雄释放合击【破魂斩】!
#ELSEACT
SENDMSG 6 怒气不足或火龙之心能量不足,无法合击
各引擎命令字略有差异:Hero 用 CHECKHEROEXIST+CASTCOMBOSKILL,GOM 用 CHECKHEROONLINE+ComboAttack 1,GEE 用 HEROCOMBO 501;以所用引擎命令手册为准,别把 GOM 脚本硬塞进 Hero。
标签 [@ComboSkill_ZZ] 不是自动被调用的,要在按键或 NPC 里 GOTO 过来,或者绑到引擎“合击快捷键”上(见第五节)。
四、NPC 脚本发合击技能书(让玩家学到)
Market_Def 新建“英雄合击导师.txt”,MerChant.txt 加一行挂到土城(333 地图):
[@main]
选择职业组合领取合击技能书:\
<战战-破魂斩/@hj_zz> <战法-雷霆一击/@hj_zf> <道道-噬魂沼泽/@hj_tt>
[@hj_zz]
#IF
CheckJob WARRIOR
CheckHeroJob WARRIOR
CheckLevel 40
#ACT
GIVE 破魂斩技能书 1
SENDMSG 6 领取成功,双击技能书学习破魂斩
#ELSEACT
SENDMSG 6 需主号与英雄均为战士且等级≥40
玩家双击包裹里“破魂斩技能书”后,引擎内部把技能 ID 501 写进主号技能表,同时标记英雄可协放;这一步必须有,光写 QF 不发红书,玩家按建没反应。
五、快捷键与火龙之心绑定
• 引擎默认合击键多为 Ctrl+S 或 F11,在 M2→按键设置→合击键 改;GOM 也可在 HotKey.ini 写 F11=@ComboSkill_ZZ(前提是 QF 里有这标签且被按键系统识别,部分引擎只认内部 CASTCOMBOSKILL,不认 GOTO 标签,优先用引擎原生合击键)。
- 火龙之心放英雄背包,StdItems.DB 里 Ac/Stdmode 按版本原表抄,DuraMax 设 10000,每次合击 TAKE 1 耐久;没有火龙之心合击不触发,这是最常见“按了没反应”原因。
- 怒气值靠打怪积累,Hero.ini 里 HeroRageAdd=10 每只怪加 10,方便测试;正式环境再调小。
六、重载与排错顺序
1. 改完 Magic.DB / HeroMagic.DB → 关 M2 存盘重开。
2. 改完 QFunction-0.txt、Market_Def 的 NPC → M2 点“重新加载脚本”或“刷新 NPC”,Hero/GOM 热重载即可;GEE 点“重新加载所有脚本”。
3. 进游戏建主号(战士)→ 40 级 @CallHero 召战士英雄 → 打怪看怒气条 → 满怒按 Ctrl+S/F11。
4. 不触发查三处:M2 日志有无“未知命令 CASTCOMBOSKILL”(命令拼错)、Magic.DB 技能 ID 与脚本里 501 是否一致、HeroModule 是否加载。
5. 合击放出来但没伤害数字:查 Magic.DB 里 Power 字段为 0 或 Effect 编号引擎无对应特效文件,补 Data\*.wil 特效。
七、自定义新合击(非六大原版)
想加“战道灭世斩”之类新版:Magic.DB 加新 ID(如 601),QF 里写 [@ComboSkill_ZD] 用 CASTCOMBOSKILL 601,NPC 发“灭世斩技能书”,客户端 Data 目录放对应图标和 .wil 动作(否则显示空白但服务端仍扣怒气)。Hero 引擎额外在 CustomCombo.ini 配 技能ID=601|名称=灭世斩|伤害公式=(ATK+HeroATK)*1.5。
按“引擎开开关 → DB 加技能 → QF 写触发 → NPC 发书 → 键位绑火龙之心 → 重载测怒气”这套顺序落,合击就能从按了没反应变成满怒自动出招。

