Mirserver

MapQuest.txt

地图任务触发表,用于按地图、标识、角色名、物品名等条件调用 MapQuest_def 中的对应脚本文件。

文件作用

MapQuest.txt 用于配置地图任务触发规则。

这个文件通常负责下面几类场景:

  • 按地图和标识触发任务脚本
  • 按角色名或物品名进一步限制触发条件
  • 把触发结果转交给 MapQuest_def 目录中的对应脚本文件

它不应只理解成“杀怪触发配置”。按现有引擎资料,这个文件至少还支持人物拾取触发。

如果某张地图里的拾取触发、地图任务或条件脚本没有执行,通常都要先检查这里。

基本结构

MapQuest.txt 通常是一行一条触发配置。

常见结构如下:

地图编号 [标识] 判断值 角色名 物品名 执行文件名

例如:

3 [123] 0 * 木剑 QPickup1
0139 [001] 0 * * 新手刷怪

这两行可以按下面方式理解:

  • 在地图 3 中,满足 123 这类触发条件时,如果物品匹配木剑,就执行 MapQuest_def 中的 QPickup1 对应脚本
  • 在地图 0139 中,满足 001 这类触发条件时,执行 MapQuest_def 中的新手刷怪脚本

列序说明

MapQuest.txt 常见字段顺序如下:

列序字段说明
1地图编号触发规则所在地图
2标识XXX引擎识别用的触发标识
3判断值常见写法为 0 或 1
4角色名角色过滤条件,不限制时常见写 *
5物品名物品过滤条件,不限制时常见写 *
6执行文件名指向 MapQuest_def 中的脚本文件

关键字段说明

标识XXX

第二列的 XXX 是这条规则的触发标识。

常见资料里能看到 001、123、315 这类写法。它们不是普通备注,而是引擎用于区分触发类型的标记。

如果你在同一张地图里配置了多类任务触发,通常就是靠这一列区分。

判断值

第三列常见值为 0 或 1。

按当前项目中的字段资料,可直接先按“关闭 / 开启”理解:

  • 0:关闭
  • 1:开启

如果项目里已经存在固定写法,维护时优先延续当前项目的实际用法。

角色名与物品名

第四列和第五列用于进一步限制触发条件:

  • 指定角色名时,只对该角色生效
  • 指定物品名时,只对该物品生效
  • 写 * 时,通常表示不限制这一列

这也是 MapQuest.txt 不应只理解成“杀怪触发”的原因之一,因为它可以直接按拾取物品、角色条件去区分执行逻辑。

执行文件名

最后一列不是标签名,而是脚本文件名。

它通常指向 Mir200\Envir\MapQuest_def 目录中的脚本文件。

例如:

3 [123] 0 * 木剑 QPickup1

这一行通常表示去调用 MapQuest_def 目录中的 QPickup1 对应脚本文件。

与 MapQuest_def 的关系

这两个位置不要混淆:

  • MapQuest.txt:负责登记“什么条件下调用哪个脚本文件”
  • MapQuest_def:负责存放被调用的实际脚本内容

可以直接这样理解:

3 [123] 0 * 木剑 QPickup1

也就是说,MapQuest.txt 负责登记规则,MapQuest_def 负责写具体逻辑。

已确认的触发范围

按 other/引擎chm文档 中现有资料,MapQuest.txt 至少已确认包含下面两类用途:

  • 地图任务触发
  • 人物拾取触发

因此这篇文档里不再把它简单定义成“杀怪触发配置文件”。

常见排查思路

如果 MapQuest 相关触发没有生效,可优先按下面顺序检查:

  1. 第一列地图编号是否写对
  2. 第二列标识是否与当前触发类型匹配
  3. 第三列判断值是否符合当前项目的实际写法
  4. 第四列角色名、第五列物品名是否写得过窄
  5. 最后一列执行文件名在 MapQuest_def 中是否真实存在

如果问题同时涉及地图参数或进入地图后的任务联动,通常还要一起检查这些文件:

  • MapInfo.txt
  • MapQuest_def

相关阅读