Mirserver

UserCmd.txt

用户自定义命令配置文件,用于把在线输入的命令映射到 QFunction-0.txt 中对应的 UserCmd 标签。

文件作用

UserCmd.txt 是 Mir200\Envir 下的用户自定义命令配置文件。

这个文件用于把玩家在线输入的自定义命令映射到编号,再由引擎去执行 QFunction-0.txt 中对应的 [@UserCmd编号] 标签脚本。

基本格式

单行格式如下:

命令名称 编号

示例如下:

帮助 1
活动 2
功能入口 3

上面的写法表示:

  • 玩家输入对应在线命令后,引擎会先在 UserCmd.txt 中匹配命令名称
  • 匹配成功后,再按这一行最后的编号去执行对应的 [@UserCmd编号]

与 QFunction-0.txt 的关系

UserCmd.txt 负责“命令对应哪个编号”,QFunction-0.txt 负责“这个编号实际执行什么逻辑”。

对照示例如下:

活动 2

执行关系如下:

  1. 玩家在线输入对应命令,@活动
  2. 引擎在 UserCmd.txt 中找到这条命令对应的编号
  3. 引擎转去执行 QFunction-0.txt 中的 [@UserCmd编号] 标签

参数传递

自定义命令不只能触发固定标签,也可以把命令后的参数传进脚本。

例如脚本中可以读取:

<$PARAM(1)>

这类写法表示读取命令后的第 1 个参数。适合做验证码、开关值、编号值或其他简单输入处理。

与 Command.ini / MemberFunc 的区别

同样是「输入一个命令触发脚本」,引擎里有两套机制,配置位置和落点都不同:

机制配置文件触发落点说明
UserCmdEnvir\UserCmd.txtQFunction-0.txt 中的 [@UserCmd编号]自定义命令触发,通过调用功能脚本里的相应脚本实现
MemberFuncEnvir\Command.ini登录脚本 QManage.txt 中的 [@MEMBER] 段玩家在线输入指定命令弹出菜单脚本功能

MemberFunc 的格式为:在 Command.ini 内定义命令名称(名称可自定义),例如 MEMBERFUNC=管理,玩家输入 @管理 后,引擎会运行 QManage.txt 里 [@MEMBER] 段的内容。

QManage.txt
[@MEMBER]
#IF
#SAY
你好,管理员。
Command.ini
MEMBERFUNC=管理

两套机制不要混用:按 UserCmd.txt 的思路配置 MemberFunc 不会生效,[@MEMBER] 也必须写在 QManage.txt 而不是 QFunction-0.txt。

使用时应注意

  • UserCmd.txt 中的编号必须和 QFunction-0.txt 里的 [@UserCmd编号] 完全对应
  • 同一个编号只应承接一组明确用途,避免多个命令共用同一编号后互相影响
  • 如果命令带参数,脚本里要先判断参数是否存在、格式是否正确,再继续执行后续逻辑
  • 如果输入命令后没有反应,优先检查命令名称、编号映射和 QFunction-0.txt 中是否存在对应标签
  • 部分版本也支持在后台的自定义命令列表中维护这类命令;如果当前区已在线运行,优先以实际维护入口为准

相关阅读