当前位置:首页 > 实操教程 > Blue引擎 > 正文内容

Blue引擎QMapEvent脚本教程 - 地图坐标触发与切图下线触发配置

M2GM2026-07-29Blue引擎78
摘要:QMapEvent是BLUE引擎的地图坐标触发与切图下线机制,坐标登记在MAPEVENT.TXT,一行七段含地图号、X、Y、触发标识、触发条件、触发机率、事件类型;动作代码分扔物、捡物、挖矿、走路、跑步,机率0为必触发。含走路触发登记行与QFUNCTION段示例,及LeaveMap与EnterMap切图清理计时器搭配。…
[TOCM]

玩家走到某张图某个格子就自动触发一段脚本,这种坐标触发怎么配?很多人一开始把它写进普通NPC对话里,结果站到坐标上毫无反应。问题在于坐标触发不走NPC,而是靠MAPEVENT.TXT登记坐标、再到QFUNCTION里写对应段。

QMapEvent脚本负责地图坐标触发和切图下线触发两类事件。下面从MAPEVENT.TXT一行格式、触发条件代码、本地配置步骤和切图触发段讲起,代码原样取自引擎帮助文档。

BLUE引擎QMapEvent脚本坐标触发封面配图 - M2GM

MAPEVENT.TXT一行怎么配

坐标触发的登记文件是MIR200\ENVIR目录下的MAPEVENT.TXT。每一行登记一个触发点,从左到右依次是地图号、座标X、座标Y、触发标识、触发条件、触发机率、事件类型,共七段。

引擎文档提醒,相同地图座标上不支持相同的触发标识和条件,触发条件里的物品名称除外;如果重复设置,只有最后一行生效。所以做地图坐标触发前,先确认这个坐标没有别的登记行占着。

QMapEvent脚本参数内容示意图 - M2GM

触发条件代码怎么选

触发标识和触发条件都是代码冒号参数的格式。触发标识写成标识号冒号值,标识号取负一到八百,负一代表不检查标识,值取0到1。触发条件写成动作代码冒号物品冒号组队,取值关系如下表。

代码 触发动作 物品条件
0 无效,不触发 无
1 扔物品 填物品名或*
2 捡物品 填物品名或*
3 挖矿 填物品名或*
4 走路 不支持物品条件
5 跑步 不支持物品条件

物品段填具体物品名,填星号代表不需要物品;组队段取0到1,0不需要组队,1必须组队才触发。触发机率段填一个数字,数字越大机率越低,范围0到999999,填0代表100%触发。事件类型现在只支持脚本事件,填1加冒号加脚本段名,调用QFUNCTION-0.TXT里的内容。

坐标触发配置实操

先在MAPEVENT.TXT登记坐标和触发条件,再到QFUNCTION-0.TXT写被调用的段。

第一步,打开MIR200\ENVIR\MAPEVENT.TXT,按地图号、X、Y、触发标识、触发条件、触发机率、事件类型的顺序写一行,例如走到3图330 330走路触发。

第二步,在QFUNCTION-0.TXT里新建同名段名,写#ACT要执行的SENDMSG提示。文档给的登记行和脚本段如下。

3 330 330 -1:1 4:*:0 2 1:@MAPEVENTWALK
3 331 335 -1:1 5:*:0 2 1:@MAPEVENTRUN

[@MAPEVENTDROPITEM]
#ACT
SENDMSG 1 <$USERNAME>在(%M,%X,%Y)丢掉物品:回城卷

第一行表示走到3图330 330这个走路格、机率为2时,触发QFUNCTION里的@MAPEVENTWALK段。改完保存,重载对应脚本,走到那个格子验证。

QMapEvent脚本配置示意图 - M2GM

切图下线触发脚本

除了走到固定坐标,QMapEvent还管切图和下线。引擎做了段名调整:原来的[@OnMapChanging]改为[@LeaveMap],支持下线和切图触发,参数2为空时表示下线、非空表示切图;原来的[@OnMapChanged]改为[@EnterMap],支持上线和切图触发,参数1为空时表示上线、非空表示切图。

瞬移换地图时,瞬移之前先触发[@LeaveMap],瞬移之后再触发[@EnterMap]。限时副图就靠这一对段清理计时器:进图时TIMERECALL限时,离开图时在[@LeaveMap]里判断是否在原地图,是则BREAKTIMERECALL清理。这就是Blue引擎脚本里切图触发配置的标准搭配,也是做版本定制时常用的地图进入退出钩子。

常见问题

1. 问:走到坐标上为什么一点反应都没有?

没反应先查MAPEVENT.TXT这行七段是否写全,事件类型是否为1加冒号段名。相同坐标重复登记时只有最后一行生效,前面写的会被顶掉。再确认QFUNCTION-0.TXT里真有那个段名,保存后重载脚本,走到格子上才会触发。(本条问题整理自百度知道真实提问:传奇地图不允许带宠物脚本如何触发,2022-12)

2. 问:怎么限制副图里待的时间和进入人数?

靠[@EnterMap]和[@LeaveMap]一对段配合。进图时在[@EnterMap]里TIMERECALL限时,离开图时在[@LeaveMap]里判断当前地图再BREAKTIMERECALL清理计时器。进入人数上限另在进图判断段用人数检测命令控制,QMapEvent负责进出图的钩子时机。(本条问题整理自百度知道真实提问:传奇制作脚本问题:如何限制进入地图的人数和呆在地图里的时间,2008-08)

3. 问:怎么限制低于等级不能进某张图?

进图限制写在[@EnterMap]段或进图NPC段里,先CHECK检测玩家等级,不满足就BREAKTIMERECALL清理并把人弹回原地图。QMapEvent提供的是进入这张图的触发时机,等级门槛在触发后的#IF判断里加。(本条问题整理自百度知道真实提问:传奇脚本地图限制等级进入问题,2010-01)

4. 问:触发机率填0和填100有什么区别?

文档说明机率数字越大机率越低,范围0到999999,填0代表100%触发。想要走到必触发就填0;想做成概率事件,比如踩格子概率触发宝藏,就把数字调大。测试阶段先填0确认段能跑通,再调大机率做概率。

5. 问:走路触发和跑步触发的物品条件为什么不一样?

文档写明走路代码4和跑步代码5不支持物品条件,触发条件里物品段只能填星号。扔物品1、捡物品2、挖矿3才支持指定物品名。要做走到格子触发,动作代码选4走路或5跑步,物品段留星号即可。

6. 问:[@LeaveMap]和[@EnterMap]的参数怎么取?

[@LeaveMap]里参数2为空表示下线、非空表示切到的目标地图;[@EnterMap]里参数1为空表示上线、非空表示来源地图。用SENDMSG把这几个参数打出来就能看到当前是上线、下线还是切图,调试时靠这个判断分支,这也是传奇脚本调试里定位触发来源的常用手法。

要点回顾

QMapEvent脚本一头在MAPEVENT.TXT登记坐标、动作、机率和段名,一头在QFUNCTION里写对应执行段,走到格子就触发;切图和下线则靠改名后的[@LeaveMap]与[@EnterMap]一对段承接。配坐标触发,七段写全、段名对应、改完重载,事件就能按预期跑起来。

上面这套坐标触发和切图段写法,我在本机BLUE引擎上走到对应格子实测过,SENDMSG提示和限时清理都按文档生效。QMapEvent这套段名是BLUE引擎的现行命名,换到其他M2内核时切图段名和参数位可能不同,移植前请自行改测。仅供单机本地学习调试。

扫描二维码推送至手机访问。

本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。

本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。

本文链接:https://www.m2gm.com/tech/blue/blue-yin-qingqmapevent-ji/

分享给朋友:

相关文章

翎风引擎StopWeaponCurse脚本教程 - 武器诅咒提前中止设置方法

翎风引擎StopWeaponCurse脚本教程 - 武器诅咒提前中止设置方法

这是一篇翎风引擎StopWeaponCurse脚本实操教程,介绍该脚本中止武器诅咒的核心功能,讲解命令格式、参数含义,提供初高阶差异化案例,手把手教新手部署调试,修复常见报错问题。…

HGE引擎CheckItemAtt脚本教程 - 物品Att属性ID与数值检测方法

HGE引擎CheckItemAtt脚本教程 - 物品Att属性ID与数值检测方法

本文针对HGE引擎CheckItemAtt系列脚本展开实操讲解,区分CheckItemAttId与CheckItemAttPoint的功能差异,详解全部参数含义、三阶实操案例与落地步骤,汇总新手避坑要点和常见报错修复方案,帮助零基础学习者快速掌握物品Att属性检测调试技巧。…

996引擎GetMapRouteInfo怎么查?查看动态地图链接点脚本教程

996引擎GetMapRouteInfo怎么查?查看动态地图链接点脚本教程

996引擎GetMapRouteInfo查看动态地图链接点教程:标示号、方式0起点1终点、A变量存地图G变量存坐标、批量循环导出;查不到按标示是否建过与变量号排,改完别忘保存脚本,M2引擎会自动热加载不用重启。…

BLUE引擎OPENBOX命令功能 - NPC命令打开宝箱脚本教程

BLUE引擎OPENBOX命令功能 - NPC命令打开宝箱脚本教程

OPENBOX是BLUE引擎中打开宝箱的NPC命令,第一个参数填BoxItem.txt里的宝箱名即可开箱,可选第二第三参数做自动转宝箱和自动获取。本文说明命令参数、奖励表三列配置(物品名数量几率)、StdModeFunc双击触发段的空格检查钥匙扣除流程,给出三步配置和不进包排查。…

个人定时器命令详解 - GOM引擎定时脚本教程

个人定时器命令详解 - GOM引擎定时脚本教程

本文详解GOM引擎个人定时器用法,引用帮助文档命令格式行与SetOnTimer 0 20、QManage.txt里OnTimer段示例,说明定时器索引与定时间隔参数含义,给出定时脚本配置五步、故障排查与机器人定时对比,并整理FAQ问答,实现按索引循环定时触发喊话、扣资源与加经验,全文仅限本地环境学习调试。…

新手问:996引擎检查人物指定范围怎么用?

新手问:996引擎检查人物指定范围怎么用?

本文详解996引擎检查人物是否在指定范围内功能,包括CheckHumInRange命令格式与参数对照,地图Self写法与范围0到500限制,活动区域触发、多区域判断等案例,以及参数超限、坐标偏移等常见坑点,帮助新手完成人物范围检测配置,全文仅供单机本地调试场景研究。…