传奇里“脚本释放技能”分两条完全不通的体系:服务端 M2 脚本(QF/QFunction/HeroAI 里写,给 NPC、触发、英雄 AI 用)和客户端脱机/辅助挂机脚本(你前面写的那种全局+挂机文本)。两者命令不一样,混着写必然按了不放。
一、服务端脚本释放技能(M2 侧)
通用引擎(GOM/GEE/HERO/翎风)核心命令:
• 有施展动作:ReleaseMagic 技能ID 强化(0/1) 等级 目标(1攻击对象/2自身)
• 无动作(推荐,不吃后摇):ReleaseMagicEX 技能ID 强化 等级 目标
- 翎风系扩展:ReleaseMagicEX 技能ID 强化 等级 目标 是否算CD(0算/1不算) 是否伤害触发(0否/1是)
• 英雄释放前缀加 H. :H.ReleaseMagicEX 技能ID 强化 等级 目标
- 分身前缀 FS. :FS.ReleaseMagicEX ...
技能 ID 去 D:\Mirserver\Mir200\Envir\MagicList.txt 或 Skill.DB 查,烈火一般 10/101,火墙 22,雷电 11,冰咆哮 33,流星火雨 58,合击技能 501 起。目标参数写 1 是对当前锁敌释放,写 2 是给自己上 buff(治愈术、魔法盾)。
触发标签写哪:
• 物理攻击触发 → [@Attack] 下放 ReleaseMagicEX 10 0 3 1 (3级烈火打当前目标)
• 魔法攻击触发 → [@MagicAttack] 下用 Equal <技能ID> 判断本次施法,再跟 ReleaseMagicEX
- 被击触发 → [@Struck] / [@MagicStruck]
• 登录/上线 → [@Login]
• 英雄 AI 独立文件 HeroAI.txt 里写 [@ComboAttack] 控制英雄出招
条件判定必须前置,不然技能放不出来:
IF
CHECKJOB 1 ;1战士2法师3道士
CHECKLEVELEX >= 35 ;够学技能等级
CHECKMAGIC 10 ;已学烈火(10为技能ID)
CHECKMP >= 20 ;蓝够
CHECKTIME 1 ;自定义定时器防连发
ACT
ReleaseMagicEX 10 0 3 1
SETTIMER 1 8 ;烈火8秒冷却锁
注意:在 [@Attack] 里用 ReleaseMagicEX 火墙(持续伤害技)要把“是否伤害触发”置 0,否则火墙每次烫怪再触发 [@MagicStruck] 容易递归死循环。
二、英雄自动放技能(合击服重点)
英雄不是用 ReleaseMagicEX 直接控的,走两条路:
1)M2 侧 HeroAI.txt 写死逻辑:检测 5 格有怪+英雄有蓝 → Act 里 H.ReleaseMagicEX 技能ID 0 等级 1;合击则检测火龙之心+怒气≥100 → HeroSkill 合击ID 或 ComboAttack 1。
2)客户端辅助/脱机脚本模拟按键:Ctrl+E 切英雄攻击态 → Ctrl+W 锁同一目标 → 等黄怒满 → 发 Ctrl+S 放合击;主号内功连击发 Ctrl+D。你前面那段挂机脚本里“战斗段”只写边打边走没写技能,辅助不会自动替你按 Ctrl+D/S,要在辅助“技能设置”页单独勾主号烈火/火墙/连击、英雄自动技能,或脚本里加“按键 Ctrl+D”指令。
三、脱机挂机脚本(你用的那种文本格式)释放技能写法
你之前贴的脚本是“全局脚本+挂机脚本”混合文本,这类格式各辅助解析不同,但释放技能常见写法有三种:
• 直接喊技能名(部分端支持):使用[烈火剑法] / 释放[火墙] / 英雄释放[雷电术]
• 按键模拟(最稳,绕过物品名匹配):按键[Ctrl+D] 放主号连击;按键[Ctrl+S] 放合击;按键[F1] 若你把烈火绑在 F1
• 延迟必须夹在中间:按键[Ctrl+D] 等待[800]毫秒 再下一步,不等待引擎没收到连击内力判定会吞指令
战士挂机示例片段:
<战斗>
如果[自己][职业]==战士
那么按键[Ctrl+D] ;内功连击
等待[1200]毫秒
如果[自己][烈火剑法][可用]==1
那么按键[F1] ;F1绑烈火
等待[800]毫秒
边打边走到[...]
法师挂机示例片段:
如果[自己][魔法]>=30
那么释放[火墙] ;辅助认技能名就放,不认就改按键[F2]
等待[500]毫秒
那么释放[冰咆哮]
道士示例:
英雄释放[施毒术] ;注意很多辅助区分“主号释放”和“英雄释放”两栏
主号释放[灵魂火符]
四、放不出来的硬排查(对照你前面脚本风格)
1. 技能名不是数据库全名:服务端叫“烈火剑法”就写烈火剑法,叫“强化烈火(3级)”就得抄全名,差一字辅助不认。
2. 没锁目标就放指向技:火墙/冰咆哮/烈火都要求 Ctrl+W 锁了怪再按,全局脚本里只写“使用[火墙]”没先锁敌,坐标丢脚下或哑火。
3. 内力/怒气/蓝不满足:连击吃内力(F10内功槽),合击吃黄怒+火龙之心,火墙吃法蓝,脚本不判资源直接按就是空按。
4. 冷却没等:烈火 8 秒、合击 30~60 秒,脚本里按键后不加等待[8000]毫秒,下一轮又按 Ctrl+D 或 F1 被引擎拒。
5. 英雄在休息态:Ctrl+E 没切到攻击/跟随攻击,脚本喊“英雄释放[雷电术]”英雄不动。
6. 改键冲突:F12 里把合击从 Ctrl+S 改成 F1,脚本还发 Ctrl+S 就无效;反之辅助里按键写 F1 但游戏里 F1 绑的是随机传送,也会乱跳。
7. 服务端禁脚本施法:部分 HERO 端在 M2“游戏设置-脚本”里勾了“禁止 ReleaseMagic 触发”,QF 里写百遍也不出,只能走客户端按键模拟。
五、最小可跑服务端示例(战士攻击触发烈火)
路径:Mir200\Envir\QuestDiary\技能触发\烈火.txt
[@Attack]
IF
CHECKJOB 1
CHECKMAGIC 10
CHECKMP >= 20
CHECKTIMER 1
ACT
ReleaseMagicEX 10 0 3 1
SETTIMER 1 8
ELSEACT
;条件不满啥也不做
英雄配合(HeroAI.txt):
[@HeroAutoFire]
IF
CheckHeroOnline
CheckMonsterNear 5
CHECKMAGIC 11
ACT
H.ReleaseMagicEX 11 0 3 1
六、和你前几段脚本的接法
你之前元宝牧场挂机脚本的 <战斗> 段只写了“边打边走到 X Y”没写任何技能指令,辅助默认不会自动放烈火/火墙/合击。要么在辅助 GUI 里勾“主号自动烈火”“主号内功连击 Ctrl+D”“英雄自动技能”“合击怒满自动 Ctrl+S”,要么在 <战斗> 循环里插入:
按键[Ctrl+W] 等待[200]毫秒 按键[Ctrl+D] 等待[1500]毫秒
(战士)如果[自己][烈火可用]==1 那么按键[F1] 等待[8000]毫秒
(合击)如果[英雄][怒气]==满 那么按键[Ctrl+S] 等待[1000]毫秒
坐标前缀 mapid 错了寻路先炸,技能指令根本轮不到执行——和你之前“计算路径错误”是同一类病因,先修坐标再补技能行。
七、各引擎差异速记
• GOM/GEE:ReleaseMagicEX 五参版,H. 前缀控英雄,[@Attack] 可用。
- HERO:ReleaseMagic 四参,HeroAI.txt 单独管英雄,QF 里也能 H.ReleaseMagic。
• 翎风:ReleaseMagicEX 六参,多“是否算CD”“是否伤害触发”两参,火墙务必置触发 0。
- 蓝月/3K 商业端:脚本层常禁 ReleaseMagic,只能走客户端按键模拟 Ctrl+D/W/S 或 F1~F8。
• 你写的“如果[自己][武器][持久]<10 那么使用[修复神水]”这种是中控脱机文本格式,释放技能用“按键[xxx]”比“释放[技能名]”稳,因为前者绕开服务端物品/技能名匹配,直接送键盘消息给客户端。

