本文脚本核心实现:仅GM可点击NPC开启全服/个人双倍经验,普通玩家点击无响应或提示无权限,基于GM权限判定命令编写,适配主流M2引擎,支持全服生效、时长设置及提示反馈功能。
一、核心命令与权限判定逻辑
脚本关键在于区分GM与普通玩家权限,核心命令及逻辑如下,确保权限判定精准无遗漏。
1. 核心权限命令
- CHECKADMIN:GM权限检测命令,格式为「CHECKADMIN 权限等级」,权限等级0为最高GM权限,数值越大权限越低,通常用0级权限控制核心功能。
- MAPM2EXE:执行全服命令,用于开启全服双倍经验,格式为「MAPM2EXE DoubleExp 时长(分钟) 倍率」。
- SENDMSG/MESSAGEBOX:结果反馈命令,分别用于聊天框提示、弹窗提示,区分GM操作反馈与普通玩家无权限提示。
- CLOSE:关闭NPC对话框,避免普通玩家误操作停留界面。
2. 权限判定逻辑
优先通过CHECKADMIN命令检测玩家权限,仅0级GM通过检测可执行开启双倍经验操作;普通玩家检测不通过,直接提示无权限并关闭对话框,确保功能仅GM可用。
二、完整脚本写法(分场景适配)
场景一:GM点击开启全服双倍经验(指定时长)
适用于GM通过NPC一键开启全服双倍经验,设置固定时长,全服玩家同步享受加成,脚本放入QManage.txt(路径:MirServer\Mir200\Envir\Market_Def\QManage.txt)。
### 脚本代码
#SAY
GM专属双倍经验控制
开启全服2小时双倍经验
关闭全服双倍经验
(@OpenDoubleExp)
#IF
CHECKADMIN 0 // 仅0级GM可执行
#ACT
MAPM2EXE DoubleExp 120 2 // 开启120分钟(2小时)2倍经验
SENDMSG 1 【GM指令】全服双倍经验已开启,持续2小时,祝各位勇士升级愉快! // 全服公告
MESSAGEBOX 全服双倍经验开启成功,时长2小时。 // GM个人弹窗提示
#ELSEACT
MESSAGEBOX 你无权限执行此操作,仅GM可开启双倍经验! // 普通玩家提示
CLOSE // 关闭对话框
(@CloseDoubleExp)
#IF
CHECKADMIN 0
#ACT
MAPM2EXE DoubleExp 0 1 // 关闭双倍经验(时长设0,倍率设1)
SENDMSG 1 【GM指令】全服双倍经验已关闭,感谢各位勇士参与!
MESSAGEBOX 全服双倍经验已关闭。
#ELSEACT
MESSAGEBOX 你无权限执行此操作,仅GM可关闭双倍经验!
CLOSE
场景二:GM点击开启个人双倍经验(GM专属)
适用于仅GM个人享受双倍经验,不影响全服玩家,脚本如下:
(@OpenGMMyDoubleExp)
#IF
CHECKADMIN 0
#ACT
SETON 100 120 // 开启100号变量,持续120分钟(变量编号可自定义)
SENDMSG 5 个人双倍经验已开启,持续2小时,仅本人生效。 // GM个人提示
// 需搭配QFunction脚本添加经验加成逻辑,示例如下(放入QFunction-0.txt):
// #IF
// CHECKVAR 100 = 1
// #ACT
// ADDMAPEXP 2 // 经验倍率设为2倍
#ELSEACT
MESSAGEBOX 无权限操作,仅GM可开启个人双倍经验!
CLOSE
场景三:GM开启双倍经验(可自定义时长)
支持GM输入时长开启双倍经验,灵活调整加成时间,脚本如下:
#SAY
GM专属双倍经验(自定义时长)
输入时长开启全服双倍经验
(@InputDoubleExpTime)
#IF
CHECKADMIN 0
#ACT
INPUTSTR 请输入双倍经验时长(分钟): 1 6 // 输入1-6位数字,限制时长范围
MAPM2EXE DoubleExp %INPUTSTR% 2
SENDMSG 1 【GM指令】全服双倍经验已开启,持续%INPUTSTR%分钟!
MESSAGEBOX 双倍经验开启成功,时长%INPUTSTR%分钟。
#ELSEACT
MESSAGEBOX 无权限执行此操作!
CLOSE
三、脚本部署及适配要点
1. 脚本路径:所有NPC交互脚本均放入MirServer\Mir200\Envir\Market_Def\QManage.txt,若为自定义NPC,需在对应NPC脚本文件中添加代码,部署后重启M2引擎生效。
2. 权限等级调整:若需让低等级GM(如1级、2级)执行,可修改CHECKADMIN后的数值(如CHECKADMIN 1),具体权限等级对应关系可在引擎配置文件中查询。
3. 命令兼容:部分引擎MAPM2EXE命令格式不同,可替换为ENGINEEXE命令,格式为「ENGINEEXE DoubleExp 时长 倍率」,需根据引擎版本调整。
4. 提示优化:SENDMSG后数字1为全服红色公告,可改为5(黄色个人提示)、7(白色提示);弹窗文本可自定义,贴合服内话术风格。
5. 变量冲突:自定义变量(如场景二中100号变量)需确保唯一,避免与现有脚本变量重复,可在变量清单中登记备案。
四、常见问题排查
1. GM无权限执行:检查CHECKADMIN命令后的权限等级是否与GM实际权限匹配,0级为最高权限,若GM权限为1级,需将命令改为CHECKADMIN 1。
2. 双倍经验不生效:确认引擎支持MAPM2EXE命令,老版本引擎需替换为对应命令;重启M2引擎,确保脚本加载成功;检查时长与倍率参数是否正确,避免格式错误。
3. 普通玩家可操作:排查脚本是否遗漏ELSEACT分支,或CLOSE命令未添加,确保普通玩家检测不通过后直接关闭对话框并提示。
4. 输入时长无效:检查INPUTSTR命令格式,确保参数正确(输入提示、最小位数、最大位数),输入内容需为纯数字,避免特殊字符。

