传奇法师小退上线自动开盾脚本写法

来源: 作者: 点击:
法师小退再上线时人物状态会重置,魔法盾没了,怪堆里一出来就挨揍。要做“上线自动开盾”,不是在客户端写宏,而是改服务端登录触发脚本。主流放两个地方:QManage.txt 的 [@Login],或者 QFunction-0.txt 的 [@UserLogin] / [@PlayReconnection]。小退重连用 [@PlayReconnection] 更贴,全登录用 [@Login] 更稳。

GOM / GEE 引擎(最常用)
在 QFunction-0.txt 里加:

[@PlayReconnection]
IF

CheckJob Wizard
CheckMagic 魔法盾
CHECKMP > 30
ACT

SetMagics 魔法盾 1
SENDMSG 6 已自动开启魔法盾
Break

意思:小退重连触发 → 是法师 → 会魔法盾 → 蓝够 → 强制把魔法盾状态打开。SetMagics 魔法盾 1 是开,0 是关。比模拟按键稳,不会因为没蓝还硬放技能。

如果用的是老命令 Gmexecute TestStatus 11 1,也能用,但 11 是部分引擎里魔法盾的状态号,不是所有端都通用:

[@Login]
IF

CheckJob Wizard
CheckMagic 魔法盾
ACT

Gmexecute TestStatus 11 1
SENDMSG 6 魔法盾已开启
Break

Hero / LEGEND 类引擎
Hero 没有 SetMagics 就走 Gmexecute:

[@Login]
IF

CheckJob Wizard
CheckMagic 魔法盾
ACT

Gmexecute TestStatus 11 1
SendMsg 6 法师护盾已自动开启
Break

部分 Hero 端也支持 AddSkill 只保证“会这个技能”,不会自动放出来:
AddSkill 魔法盾 3
这句是给技能并设等级,不是开盾,别和开盾搞混。

防止重复开盾、蓝不够马上断
加状态判断和蓝判断:

[@PlayReconnection]
IF

CheckJob Wizard
CheckMagic 魔法盾
CHECKMP > 50
CHECKSTATUS 11 0
ACT

SetMagics 魔法盾 1
SENDMSG 6 魔法盾自动开启
Break

CHECKSTATUS 11 0 表示“当前没开盾”才执行;蓝低于 50 不强行开,避免开了瞬间因为蓝不够消失。

延迟开盾(防登录瞬间人物没完全加载)
有些端一登录就开盾会卡同步,用延迟:

[@Login]
IF

CheckJob Wizard
ACT

DelayCall 800 @AutoShield

[@AutoShield]
IF

CheckMagic 魔法盾
CHECKMP > 30
CHECKSTATUS 11 0
ACT

SetMagics 魔法盾 1
SENDMSG 6 上线护盾已恢复
Break

文件位置
GOM/GEE:Mir200\Envir\MapQuest_def\QFunction-0.txt
全局登录:Mir200\Envir\MapQuest_def\QManage.txt 里的 [@Login]
改完别只点 NPC 重载,M2 里执行 @ReloadManage 或重启 M2Server;QFunction 一般 @ReloadNpc 或重启更稳。

常见坑
• 法师职业名:Wizard,战士 Warrior,道士 Taoist;写错全体不触发。

• 中文括号、中文冒号、UTF-8 带 BOM 会导致脚本整段不读;记事本另存为 ANSI。

• CheckMagic 魔法盾 是“学过没学过”;CHECKMP 才是蓝够不够。没蓝开盾,盾出来一帧就没。

- 魔法盾 28 级学,低等级法师别强制开,脚本里加 CHECKLEVELEX > 27。
• TestStatus 11 1 里 11 不是全引擎通用 ID,GOM/GEE 优先用 SetMagics 魔法盾 1。

• 死亡后状态残留,可在 [@PlayDie] 里关盾:

[@PlayDie]
ACT

SetMagics 魔法盾 0

完整可抄版(GOM/GEE 小退重连)
[@PlayReconnection]
IF

CheckJob Wizard
CHECKLEVELEX > 27
CheckMagic 魔法盾
CHECKMP > 30
CHECKSTATUS 11 0
ACT

SetMagics 魔法盾 1
SENDMSG 6 已自动开启魔法盾
Break

这段放 QFunction-0.txt 最稳:小退上线、回城重连、掉线重连都会走 [@PlayReconnection];全登录场景再在 QManage.txt [@Login] 放一份同样逻辑就行。客户端不用动,全部服务端脚本解决。