当前位置:首页 > 引擎 > Blue引擎

传奇地图怪物数量查询与自动刷新脚本命令教程

admin18小时前2
一、GetMapMonCnt地图怪物数量NPC命令传奇脚本新增专属地图怪物数量获取NPC命令,可精准查询指定地图内多种怪物的实时存活数量,支持批量查询不同怪物数据,适配各类地图刷怪监控、场景触发、玩法定制等传奇版本开发需求。1.1 命令语法格式GetMapMonCnt 地图名 怪物名1|怪物名2|怪…

一、GetMapMonCnt地图怪物数量NPC命令

传奇脚本新增专属地图怪物数量获取NPC命令,可精准查询指定地图内多种怪物的实时存活数量,支持批量查询不同怪物数据,适配各类地图刷怪监控、场景触发、玩法定制等传奇版本开发需求。

1.1 命令语法格式

GetMapMonCnt 地图名 怪物名1|怪物名2|怪物名3... 返回怪物数量的变量1|变量2|变量3

1.2 脚本实操示例

[@main]

#ACT

GetMapMonCnt d605 黑色恶蛆|蜈蚣|邪恶钳虫 M_黑色恶蛆|M_蜈蚣|M_邪恶钳虫

SendMsg 6 黑色恶蛆:<$STR(M_黑色恶蛆)>,蜈蚣:<$STR(M_蜈蚣)>,邪恶钳虫:<$STR(M_邪恶钳虫)>

#SAY

黑色恶蛆:<$STR(M_黑色恶蛆)>,蜈蚣:<$STR(M_蜈蚣)>,邪恶钳虫:<$STR(M_邪恶钳虫)>

二、地图怪物数量不足自动刷新脚本配置

借助传奇地图杀怪触发机制,搭配怪物数量检测功能,可实现地图怪物数量低于设定值时自动刷新怪物,解决地图空怪、刷怪断层、场景活跃度不足等问题,适配石墓、猪洞、复古地图等各类打怪场景优化。

2.1 触发规则设置

[ZD001|D717 石墓七层1] KillFUNC(1)

2.2 地图怪物数量专属变量说明

新增全局怪物数量获取变量:<$MapMonCnt(地图名.怪物名)>,可直接调用读取指定地图指定怪物数量,返回值规则清晰,方便脚本逻辑编写:

1. 地图无效时,统一返回-1;

2. 怪物无效或未参与数量统计时,统一返回-2;

3. 仅怪物表中StatMask参数包含1的怪物,会被纳入数量统计,使用前需核对怪物表配置。

2.3 怪物数量检测&自动刷新完整脚本

[@KillPlayMon1]

#ACT

;获取当前杀死怪物地图的怪物数到 S怪物数量 变量上

MOV S怪物数量 <$MapMonCnt(<$CurrentMap>.<$Param(0)>)>

#IF

;检测 此怪数量小于10就执行刷新

CompVal <$STR(S怪物数量)> < 10 int

#ACT

;用于统计刷新了多少只,看个人需要是否统计

INC G刷怪 10

;利用延迟跳转 传递 怪物名怪物数地图

DelayCall 1000 ~MobCurMob <$Param(0)> <$MapMonCnt(<$CurrentMap>.<$Param(0)>)> <$CurrentMap>

[~MobCurMob]

#ACT

;用GM命令执行刷怪 ,也可以用其他命令 此处只简单举列

GMEXECUTE MOB <$Param(0)> 10

;展示 当前地图 该怪物 剩余多少只,总刷新了多少只

sendmsg 0 当前地图【<$STR(S_CONTEXT[2])>】刷了【<$STR(S_CONTEXT[0])>】怪物【<$STR(S_CONTEXT[1])>】只,当前总刷新【<$STR(G刷怪)>】只

三、DelayCall延迟命令参数传输扩展

原版传奇DelayCall延迟跳转命令存在参数覆盖问题,重复执行脚本时易出现变量数据错乱、逻辑失效等BUG。本次对该命令进行功能扩展,支持5个上下文参数传输,彻底解决变量覆盖问题,提升脚本运行稳定性。

3.1 原版命令错误用例(参数覆盖问题)

[@重复执行]

#act

Mov S_暂存变量 xxxxx

DelayCall 1000 @delayCall

[@delayCall]

#act

; “S_暂存变量”此时很可能已被其他用到“S_暂存变量”的操作所覆盖(特别是对于重复执行的字段),造成错误结果

MapMove <$STR(S_暂存变量)>

问题核心:通用临时变量在多线程、重复触发场景中极易被重置覆盖,导致延迟执行后的脚本读取错误数据。

3.2 扩展后正确使用方法

扩展后新增固定上下文变量 <$STR(S_CONTEXT[0~4])>,专属用于延迟命令参数传输,支持0-4共5个可选参数,独立存储不被覆盖,适配各类复杂延迟脚本逻辑。

; 随后<$STR(S_CONTEXT[0~4])>可以取得参数的内容,此组变量用于传输参数内容,此变量为固定变量,仅可修改[0-4]获取内容

DelayCall 1000 @delayCall <$STR(S_暂存参数0)> 参数1 参数2 参数3 参数4 // 参数0~4为可选项,可以是任意变量

[@delayCall]

#act

; <$STR(S_CONTEXT[0])>此时等于“<$STR(S_暂存参数0)>”,<$STR(S_CONTEXT[1])>等于“参数1”...

MapMove <$STR(S_CONTEXT[0])>

四、总结

本次更新的传奇地图怪物数量查询命令、自动刷怪脚本、延迟命令扩展功能,完美适配传奇复古版本、微变版本、专属版本的开发调试需求,可灵活用于地图活跃度控制、定点刷怪、智能场景触发、脚本逻辑优化等场景,有效解决传统传奇脚本刷怪逻辑单一、参数错乱、数据统计不准等痛点问题。

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

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

本文链接:https://www.9luu.com/510.html

分享给朋友: