传奇GM专属NPC双倍经验脚本写法:权限控制全解析

来源: 作者: 点击:
本文脚本核心实现:仅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命令格式,确保参数正确(输入提示、最小位数、最大位数),输入内容需为纯数字,避免特殊字符。