MapQuest.txt
文件作用
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
[@main]
#ACT
SENDMSG 1 <$USERNAME> 触发了木剑拾取事件
也就是说,MapQuest.txt 负责登记规则,MapQuest_def 负责写具体逻辑。
已确认的触发范围
按 other/引擎chm文档 中现有资料,MapQuest.txt 至少已确认包含下面两类用途:
- 地图任务触发
- 人物拾取触发
因此这篇文档里不再把它简单定义成“杀怪触发配置文件”。
常见排查思路
如果 MapQuest 相关触发没有生效,可优先按下面顺序检查:
- 第一列地图编号是否写对
- 第二列标识是否与当前触发类型匹配
- 第三列判断值是否符合当前项目的实际写法
- 第四列角色名、第五列物品名是否写得过窄
- 最后一列执行文件名在 MapQuest_def 中是否真实存在
如果问题同时涉及地图参数或进入地图后的任务联动,通常还要一起检查这些文件:
- MapInfo.txt
- MapQuest_def
