当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇服务端检测指定地图怪物数量脚本编写

热度:
脚本核心命令:CHECKMONMAP

检测地图怪物数量的核心命令是CHECKMONMAP。其语法结构为:CHECKMONMAP地图名怪物名控制符数量。命令执行时,服务端会计算指定地图内符合怪物名的怪物数量,并与给定条件进行比较。

参数顺序参数说明示例

1地图代码或名称D515或祖玛教主之家

2怪物名称(精确)祖玛教主

3比较控制符<(小于)、>(大于)、=(等于)

4比较数量1

基础检测脚本实例

以下为两种最常见的应用场景脚本模板。

实例一:检测地图内“祖玛教主”是否被击杀

此脚本用于判断BOSS是否存活,常用于触发副本下一阶段或发放奖励。
[@CheckBoss]
#IF
CHECKMONMAPD515祖玛教主=0
#ACT
SENDMSG6祖玛教主已被击败,可以进入下一层了。
;此处可接GOTO跳转或GIVE奖励
#ELSESAY
祖玛教主仍然存活,请先消灭它。


脚本解释:
•D515:祖玛教主之家的标准地图代码,也可用地图名称祖玛教主之家。

•祖玛教主:必须与怪物数据库(Monster.DB)中的名称完全一致,否则无法识别。

•=0:判断地图内名为“祖玛教主”的怪物数量是否等于0。若等于0,说明BOSS已被击杀,执行#ACT段。

实例二:检测“祖玛大厅”小怪数量是否达标

此脚本常用于清理任务,判断玩家是否清除了足够多的小怪。
[@CheckClearMonster]
#IF
CHECKMONMAP祖玛大厅祖玛雕像<10
CHECKMONMAP祖玛大厅祖玛卫士<10
#ACT
SENDMSG6恭喜你,大厅内的怪物已清理到指定数量以下!
GIVE声望令牌1
#ELSESAY
祖玛大厅的怪物数量依然很多,请继续清理。(当前雕像和卫士均多于10只)


脚本解释:
•此脚本使用了两个连续的CHECKMONMAP命令,意味着必须同时满足“祖玛雕像少于10只”和“祖玛卫士少于10只”两个条件,才会执行#ACT发放奖励。

进阶应用:多地图循环检测

若需检测多个地图的怪物总数(如全服所有“白野猪”数量),需借助变量和循环标签,逻辑较为复杂。以下是简易循环检测示例:
[@CheckAllMap]
#ACT
MOVP90;初始化计数器P9为0
#IF
CHECKMONMAPD701白野猪>0
#ACT
INCP91;如果D701地图有白野猪,计数器P9+1
#IF
CHECKMONMAPD702白野猪>0
#ACT
INCP91;如果D702地图有白野猪,计数器P9+1
#IF
LARGEP95;判断计数器P9是否大于5
#ACT
SENDMSG1警报!全服白野猪数量超过5只!


常见错误排查

1.怪物名不匹配:脚本中的怪物名必须与数据库Name字段完全一致,包括括号、空格。如数据库为“白野猪(变异)”,脚本写“白野猪”则无效。建议打开Monster.DB核对。
2.地图代码错误:地图代码可在服务端MapInfo.txt中查询,如[D515祖玛教主之家]的代码是D515。使用中文名时,需确保地图配置文件中有对应的别名设置。
3.命令位置:CHECKMONMAP是条件检测命令,必须放在#IF下方。若放在#ACT下,不会执行判断逻辑,只会报错。
4.刷新延迟:怪物被击杀后,其数据从地图中移除有短暂延迟(约1-2秒)。若击杀后立即检测,可能结果仍大于0。可在检测前加入DelayCall2000@Check进行延时。
[顶部]