以下是几种在 Hero 引擎单机传奇服务端中将怪物刷新脚本改为无限刷的方法:
**方法一:修改刷怪配置文件**
1. 找到游戏服务器中的刷怪配置文件,一般是 `\mirserver\mir200\envir\mongen.txt`。
2. 打开该文件,找到你想要设置为无限刷的怪物的相关配置行。每一行代表一个怪物的刷怪设置信息,格式通常为“地图编号 X 坐标 Y 坐标 怪物名字 范围 数量 刷新时间 集中坐标 名字颜色 内功怪物(0 或 1,如果是内功怪则填 1,普通怪填 0)”。
3. 将刷新时间设置为一个非常短的时间,比如 `1` 秒甚至更短,同时将刷怪数量设置为一个较大的值或者不设置上限(具体设置要根据游戏需求和服务器性能来决定,避免因刷怪过多导致服务器卡顿)。例如,将原来的“3 330 330 白野猪 50 10 300 0 0 0”修改为“3 330 330 白野猪 50 1000 1 0 0 0”(这里只是示例,1000 这个数量可根据实际情况调整),这样白野猪就会以很快的速度且大量地刷新。
4. 保存文件后,重启游戏服务器使修改生效。
**方法二:使用脚本循环刷怪**
1. 创建一个新的脚本文件,比如 `infinite_mongen.txt`,在里面编写循环刷怪的脚本代码。以下是一个简单的示例脚本:
```
#while true
#act
mapid = 5 // 要刷怪的地图编号,假设是某个特定地图
X = random 100 // 在 0 到 100 的范围内随机生成 X 坐标
Y = random 100 // 在 0 到 100 的范围内随机生成 Y 坐标
monstername = "骷髅战士" // 要刷新的怪物名称
mobplace $mapid $X $Y $monstername 5 10 1 // 刷出 5 到 10 只骷髅战士,刷新时间为 1 秒
#delay 1000 // 延迟 1000 毫秒(1 秒),可根据实际需求调整延迟时间
#endwhile
```
在这个脚本中,`#while true` 表示一个无限循环,不断地在指定地图的随机坐标处刷出指定的怪物。你可以根据实际需求修改地图编号、怪物名称、刷怪数量、刷新时间和延迟时间等参数。
2. 将这个脚本文件放置在游戏服务器的相应脚本目录下(比如 `\mirserver\mir200\envir\mapquest_def` 等)。
3. 然后在游戏的某个触发条件下调用这个脚本,比如可以在游戏启动时或者某个特定的时间点触发。你可以在 `\mirserver\mir200\envir\robot_def\autorunrobot.txt` 文件中添加一行代码来调用这个脚本,例如:`#autorunnpcrunonstartup@无限刷怪脚本`(这里的 `@无限刷怪脚本` 是你在游戏中定义的一个触发脚本的命令,你需要在游戏的脚本系统中进行相应的设置,将这个命令与你创建的 `infinite_mongen.txt` 脚本关联起来)。
**方法三:通过定时器触发刷怪**
1. 在游戏服务器的脚本系统中,找到一个可以设置定时器的地方。通常可以在 `\mirserver\mir200\envir\robot_def` 目录下的脚本文件中进行设置。
2. 创建一个新的脚本文件,比如 `timer_mongen.txt`,在里面编写刷怪的代码。示例如下:
```
[@Timer1]
#act
mapid = 7 // 刷怪的地图编号
X = 200 // X 坐标
Y = 200 // Y 坐标
monstername = "祖玛卫士" // 怪物名称
mobplace $mapid $X $Y $monstername 3 5 5 // 刷出 3 到 5 只祖玛卫士,刷新时间为 5 秒
```
在这个脚本中,`[@Timer1]` 是一个定时器的标签,你可以根据实际需求修改里面的刷怪参数。
3. 在 `\mirserver\mir200\envir\robot_def\autorunrobot.txt` 文件中添加一行代码来启动这个定时器,例如:`#autorunnpcaddtimer 1 1000 @Timer1`(这里的 `1` 表示定时器的编号,`1000` 表示定时器的时间间隔,单位为毫秒,即 1 秒,`@Timer1` 是指向你创建的定时器脚本的标签)。这样,每隔 1 秒就会触发一次刷怪操作,实现怪物的无限刷新。
在修改怪物刷新脚本时,要注意服务器的性能和游戏的平衡性,避免因刷怪过多导致服务器负载过高或游戏体验变差。同时,在单机测试时,确保你的电脑配置能够支持大量怪物的刷新。

