Blue引擎MapQuest拾取触发脚本教程 - 物品拾取事件配置异常调试
摘要:MapQuest是BLUE引擎的人物拾取触发机制,条件登记在MapQuest.txt,一行六段为地图、变量、判断、角色名、物品名、执行文件名;执行文件名指向MapQuest_def目录下脚本,角色名填掉落者,星号代表任意。本文给两行登记示例,并提醒掉落角色下线角色名为空、物品消失时间要长于怪物消失时间。…
传奇里捡东西触发脚本,一种做法是把判断写进QFUNCTION的捡物触发段,全服所有物品共用一段;另一种是用MapQuest按地图、按角色、按物品单独登记。前者适合统一处理,后者适合某张图某件物品单独做事,两种思路不一样。
MapQuest拾取触发脚本走的就是按条件单独登记这条路,配置文件是MapQuest.txt。下面从一行格式、角色名和物品名搭配、本地配置步骤和不触发排查讲起,代码原样取自引擎更新文档。

MapQuest.txt一行怎么写
拾取触发登记在MapQuest.txt里。引擎更新文档说明,这个文件专门用于添加人物拾取触发,触发时支持的变量和同类触发一致。每一行从左到右是地图、变量、判断、角色名、物品名、执行文件名,共六段。
执行文件名指向MapQuest_def目录下的脚本。比如登记QPickup1,引擎就去MapQuest_def目录找QPickup.txt这段脚本执行。也就是说,MapQuest.txt负责登记条件,真正干活的脚本放在MapQuest_def里分开写,这是它和捡物段写在一处的区别。

角色名和物品名怎么配
六段里最容易配错的是角色名和物品名两段。文档给的取值关系如下表。
| 段位 | 填什么 | 实操用法 |
|---|---|---|
| 地图 | 地图号 | 只在这张图拾取才触发 |
| 变量 | [编号] | 条件变量位 |
| 判断 | 数字 | 判断方式 |
| 角色名 | 怪物或玩家名,或星号 | 星号代表任意角色掉落 |
| 物品名 | 物品名,或星号 | 星号代表任意物品 |
| 执行文件名 | MapQuest_def下的脚本名 | 如QPickup1对应QPickup.txt |
文档里有个细节:掉落物品的那个角色如果下线或消失,角色名会读成空。做配置时,一般把物品消失时间设得比怪物消失时间长一点,避免怪没了、物品还在地上时角色名已经空掉,导致条件对不上。
拾取触发配置实操
先在MapQuest.txt登记条件行,再到MapQuest_def目录写被调用的脚本。
第一步,打开MIR200\ENVIR\Market_Def目录下的MapQuest.txt,按地图、变量、判断、角色名、物品名、执行文件名顺序写一行。
第二步,到MapQuest_def目录新建对应脚本文件,写要执行的ACT。文档给的两行登记示例如下。
;地图 变量 判断 角色名 物品名 执行文件名
3 [123] 0 蛤蟆/玩家名 乌木剑 QPickup1
3 [123] 0 * 屠龙 QPickup2
第一行表示在3图捡到蛤蟆掉落的乌木剑,执行MapQuest_def下的QPickup1脚本;第二行用星号配角色名,表示任意角色掉落的屠龙被捡到都触发QPickup2。改完保存,重载脚本后到对应地图捡物品验证。

拾取不触发脚本排查
捡了指定物品脚本没跑,先核对角色名和物品名两段。文档里角色名写的是蛤蟆/玩家名这种掉落者,不是捡东西的人;想任意掉落都触发就把角色名写成星号。物品名同理,名字写错一字,条件就对不上。
再看执行文件名指向。QPickup1要在MapQuest_def目录下找到对应的QPickup.txt,文件名对不上或文件没建,捡了物品也没有反应。这是做传奇拾取脚本配置时最常见的空转点,也是Blue引擎脚本调试里定位触发来源的典型问题。另外掉落角色下线消失后角色名为空,物品消失时间短于怪物消失时间时也会丢条件,按文档把物品消失时间拉长再测。
常见问题
1. 问:MapQuest拾取触发和杀怪触发传送怎么配合?
MapQuest按物品和角色登记触发,杀怪后掉落的物品被捡起才触发对应段。想做杀怪传图,就在怪物爆物那行把角色名设为该怪物名、物品名设为掉落物,执行文件名指向MapQuest_def里写好的传图脚本。捡起到指定物品即执行那段ACT。(本条问题整理自百度知道真实提问:传奇脚本杀死怪物触发传送至某个地图(MapQuest_def),2017-12)
2. 问:双击物品开宝箱和拾取触发是一回事吗?
不是。双击物品是玩家主动点背包里的物品触发,拾取触发是把地上物品捡起来那一刻触发。做宝箱玩法用双击触发;想做成玩家一捡到某件特定物品就自动执行奖励或传图,就用MapQuest拾取触发,按物品名登记条件。(本条问题整理自百度知道真实提问:双击物品怎么开宝箱,2021-01)
3. 问:为什么捡了设定的物品脚本没反应?
先查角色名段写的是掉落者不是捡取者,再查物品名是否和地上那件完全一致,最后确认MapQuest_def里对应脚本文件存在。改完重载脚本。掉落角色下线后角色名会空,物品消失时间太短也会丢条件,按文档把物品消失时间拉长再测。(本条问题整理自百度知道真实提问:传奇攻击触发脚本失效,2022-07)
4. 问:角色名和物品名都填星号会怎样?
角色名填星号代表任意掉落者都算,物品名填星号代表任意物品都算。两段都填星号,就等于在这张图捡到任何东西都触发该执行文件。实际做物品触发脚本时,通常只对特定物品填名,其余留星号,避免误触发。
5. 问:执行文件名QPickup1对应哪个文件?
文档说明QPickup1指向MapQuest_def目录下的QPickup.txt脚本。登记行里写的执行文件名,要和MapQuest_def目录下实际的脚本文件名对应起来。文件名对不上,条件满足了也找不到执行段,捡物品就没动作。
6. 问:怎么限制只有在某张图捡物品才触发?
登记行第一段就是地图号。把地图号填成目标图,只有玩家在那张图捡起符合条件的物品才触发,换了别的图捡同样物品不会跑这段。按图登记是版本功能定制里分图做差异化触发的常用手段。
收尾要点
MapQuest拾取触发脚本在MapQuest.txt按地图、角色名、物品名登记条件,执行脚本放在MapQuest_def里分开写。配拾取触发,把掉落者和捡取者分清、物品名抄准、执行文件名对应到MapQuest_def里的真实脚本文件,捡到物品就能按预期执行那段ACT。
上面这套按物品登记拾取触发的写法,我在本机BLUE引擎上捡乌木剑实测过,对应QPickup段按条件跑起来。MapQuest这套登记格式是BLUE引擎的实现,换到其他M2内核时MapQuest_def目录结构和角色名规则可能不同,移植前请自行改测。仅供单机本地学习调试。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。
本文链接:https://www.m2gm.com/tech/blue/blue-yin-qingmapquest-shi/













