一、核心触发机制与文件定位
实现法师小退上线自动开盾,核心是利用登录触发标签。脚本需写入服务端目录下的全局管理脚本 QManage.txt 中。当玩家登录游戏时,脚本会自动检测职业并执行开盾命令。
文件路径:D:\MirServer\Mir200\Envir\MapQuest_def\QManage.txt
二、标准自动开盾脚本(GOM/GEE引擎)
在 QManage.txt 文件中找到 [@Login] 段(若无则自行创建),添加以下代码:
[@Login]
#IF
checkjob wizard ; 检测职业是否为法师
CHECKLEVELEX > 35 ; 可选:检测等级大于35级(避免小号触发)
CheckMagic 魔法盾 ; 可选:检测是否已学习魔法盾技能
#ACT
SetMagic 魔法盾 1 ; 强制开启魔法盾(状态1为开启)
SENDMSG 6 魔法盾已自动开启!
break
命令解析:
• checkjob wizard:精准判定职业为法师,战士(warrior)和道士(taoist)不会触发。
• SetMagic:GOM/GEE引擎专用命令,直接设置技能开启状态,比使用GM命令更稳定。
• SENDMSG 6:在游戏内左下角提示玩家,便于确认脚本生效。
三、HEROM2/LEGEND引擎兼容写法
若使用老版本的HEROM2引擎,通常需使用 Gmexecute 命令来模拟开盾状态:
[@Login]
#IF
checkjob wizard
CHECKLEVELEX > 0
#ACT
Gmexecute TestStatus 11 1 ; 11通常代表魔法盾的状态编号
break
注意:不同引擎的状态编号(11)可能不同,若无效需查看引擎说明书确认“魔法盾”对应的Status值。
四、常见错误与排查
1. 脚本不生效:
◦ 检查 QManage.txt 文件名是否正确,且位于 MapQuest_def 文件夹内。
- 确认脚本中未使用全角符号(如中文括号),所有符号应为英文半角。
- 修改脚本后,必须在M2Server(游戏控制器)中输入命令 @ReloadManage 重载脚本,或重启M2使其生效。
2. 开盾但无动画效果(卡盾):
◦ 这是常见的数据不同步问题。可在脚本中加入延迟命令,如 DelayGoto 1000 @延迟开盾,在 @延迟开盾 段中再执行 SetMagic,给客户端留出加载时间。
3. 技能名称不匹配:
◦ CheckMagic 和 SetMagic 命令中的“魔法盾”必须与 Skill.DB 数据库中的技能名完全一致。若数据库名为“魔法盾3”,则脚本也需改为“魔法盾3”。
五、扩展:死亡后自动开盾(可选)
若希望法师死亡复活后也能自动开盾,可在 QFunction-0.txt 文件的 [@PlayDie](死亡时)或 [@Relive](复活时)标签下,添加与上述 [@Login] 类似的检测代码。但需注意,复活开盾逻辑需配合变量控制,避免在安全区频繁触发。
部署流程:编辑 QManage.txt → 添加 [@Login] 脚本 → 保存 → M2输入 @ReloadManage 重载 → 小退上线测试。

