一、原有脚本问题解析
你设计的[@全部都爆]脚本仅通过CheckRangeMonCountEx判断指定范围(勋章地图20,23坐标附近)内“全部都爆”怪物数量为0时刷怪,但缺少定时触发机制和全地图怪物存活检测,导致每小时重复刷出。核心问题有两点:一是未配置小时级定时触发命令,脚本无固定执行周期,可能因触发条件频繁满足而重复刷怪;二是范围检测局限于单一坐标附近,若怪物离开检测范围未被击杀,脚本会判定怪物数量为0并再次刷出,无法实现“未打死则下小时不刷”的需求。
二、核心实现逻辑
要实现“每小时定时刷怪+未击杀不重复刷出”,需满足两个核心条件:1. 采用Hero引擎定时命令,设置每小时整点触发刷怪检测;2. 检测范围改为全地图,确保怪物无论移动到何处,未击杀状态都能被识别,避免误判刷出。同时保留原有刷怪坐标、公告提示等核心功能,优化执行逻辑避免冗余操作。
三、完整脚本代码(直接可用)
1. 定时触发脚本(核心控制小时级执行)
[@脚本启动]
#ACT
;设置每小时整点触发刷怪检测(0分钟0秒执行)
TimerSet 0 0 0 @小时刷怪检测
BREAK
[@小时刷怪检测]
#IF
;全地图检测“全部都爆”怪物存活数量,=0表示已击杀或未刷出
CheckMonCount 全部都爆 = 0
#ACT
;调用具体刷怪子程序
Gmexecute @执行整点刷怪
BREAK
#ELSEACT
;怪物未击杀,发送提示公告
SendCenterMsg 250 252 上小时怪物未击杀,本次暂停刷出! 1 30
BREAK
2. 刷怪执行脚本(含坐标配置与公告)
[@执行整点刷怪]
#ACT
;定义刷怪地图(xunzhang=勋章地图)、坐标(20,23)
Param1 xunzhang
Param2 20
Param3 23
;在指定坐标刷出1只“全部都爆”怪物(1 1表示数量1、刷新模式1)
MonGen 全部都爆 1 1
;发送刷怪公告,与原有提示一致
SendCenterMsg 250 252 天降财神活动已经开启,需要高级勋章的速度搞快 1 30
;记录刷怪时间(可选,便于后续排查)
WriteLog ..\Log\刷怪记录.txt 整点刷怪成功-地图:勋章地图 坐标:20,23
BREAK
3. 怪物死亡触发脚本(可选,优化体验)
[@怪物死亡]
#IF
;判断死亡怪物为“全部都爆”
CheckMonName 全部都爆
#ACT
;发送怪物死亡公告,提示玩家下次刷怪时间
SendCenterMsg 250 252 怪物已击杀!下小时整点将重新刷出,敬请期待 1 30
BREAK
四、脚本配置步骤(分步操作,新手可会)
1. 脚本文件放置路径
1. 找到传奇服务端安装目录,进入“Mirserver\Mir200\Envir\QuestDiary”文件夹(Hero引擎默认脚本目录);
2. 新建文本文档,将上述三段脚本依次复制粘贴到文档中,保存并命名为“小时刷怪脚本.txt”(文件名可自定义,无需修改后缀);
3. 打开“QuestDiary”文件夹中的“!QuestDiary.txt”文件,在末尾添加一行“小时刷怪脚本.txt”,保存后关闭(用于加载自定义脚本)。
2. 引擎定时功能启用
1. 启动传奇服务端控制器,打开M2主程序,点击界面上方“选项”按钮,选择“功能设置”;
2. 在功能设置窗口中,找到“定时脚本”选项,勾选“启用定时脚本功能”,设置检测间隔为1分钟(确保整点触发无延迟);
3. 点击“确定”保存设置,重启M2主程序,使定时功能生效。
3. 刷怪参数调整(按需修改)
1. 地图调整:若需更换刷怪地图,将脚本中“Param1 xunzhang”的“xunzhang”改为目标地图代号(如“蜈蚣洞”对应地图代号可查看“Envir\MapInfo.txt”文件);
2. 坐标调整:修改“Param2 20”“Param3 23”中的数字,即可调整刷怪具体坐标(可在游戏中按F12查看当前坐标);
3. 刷怪时间调整:若需修改刷怪周期(如每2小时刷怪),将[@脚本启动]中的“TimerSet 0 0 0 @小时刷怪检测”改为“TimerSet 0 2 0 @小时刷怪检测”(参数依次为“日 时 分”)。
五、关键命令解析(避免配置错误)
1. TimerSet(定时触发命令)
格式:TimerSet 日 时 分 触发子程序名
说明:Hero引擎核心定时命令,参数分别为“间隔天数”“间隔小时”“间隔分钟”,本文设置为“0 0 0”表示每小时整点触发(0天0小时0分钟,即每60分钟执行一次)。
2. CheckMonCount(全地图怪物检测命令)
格式:CheckMonCount 怪物名称 = 数量
说明:检测全地图指定名称怪物的存活数量,与原有“CheckRangeMonCountEx”的区别在于:无需指定坐标范围,可检测怪物移动到地图任意位置的存活状态,避免因怪物位移导致的误刷问题。
3. MonGen(刷怪命令)
格式:MonGen 怪物名称 数量 刷新模式
说明:本文中“MonGen 全部都爆 1 1”表示在指定坐标刷出1只“全部都爆”怪物,刷新模式1为“即时刷出,无延迟”,模式2为“延迟5秒刷出”,可按需调整。
六、常见问题排查(快速解决异常)
1. 脚本不触发定时刷怪
排查步骤:1. 检查M2主程序“功能设置-定时脚本”是否勾选启用;2. 确认“!QuestDiary.txt”中已添加自定义脚本文件名;3. 查看“Mirserver\Log\”文件夹中的错误日志,排查脚本语法错误(如命令拼写错误、参数缺失)。
2. 怪物未击杀仍重复刷出
排查步骤:1. 确认脚本中使用“CheckMonCount”而非“CheckRangeMonCountEx”;2. 检查怪物名称是否与脚本中“全部都爆”一致(区分大小写,需与“Envir\MonItems.txt”中怪物名称完全匹配);3. 确认定时命令参数为“0 0 0”,未误改为其他间隔。
3. 刷怪后无公告提示
排查步骤:1. 检查“SendCenterMsg”命令参数是否完整(依次为“字体颜色1 字体颜色2 公告内容 显示时长 延迟”);2. 确认M2主程序“选项-游戏设置-公告提示”功能已启用。
七、脚本测试验证步骤
1. 配置完成后,启动服务端和M2主程序,登录游戏进入勋章地图(xunzhang);
2. 等待整点时刻,观察地图20,23坐标附近是否刷出“全部都爆”怪物,同时游戏顶部是否显示刷怪公告;
3. 不击杀怪物,等待下一个整点,查看是否触发“未击杀暂停刷出”公告,且无新怪物刷出;
4. 击杀怪物后,等待整点,确认怪物正常刷出,公告提示正常,即脚本配置成功。
传奇Hero引擎每小时定时刷怪 未击杀不重复刷出脚本配置方法
来源:
作者:
点击:

