一、假人系统涉及的核心目录与文件
GOM引擎(1108及以上商业版)假人不是单文件控制,靠以下几处协同:
• D:\MirServer\Mir200\Envir\Robot.txt → 机器人名称与脚本名绑定(系统级定时机器人)
- D:\MirServer\Mir200\Envir\Robot_def\AutoRunRobot.txt → 定时触发器(SEC/MIN/HOUR/DAY/RUNONDAY/RUNONWEEK)
- D:\MirServer\Mir200\Envir\Robot_def\RobotManage.txt → 定时触发的实际执行脚本段
• D:\MirServer\Mir200\Envir\DummyNameList.txt → 普通假人名字池(每行一个,可带参数如 陪练战士01 0 35 0 代表战士35级)
- D:\MirServer\Mir200\Envir\DummyHeroNameList.txt → 英雄假人名字池
• D:\MirServer\Mir200\Envir\DummyConfig\假人名称.txt → 单个假人属性/装备/AI配置文件
- D:\MirServer\Mir200\Envir\QuestDiary\智能陪练\*.txt → 复杂行为脚本(打怪/攻沙/喊话/回城)
• M2控制器 → 选项 → 功能设置 → 假人系统 → 总开关、最大数量、登录间隔、攻击速度、移动速度
二、M2控制台基础开关与全局参数
进M2Server主窗 → 选项 → 功能设置 → 假人系统(或机器人管理),必填项:
• 启用假人系统:勾选
• 最大假人数量:单机5–20,公网按配置50–200,超量M2卡顿、地图拥堵
- 登录间隔时间:5000–10000毫秒(5–10秒),避免瞬间并发建连
• 行走速度:500–600(毫秒/格),贴近真人
• 攻击速度:按职业差设,战士800–1000、法师600–800、道士700–900
- 自动打怪开关、入会开关、发言开关、攻沙开关:按需勾
脚本侧全局变量(A字符型 / G数字型)常用:
A50=登陆地图号 A51=自动登陆开关 A52=挂机开关 A54=入会开关 A55=打怪开关 A60=新老沙城控制 A61–A64=攻沙点编号
G50/G51=登陆XY G52=单次登陆数 G55=攻击模式 G56=全局总数 G57=分散范围
三、名字池与DummyConfig单体重配置
DummyNameList.txt 写法:
陪练战士01 0 35 0
陪练法师02 1 36 0
陪练道士03 2 34 0
(字段:名字 性别0男1女 职业0战1法2道 等级 预留位) 名字禁空格、禁特殊符
DummyConfig\假人名称.txt 标准段(ANSI编码):
[Info]
Job=0
Sex=0
Level=35
AutoPickUpItem=1
AttatckMode=0 ;0全体 1和平 4编组 5行会 6红名反击
SayRate=10
ItemAddValueRate=10
UseSkill=半月弯刀,刺杀剑术,烈火剑法
EquipList=屠龙,战神盔甲(男),力量戒指,骑士手镯,绿色项链,战神靴
Map=3
X=330
Y=320
ReviveSec=60 ;死亡后重生间隔
装备名必须与 StdItems.txt 的 Name 完全一致,自定义装先入库再写,否则不显。坐标不可压墙/水池/安全区边界,否则卡死
四、Robot_def 定时链路(自动登录/清理/攻沙)
AutoRunRobot.txt 示例:
AutoRun NPC SEC 30 @DummyLoginBatch
AutoRun NPC MIN 10 @DummyClearDead
AutoRun NPC RUNONDAY 20:00 @DummyAttackSabuk
RobotManage.txt 对应段:
[@DummyLoginBatch]
if
act
DUMMYLOGON 3 330 320 2 ;地图3 坐标330,320 登2个假人
SENDMSG 0 假人批次登录完成
[@DummyClearDead]
if
act
CLEARDUMMYBODY 3 ;清理地图3假人尸体
SENDMSG 0 假人尸体清理完毕
[@DummyAttackSabuk]
if
EQUAL G1 0
act
MOV G2 1
AddAttackSabukAll 0 ;全体假人攻沙巴克
SENDMSG 0 [攻城] 假人军团已出发
DUMMYLOGON 格式:DUMMYLOGON 地图号 X Y 数量;英雄假人用 DUMMYHEROLOGON 或配合 GETDUMMYNAME + SETDUMMYHERONAME + RECALLHERO
五、QManage.txt 登录触发与AI加载
Envir\QManage.txt 里接 [@Login] 段:
[@Login]
if
ISDUMMY
act
SETDUMMYCONFIGFILENAME ..\DummyConfig\假人名称.txt
LOADDUMMYCONFIGFILE
DUMMYSTART ;开始自动打怪,不加这句假人站桩
elsesay
正常玩家登录逻辑…
英雄登录段 [@HeroLogin] 同理用 H.ISDUMMY + H.SETDUMMYCONFIGFILENAME + H.LOADDUMMYCONFIGFILE
六、高级行为:打怪/攻沙/喊话/复活模拟
1. 自动打怪路径
QuestDiary\智能陪练\假人打怪.txt:
[@打怪开关]
if
act
DUMMYSTART
MOV A55 1
SENDMSG 0 假人打怪已开启
配合变量文件:新手地图.txt / 中级地图.txt / 高级地图.txt 写地图号列表,脚本随机选图 MAPMOVE
2. 攻沙编排
AutoRunRobot 里 RUNONDAY 20:00 @DummyAttackSabuk → RobotManage 里 AddAttackSabukAll 0 + 传送到 A61–A64 攻沙点;提前用小号建好“假人行会”,写进 假人行会.txt,否则假人无法入会攻城
3. 喊话系统
假人说话.txt 写黄字/私聊/行会喊话内容;A57=发言开关,SayRate 控频率;注意老GOM内核喊话有bug,不稳定就关A57
4. 拟真死亡复活
死亡后不立即消角色,按 ReviveSec 随机5–15分钟清尸 → 安全区复活 → 检测身上缺装延迟补齐(AutoRepair/Equip补发)
七、常见不起效与硬坑排查
• 假人站桩不动:漏 DUMMYSTART 或 DummyConfig 没 LOADDUMMYCONFIGFILE,M2里也没勾自动打怪
• 名字乱码/不读:DummyNameList.txt、DummyConfig 存成 UTF-8,改 ANSI
- 装备红问号:StdItems.txt 无该 Name,或 Looks/Shape 补丁缺帧
• 攻沙假人不走:没建对应行会、A54=0、AddAttackSabukAll 地图号错、沙城 OwnGuild 冲突
- 卡墙堆积:坐标压障碍、PathFailRetry 无限重试,坐标改开阔地,单机用 MapQuest_def 预检可站立
• 脚本段重复:[@Login] 在 QManage 和 QuestDiary 重复定义,M2只认一处,后者覆盖前者
- 定时不触发:AutoRunRobot.txt 时间单位写错(SEC/MIN/HOUR 混淆),或 RobotManage 里标签名拼错
• 登录风暴:登录间隔设0、DUMMYLOGON 数量过大,M2 CPU飙高直接掉线,单机间隔≥5秒、单次≤3个
- 英雄召不出:漏 GETDUMMYNAME 1 1 + SETDUMMYHERONAME + RECALLHERO 三步
八、重载与生效顺序
改完 Robot_def / DummyConfig / QManage / DummyNameList 后:
M2 → 控制 → 重新加载机器人脚本(ReloadRobot) → 重新加载QManage → 假人系统里点“登录全部假人”或等 AutoRunRobot 周期触发;硬改多就重启 DBServer→LoginSrv→Gate→M2 顺序起
假人系统本质=名字池供给 + DummyConfig属性 + Robot_def定时驱动 + QManage登录加载 + M2总开关限流,五处对齐、编码ANSI、坐标可站、装备入库,整套模拟链路就跑通。
GOM引擎传奇假人脚本全功能详解:安装到高级配置避坑实操手册
来源:
作者:
点击:

