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

传奇NPC自动刷新内功怪物脚本命令配置定时触发完整实现教程

热度:
在传奇服务端脚本中,实现NPC自动刷新带内功怪物,核心不是只用一条刷怪命令,而是把“定时触发、NPC脚本入口、怪物刷新命令、内功怪物参数、地图坐标、数量控制、重复刷新”组合起来。

如果引擎支持精细化刷怪命令,可以使用MONGENEX来指定是否刷新内功怪物;如果只支持基础刷怪命令,则使用MonGen配合怪物数据库中的内功属性完成。

一、实现思路

NPC自动刷带内功怪,一般分三步:

设置定时触发
通过机器人脚本或定时器,让服务端每隔一段时间执行一次刷怪段落。

编写NPC或机器人脚本段落
在脚本中判断条件,然后执行刷怪命令。

使用刷怪命令刷新内功怪物
通过MONGENEX或MonGen刷新指定怪物,并设置数量、坐标、范围、刷新时间。

如果要求怪物必须是“内功怪”,优先使用MONGENEX,因为它支持“是否内功怪物”参数。

二、涉及的主要命令
命令作用适用场景
MonGen刷新指定怪物基础刷怪

MONGENEX精细化刷怪,可指定内功怪需要控制内功属性时使用

AutoRunNPC机器人定时触发自动循环执行脚本

SetOnTimer个人定时器触发玩家进入后定时执行

Param1/Param2/Param3设置刷怪坐标参数配合MonGen使用

SENDMSG发送系统消息公告刷怪信息

三、MONGENEX命令格式

MONGENEX是BLUE引擎中较常用的精细化刷怪命令,格式如下:

MONGENEX地图文件XY怪物名范围数量是否内功怪物颜色

参数说明:

地图文件:怪物刷新的地图编号或地图文件名
XY:刷怪坐标,例如300300
怪物名:怪物数据库中存在的怪物名称
范围:以坐标为中心刷新的范围
数量:刷新怪物数量
是否内功怪物:1表示内功怪物,0表示普通怪物
颜色:怪物名字颜色,可按引擎支持填写

示例:

MONGENEX3300300白野猪1051BLUE

这条命令表示:

在地图3
坐标300300附近
范围10格内
刷新5只白野猪
设置为内功怪物
名字颜色为BLUE

如果当前引擎不支持MONGENEX,就不能直接使用这个命令,需要改用MonGen,并确保怪物本身在怪物数据库中已经设置为内功怪。

四、MonGen命令格式

MonGen是基础刷怪命令,格式如下:

MonGen怪物名称数量时间

参数说明:

怪物名称:怪物数据库中存在的名称
数量:刷新数量
时间:刷新间隔时间

示例:

MonGen白野猪560

表示刷新5只白野猪,刷新间隔为60秒。

但MonGen本身通常不直接带“是否内功怪物”参数,所以如果要刷内功怪,需要满足以下条件:

怪物名称存在于怪物数据库中。
该怪物在怪物数据库中已经设置成内功怪物。
脚本中通过MonGen调用该怪物名称。

五、NPC脚本自动刷内功怪示例

如果是在NPC脚本中实现自动刷怪,可以这样写:

[@自动刷内功怪]
IF
ACT
MONGENEX3300300白野猪1051BLUE
SENDMSG0[系统]NPC已自动刷新5只内功白野猪。

说明:

@自动刷内功怪:脚本段落名称
IF:条件判断开始
ACT:执行命令开始
MONGENEX:刷新内功怪物
SENDMSG:发送系统公告

如果引擎不支持MONGENEX,可以改成:

[@自动刷内功怪]
IF
ACT
MonGen白野猪560
SENDMSG0[系统]NPC已自动刷新5只白野猪。

前提是“白野猪”在怪物数据库中已经是内功怪物。

六、机器人定时自动刷怪示例

如果希望NPC不需要玩家点击,而是服务端自动定时刷新,可以使用机器人脚本。

机器人配置文件:

MirServerMir200EnvirRobot_defAutoRunRobot.txt

机器人脚本文件:

MirServerMir200EnvirRobot_defRobotManage.txt

在AutoRunRobot.txt中添加定时触发:

AutoRunNPCMIN5@刷内功怪

表示每5分钟执行一次@刷内功怪段落。

也可以按秒、小时、每天固定时间执行:

AutoRunNPCSEC60@刷内功怪

AutoRunNPCHOUR1@刷内功怪

AutoRunNPCRUNONDAY15:00:00@刷内功怪

然后在RobotManage.txt中写执行内容:

[@刷内功怪]
IF
ACT
MONGENEX3300300白野猪1051BLUE
SENDMSG0[系统]内功白野猪已刷新,坐标地图3,300:300附近。

这样服务端会每隔指定时间自动刷新内功怪物。

七、NPC点击后开启自动循环刷怪

如果希望玩家点击NPC后,NPC开始自动循环刷内功怪,可以使用定时器。

NPC脚本示例:

[@开启自动刷怪]
IF
ACT
SetOnTimer560
SENDMSG0[系统]内功怪物自动刷新已开启。

[@OnTimer5]
IF
ACT
MONGENEX3300300白野猪1051BLUE

说明:

SetOnTimer560:开启5号定时器,每60秒执行一次
@OnTimer5:5号定时器触发段落
MONGENEX:刷新内功怪物

如果需要停止自动刷怪,可以写一个关闭段落:

[@关闭自动刷怪]
IF
ACT
SETOFFTIMER5
SENDMSG0[系统]内功怪物自动刷新已关闭。

八、完整脚本结构示例

下面是一个比较完整的NPC自动刷内功怪脚本结构。

[@自动刷内功怪]
IF
ACT
Param13300300
Param2300
Param3300
MONGENEX3300300白野猪1051BLUE
SENDMSG0[系统]内功白野猪已刷新。

如果引擎支持Param1、Param2、Param3,可以先设置坐标参数,再执行刷怪命令。

如果不需要坐标参数,可以直接写:

[@自动刷内功怪]
IF
ACT
MONGENEX3300300白野猪1051BLUE
SENDMSG0[系统]内功白野猪已刷新。

九、参数修改方法

修改刷新数量

把数量参数改大或改小即可。

MONGENEX3300300白野猪1051BLUE

其中5是数量。

改成10只:

MONGENEX3300300白野猪10101BLUE

修改刷新范围

范围参数控制怪物刷新区域大小。

MONGENEX3300300白野猪1051BLUE

其中10是范围。

改成20格范围:

MONGENEX3300300白野猪2051BLUE

修改刷新坐标

坐标直接改地图中的X和Y。

MONGENEX3300300白野猪1051BLUE

改成350320:

MONGENEX3350320白野猪1051BLUE

修改地图编号

地图编号要和实际地图文件对应。

例如地图3是盟重省,就写:

MONGENEX3300300白野猪1051BLUE

如果是其他地图,需要替换成对应地图编号。

修改是否内功怪物

MONGENEX中的“是否内功怪物”参数:

0:普通怪物
1:内功怪物

普通怪物:

MONGENEX3300300白野猪1050BLUE

内功怪物:

MONGENEX3300300白野猪1051BLUE

十、常见错误和排查方法

怪物不刷新

检查以下几点:

怪物名称是否正确。
怪物是否存在于怪物数据库中。
地图编号是否正确。
坐标是否在地图范围内。
脚本是否重新加载。
引擎是否支持MONGENEX。

如果MONGENEX不生效,可以先测试MonGen:

MonGen白野猪560

如果MonGen可以刷出怪物,说明基础刷怪正常,问题可能在MONGENEX参数或引擎支持上。

怪物刷出来但不是内功怪

这种情况通常有两个原因:

脚本中“是否内功怪物”参数写成了0。
怪物数据库中该怪物没有设置成内功怪。

解决方法:

MONGENEX3300300白野猪1051BLUE

确认“是否内功怪物”参数为1。

如果使用MonGen,则需要检查怪物数据库,确保该怪物本身是内功怪物。

脚本不自动执行

如果NPC脚本没有自动执行,说明缺少触发方式。

常见触发方式有三种:

玩家点击NPC触发。
机器人脚本定时触发。
个人定时器触发。

如果只是写了:

[@自动刷内功怪]
IF
ACT
MONGENEX3300300白野猪1051BLUE

但没有调用这个段落,脚本不会自动运行。

需要配合:

AutoRunNPCMIN5@自动刷内功怪

或者:

SetOnTimer560

怪物刷新太多导致卡顿

自动刷怪不要设置过短间隔。

例如:

AutoRunNPCSEC1@刷内功怪

每秒刷一次,如果每次刷新数量较多,容易造成怪物堆积和性能压力。

建议改成:

AutoRunNPCSEC30@刷内功怪

或者:

AutoRunNPCMIN1@刷内功怪

如果地图中怪物数量已经很多,可以先判断数量再刷新:

[@刷内功怪]
IF
checkmonmap320
ELSEACT
MONGENEX3300300白野猪1051BLUE

表示当地图3中怪物数量不足时再刷新,避免无限堆积。

十一、推荐配置方式

如果目标是NPC自动刷带内功怪,推荐使用下面这种结构:

[@刷内功怪]
IF
ACT
MONGENEX3300300白野猪1051BLUE
SENDMSG0[系统]内功白野猪已刷新。

机器人定时配置:

AutoRunNPCMIN5@刷内功怪

如果引擎不支持MONGENEX,则使用:

[@刷内功怪]
IF
ACT
MonGen白野猪560
SENDMSG0[系统]白野猪已刷新。

并确保怪物数据库中的白野猪已经设置为内功怪物。

十二、注意事项

MONGENEX不是所有引擎都支持,使用前要确认当前引擎是否支持该命令。
MonGen是基础刷怪命令,通常兼容性更好,但不一定支持直接指定内功属性。
怪物名称必须和怪物数据库中的名称完全一致。
地图编号、坐标、范围必须合法,否则可能刷不出怪物。
自动刷怪间隔不要太短,避免怪物数量过多。
修改脚本后需要重新加载NPC脚本、机器人脚本或重启相关配置。
如果要求怪物一定是内功怪,优先使用MONGENEX的“是否内功怪物”参数。
如果使用MonGen,必须确保怪物本身在怪物数据库中已经是内功怪。

实现传奇NPC自动刷带内功怪,最稳定的写法是使用机器人定时触发,再调用MONGENEX刷新指定地图、指定坐标、指定数量、指定范围的内功怪物。如果引擎不支持MONGENEX,则改用MonGen,并通过怪物数据库控制内功属性。
[顶部]