在传奇单机游戏中,**自动刷怪NPC**能为玩家提供持续的挑战,类似塔防的波次机制或无限刷怪模式。以下基于LEG引擎的脚本编写逻辑,分步骤实现两种主流需求:
**①进地图自动刷怪,打完一波后定时刷新下一波;
②点击NPC无限刷怪,自动补充死亡怪物数量。**
---
#### **一、基础脚本配置**
1. **创建机器人脚本(定时触发)**
- 打开路径 `D:\MirServer\Mir200\Envir\Robot_def\AutoRunRobot.txt`
- 添加定时任务,例如每30秒执行一次刷怪:
```
#AutoRun NPC SEC 30 @自动刷怪
```
此处 `SEC 30` 表示30秒间隔,可改为分钟(MIN)、小时(HOUR)等。
2. **编写刷怪触发脚本**
- 在 `RobotManage.txt` 中定义刷怪动作:
```
[@自动刷怪]
#IF
#ACT
Param1 盟重省 ; 刷怪地图
Param2 50 ; 初始刷怪数量
Param3 白野猪 ; 怪物名称
MonGen Param1 Param2 Param3
SendMsg 0 [系统] 盟重省已刷新50只白野猪!
```
此脚本会在盟重省地图生成50只白野猪,并发送全服公告。
---
#### **二、两种刷怪模式实现**
**模式1:塔防式波次刷怪(进地图自动触发)**
1. **地图进入触发脚本**
- 在 `QManage.txt` 中添加:
```
[@Login]
#IF
IsOnMap 盟重省 ; 判断玩家是否在盟重省
#ACT
StartTimers 1 30 @下一波怪 ; 30秒后执行下一波
```
2. **波次刷怪逻辑**
```
[@下一波怪]
#IF
CheckRangeMonCount 盟重省 0 0 100 100 < 10 ; 检测地图存活怪物是否少于10只
#ACT
MonGen 盟重省 50 白野猪
SendMsg 0 [系统] 第%s波怪物已刷新!
ResetTimers 1 30 @下一波怪 ; 重置计时器,循环触发
```
此脚本会在当前波次怪物剩余少于10只时,自动生成新一波50只怪。
---
**模式2:点击NPC无限补怪(动态维持数量)**
1. **创建NPC交互脚本**
- 在NPC脚本文件(如`Market_Def\盟重省-3.txt`)中添加:
```
[@main]
欢迎使用无限刷怪功能!\
点击开始刷怪,系统会自动补充死亡怪物。\
<开始刷怪/@刷怪> \
<关闭刷怪/@结束>
```
2. **动态补怪逻辑**
```
[@刷怪]
#ACT
SetOnTimer 1 1 ; 每秒检测一次怪物数量
SendMsg 0 [系统] 无限刷怪已启动!
[@OnTimer1]
#IF
CheckRangeMonCount 盟重省 0 0 100 100 < 50 ; 当前怪物少于50只时补满
#ACT
MonGen 盟重省 50 白野猪
```
此脚本通过定时器每秒检测怪物数量,自动补充至50只。
---
#### **三、注意事项**
1. **路径与语法**:不同引擎(如LEG、GEE)脚本路径可能不同,需参考引擎文档。
2. **刷怪频率**:避免设置过短间隔(如1秒),可能导致服务器卡顿。
3. **测试与调试**:修改脚本后需重启服务端,并在地图中实际测试怪物刷新逻辑。
4. **扩展功能**:可通过变量记录波次(如`INC GLOBAL 波次数`),或添加奖励机制。
通过上述配置,玩家既可体验塔防式渐进挑战,也能通过NPC实现无限刷怪,提升游戏可玩性。

