当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

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

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

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

[@PlayReconnection]
IF

CheckJobWizard
CheckMagic魔法盾
CHECKMP>30
ACT

SetMagics魔法盾1
SENDMSG6已自动开启魔法盾
Break

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

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

[@Login]
IF

CheckJobWizard
CheckMagic魔法盾
ACT

GmexecuteTestStatus111
SENDMSG6魔法盾已开启
Break

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

[@Login]
IF

CheckJobWizard
CheckMagic魔法盾
ACT

GmexecuteTestStatus111
SendMsg6法师护盾已自动开启
Break

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

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

[@PlayReconnection]
IF

CheckJobWizard
CheckMagic魔法盾
CHECKMP>50
CHECKSTATUS110
ACT

SetMagics魔法盾1
SENDMSG6魔法盾自动开启
Break

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

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

[@Login]
IF

CheckJobWizard
ACT

DelayCall800@AutoShield

[@AutoShield]
IF

CheckMagic魔法盾
CHECKMP>30
CHECKSTATUS110
ACT

SetMagics魔法盾1
SENDMSG6上线护盾已恢复
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。
•TestStatus111里11不是全引擎通用ID,GOM/GEE优先用SetMagics魔法盾1。

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

[@PlayDie]
ACT

SetMagics魔法盾0

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

CheckJobWizard
CHECKLEVELEX>27
CheckMagic魔法盾
CHECKMP>30
CHECKSTATUS110
ACT

SetMagics魔法盾1
SENDMSG6已自动开启魔法盾
Break

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