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

来源: 作者: 点击:
一、脚本编写前必备准备工作

1. 确认核心信息(新手必看)

先收集两个关键信息,缺一个脚本都无法生效:一是目标地图的“地图ID”,二是目标怪物的“准确名称”(含特殊符号需完整保留)。

获取地图ID:打开服务端目录下“Mir200-Envir-MapInfo.txt”文件,按“Ctrl+F”搜索地图名称(比如“蜈蚣洞”),对应行前的数字就是地图ID(示例:蜈蚣洞 3 ,ID即为3);

获取怪物名称:打开“Mir200-Envir-Monster.txt”文件,搜索怪物俗称对应的准确名称(比如俗称“黑色恶蛆”,准确名称可能是“黑蛆”),必须完全一致,不能多字少字。

2. 工具与脚本存放路径

编写工具:用电脑自带的记事本即可,无需额外软件;

存放路径:编写好的脚本保存到“Mir200-Envir-QuestDiary”文件夹下,文件名自定义(比如“检测怪物数量.txt”),保存时编码选“ANSI”(避免中文乱码)。

二、核心检测脚本写法(傻瓜式套用)

1. 基础写法:仅检测并显示怪物数量

适用场景:想知道某个地图当前有多少目标怪物(比如检测“蜈蚣洞(ID3)”里的“黑蛆”数量),脚本直接套用,改三个参数就行。

脚本代码(可直接复制):

[@检测怪物数量]
#ACT
// 核心命令:MAPMONCOUNT 地图ID 怪物名称 变量名(存放数量)
MAPMONCOUNT 3 黑蛆 MonCount
// 显示数量(发送信息给当前执行脚本的角色)
SENDMSG 6 当前蜈蚣洞(ID3)内黑蛆数量:<$MonCount>只

// 说明:
// 1. 把“3”改成目标地图ID,“黑蛆”改成目标怪物名称;
// 2. “MonCount”是自定义变量名,不用改,用来存检测到的数量;
// 3. SENDMSG 6 代表发送橙色提示,数字6可改(1-9对应不同颜色)

使用方法:在游戏内通过NPC对话、命令触发(比如添加到NPC菜单,点击后执行“@检测怪物数量”),或管理员直接在聊天框输入“@检测怪物数量”触发。

2. 进阶写法:根据怪物数量执行对应操作

适用场景:检测到怪物数量少于X时自动刷怪、数量多于Y时提示玩家等(比如“蜈蚣洞黑蛆少于10只时自动刷20只”)。

脚本代码(可直接复制):

[@检测并刷怪]
#ACT
// 第一步:检测数量并存入变量MonCount
MAPMONCOUNT 3 黑蛆 MonCount
// 第二步:判断数量,少于10只则刷怪
#IF
CHECKVAR MonCount < 10
#ACT
// 刷怪命令:MOVEMON 怪物名称 数量 地图ID X坐标 Y坐标 (坐标填地图内任意安全点)
MOVEMON 黑蛆 20 3 320 450
SENDMSG 6 黑蛆数量不足10只,已自动补充20只!
// 第三步:数量足够则提示
#ELSEACT
SENDMSG 6 黑蛆数量充足(当前<$MonCount>只),无需补充!

// 说明:
// 1. 可改参数:3(地图ID)、黑蛆(怪物名)、10(数量阈值)、20(刷怪数量)、320 450(刷怪坐标);
// 2. 坐标获取:在游戏内站到目标位置,按“Ctrl+Z”(部分版本是Ctrl+B)显示当前坐标,记录下来替换即可;
// 3. 若想实现“数量多于30只提示”,可在#ELSEACT前加新的#IF CHECKVAR MonCount >30 逻辑

3. 批量检测:同时检测多个地图/多个怪物数量

适用场景:一次性检测多个地图的同一种怪物,或同一地图的多种怪物(比如检测蜈蚣洞、猪洞的黑蛆数量)。

脚本代码(示例):

[@批量检测怪物]
#ACT
// 检测蜈蚣洞(ID3)黑蛆数量
MAPMONCOUNT 3 黑蛆 MonCount1
SENDMSG 6 蜈蚣洞黑蛆数量:<$MonCount1>只
// 检测猪洞(ID5)黑蛆数量
MAPMONCOUNT 5 黑蛆 MonCount2
SENDMSG 6 猪洞黑蛆数量:<$MonCount2>只
// 检测蜈蚣洞(ID3)巨型蠕虫数量
MAPMONCOUNT 3 巨型蠕虫 MonCount3
SENDMSG 6 蜈蚣洞巨型蠕虫数量:<$MonCount3>只

// 说明:
// 1. 每个检测用单独的变量名(MonCount1、MonCount2...),避免冲突;
// 2. 重复“MAPMONCOUNT+SENDMSG”组合,可无限拓展检测对象

三、不同场景脚本触发方式(实操拓展)

1. 通过NPC触发(玩家可自主检测)

1. 打开“Mir200-Envir-NpcScript”文件夹,找到任意NPC脚本(比如“老兵.txt”),或新建“怪物检测NPC.txt”;

2. 在脚本里添加菜单选项,示例:

[@Main]
#SAY
欢迎使用怪物数量检测功能\
1. 检测蜈蚣洞黑蛆数量 → @检测怪物数量\
2. 检测并补充黑蛆 → @检测并刷怪\
// 玩家点击对应选项,即可触发前面写的检测脚本

2. 定时自动检测(无需手动触发)

1. 打开“Mir200-Envir-QuestDiary”文件夹,新建“定时检测.txt”脚本;

2. 脚本代码(每5分钟检测一次):

[@MainLoop]
#ACT
// 调用检测刷怪脚本
GOTO @检测并刷怪
// 延迟5分钟(300秒=300000毫秒)后重复执行
DELAY 300000
GOTO @MainLoop

// 说明:
// 1. [@MainLoop]是循环标签,脚本会一直执行;
// 2. DELAY后面的数字是延迟时间(单位毫秒),5分钟=300000毫秒,可按需修改;
// 3. 保存后在服务端M2控制器“脚本管理”中启用该脚本即可

四、常见问题解决(新手避坑)

1. 检测不到数量,提示“变量未定义”

原因:要么地图ID错了,要么怪物名称错了,要么变量名重复;

解决:重新核对MapInfo.txt的地图ID和Monster.txt的怪物名称,确保完全一致;批量检测时给每个变量名加编号(MonCount1、MonCount2),避免重复。

2. 脚本执行了但没显示提示

原因:SENDMSG后面的数字填错了(有效范围1-9),或编码不是ANSI;

解决:把SENDMSG后面的数字改成6(橙色,最清晰);重新保存脚本,保存时选择“编码-ANSI”。

3. 自动刷怪没生效

原因:刷怪坐标填错了(不在目标地图内),或怪物名称错误;

解决:在游戏内重新获取目标地图的坐标(Ctrl+Z),替换MOVEMON命令里的X、Y坐标;核对怪物名称,确保和Monster.txt里一致。

4. 定时检测没执行

原因:没在M2控制器启用脚本,或DELAY时间设置过短/过长;

解决:打开服务端M2控制器,进入“脚本管理”,找到“定时检测.txt”勾选启用;调整DELAY时间,比如先改成10000毫秒(10秒)测试是否生效。

五、通用操作提醒(必看)

1. 所有脚本修改前,先复制原文件备份(右键-复制-粘贴生成副本),避免改错后无法恢复;

2. 修改完脚本后必须重启服务端,或在M2控制器“脚本管理”中刷新脚本,修改才会生效;

3. 怪物名称带特殊符号(比如“祖玛·教主”)时,要完整复制Monster.txt里的名称,别漏了特殊符号。