Mirserver
MapEvent.txt
地图坐标触发表,用于配置地图中指定坐标的丢物、捡物、挖矿、走路和跑步事件。
文件作用
MapEvent.txt 用于配置地图坐标触发事件。
这个文件通常负责下面几类场景:
- 在指定地图坐标上触发走路事件
- 在指定地图坐标上触发跑步事件
- 在指定地图坐标上触发丢物、捡物或挖矿事件
- 把这些触发事件转交给
QFunction-0.txt中的对应标签执行
如果遇到某个地块踩上去没有反应、丢物或捡物不触发、挖矿点不执行事件,通常都要先检查这里。
基本结构
MapEvent.txt 通常是一行一条地图事件配置。
常见结构如下:
地图编号 坐标X 坐标Y 触发标识 触发条件 触发概率 事件标签
例如:
3 333 333 -1:1 1:回城卷:0 2 1:@MapEventDropItem
3 338 331 -1:1 3:*:0 2 1:@MapEventMine
3 330 330 -1:1 4:*:0 2 1:@MapEventWalk
3 331 335 -1:1 5:*:0 2 1:@MapEventRun
这几行分别表示:
- 在地图
3的333,333位置配置丢物触发 - 在地图
3的338,331位置配置挖矿触发 - 在地图
3的330,330位置配置走路触发 - 在地图
3的331,335位置配置跑步触发
列序说明
MapEvent.txt 常见字段顺序如下:
| 列序 | 字段 | 说明 |
|---|---|---|
| 1 | 地图编号 | 事件所在地图 |
| 2 | 坐标X | 触发点 X 坐标 |
| 3 | 坐标Y | 触发点 Y 坐标 |
| 4 | 触发标识 | 常见写法为 -1:1 |
| 5 | 触发条件 | 触发类型和附加条件 |
| 6 | 触发概率 | 数值越大,触发概率越低;0 通常表示必定触发 |
| 7 | 事件标签 | 常见写法为 1:@标签名 |
触发条件的常见写法
第 5 列通常写成下面这种结构:
类型:对象:模式
常见类型包括:
| 类型值 | 常见写法 | 说明 |
|---|---|---|
1 | 1:回城卷:0 | 丢物触发 |
2 | 2:回城卷:0 | 捡物触发 |
3 | 3:*:0 | 挖矿触发 |
4 | 4:*:0 | 走路触发 |
5 | 5:*:0 | 跑步触发 |
这里可以直接这样理解:
对象位置可以写具体物品名,也可以写*模式一般按当前引擎实际规则使用,常见资料里多见0
如果当前玩法只是做走路、跑步或挖矿触发,通常第 5 列直接会写成 4:*:0、5:*:0、3:*:0 这类形式。
事件标签怎么执行
第 7 列通常写成下面这种格式:
1:@MapEventWalk
这表示当前坐标被触发后,会继续去执行对应的事件标签。
这类标签通常写在 Market_Def/QFunction-0.txt 中。
例如:
3 330 330 -1:1 4:*:0 0 1:@MapEventWalk
[@MapEventWalk]
#ACT
SENDMSG 1 <$USERNAME> 在 (%m,%x,%y) 触发了走路事件
也就是说,MapEvent.txt 负责登记“哪张地图的哪个坐标触发哪个标签”,真正的脚本逻辑通常写在 QFunction-0.txt。
与 QFunction-0.txt 的关系
这两个文件不要混淆:
MapEvent.txt:地图事件触发表,决定哪里触发什么QFunction-0.txt:地图坐标触发后执行的常规脚本
如果坐标本身没有触发,优先查 MapEvent.txt;如果已经触发但没有执行到预期逻辑,优先查 QFunction-0.txt。
常见排查思路
如果地图坐标事件不生效,可优先按下面顺序检查:
- 地图编号和坐标是否写对
- 第 5 列触发类型是否与实际玩法一致
- 第 6 列概率是否写成了不易触发的值
- 第 7 列标签名是否真的存在于
QFunction-0.txt - 同一坐标是否写了多条互相冲突的事件
如果问题同时涉及地图参数或坐标相关脚本联动,通常还要一起检查这些文件:
MapInfo.txtQFunction-0.txt
