HeroM2 1108引擎假人脚本核心是实现假人添加、自动寻路跑步、智能打怪等功能,通过配置服务端文件与脚本命令,模拟真实玩家行为,丰富游戏场景活跃度。以下是分步骤实现流程,全程适配该引擎特性,兼顾稳定性与实操性。
一、前期准备与核心文件定位
操作前需明确HeroM2 1108引擎核心文件路径,所有配置均通过修改服务端脚本与配置文件完成,无需改动引擎核心程序。
1. 核心目录:服务端根目录\MirServer\Mir200\Envir\,该目录存储假人配置、脚本命令及名单文件,是功能实现的核心路径。
2. 关键文件:DummyNameList.txt(假人名单文件,存储可添加的假人角色名)、QFunction-0.lua(假人行为触发脚本,控制自动打怪跑步逻辑)、DummyConfig文件夹(假人个性化配置目录,存储单个假人行为规则)、Merchant.txt(可选,用于绑定假人召唤NPC)。
3. 前提条件:确认HeroM2 1108引擎已开启假人功能,在引擎控制器中勾选“允许假人登录”选项,重启引擎使设置生效,未开启则所有脚本配置无效。
二、假人添加配置(含名单设置与召唤触发)
假人添加分为名单配置、批量召唤两步,支持指定地图坐标生成假人,可按需调整假人数量与刷新位置。
1. 假人名单配置
打开\MirServer\Mir200\Envir\DummyNameList.txt文件,该文件用于定义可召唤的假人角色名,格式为每行一个角色名,无需添加后缀,支持中英文混合命名。
配置示例:
风云客01
暗夜行者02
铁血战狂03
说明:名单数量无上限,建议按场景需求控制数量,避免过多假人占用服务器资源;同时将名单内容复制到\MirServer\DBServer\DenyChrName.txt,防止玩家注册假人同名角色。
2. 假人批量召唤脚本编写
通过脚本命令DUMMYLOGON实现假人批量召唤,支持指定地图、坐标及数量,可绑定至NPC或定时触发,适配不同场景需求。
(1)NPC召唤模式:打开Merchant.txt,添加召唤NPC配置,示例:假人召唤使者 3 340 320 0 1 0 0 0 0 0(参数依次为NPC名、沙巴克地图编号、坐标、隐藏状态等)。
(2)召唤脚本编写:在\MirServer\Mir200\Envir\npc_def\新建“假人召唤.txt”,编写核心脚本:
(@Main)
#SAY 可召唤假人至指定地图\<召唤5个假人至蜈蚣洞/@CallDummy5>\<清除所有假人/@ClearDummy>\<退出/@exit>
(@CallDummy5)
#ACT
DUMMYLOGON 蜈蚣洞 120 150 5 -- 地图名、X坐标、Y坐标、召唤数量
#SAY 已召唤5个假人至蜈蚣洞指定位置\<返回/@Main>
(@ClearDummy)
#ACT
KICKDUMMY ALL -- 清除全服所有假人
#SAY 所有假人已清除\<返回/@Main>
说明:DUMMYLOGON为HeroM2 1108引擎假人召唤原生命令,地图名需与服务端地图配置一致,坐标需为可站立位置,避免假人生成在障碍物中。
三、自动跑步(寻路)功能脚本实现
自动跑步核心是让假人在指定范围内随机寻路,或按预设坐标点循环移动,模拟真实玩家探索行为,通过QFunction-0.lua脚本绑定假人登录事件触发。
1. 随机范围跑步脚本
打开\MirServer\Mir200\Envir\QFunction-0.lua,添加假人登录触发逻辑,设置随机寻路范围与移动间隔:
function DummyLogin(dummyid)
-- 设置假人寻路范围为当前位置周围30格,移动间隔3-5秒
SetDummyMoveRange(dummyid, 30)
SetDummyMoveInterval(dummyid, 3000, 5000) -- 单位为毫秒
-- 开启自动随机跑步模式
StartDummyRandomMove(dummyid, 1)
end
说明:DummyLogin为假人登录触发接口,dummyid为假人唯一标识;SetDummyMoveRange控制寻路范围,数值越大活动区域越广;StartDummyRandomMove参数1为开启,0为关闭。
2. 预设坐标循环跑步脚本
若需假人按固定路线跑步,可设置多个坐标点,实现循环移动,脚本示例:
function DummyLogin(dummyid)
-- 添加预设坐标点(地图名、X、Y),可无限添加
AddDummyWayPoint(dummyid, "蜈蚣洞", 120, 150)
AddDummyWayPoint(dummyid, "蜈蚣洞", 180, 200)
AddDummyWayPoint(dummyid, "蜈蚣洞", 150, 180)
-- 开启循环路线跑步,参数1为循环模式,0为单次
StartDummyWayPointMove(dummyid, 1)
end
说明:坐标点需按实际地图可通行位置设置,避免假人卡在障碍物中;添加多个坐标点可形成复杂移动路线,增强真实性。
四、自动打怪功能脚本编写(含攻击规则配置)
自动打怪需实现目标检测、技能释放、仇恨判定等逻辑,通过组合引擎命令,让假人具备智能攻击行为,同时支持过滤不攻击目标。
1. 核心自动打怪脚本
在QFunction-0.lua中补充假人攻击逻辑,绑定假人移动事件,实现边跑步边打怪功能:
function DummyMove(dummyid)
-- 开启假人自动搜寻目标,空闲时主动找怪
SetDummySearchTarget(dummyid, 1)
-- 设置攻击范围为8格,超出范围停止攻击并追怪
SetDummyAttackRange(dummyid, 8)
-- 优先攻击主动怪,参数1为开启优先攻击主动怪
SetDummyAttackActiveMonster(dummyid, 1)
-- 假人血量低于30%时停止攻击,自动跑步脱离战斗
local hp = GetDummyHP(dummyid)
local maxhp = GetDummyMaxHP(dummyid)
if hp/maxhp < 0.3 then
StopDummyAttack(dummyid)
StartDummyRandomMove(dummyid, 1)
end
end
2. 技能释放与攻击过滤配置
(1)技能释放:在DummyConfig文件夹中新建与假人同名的TXT文件(如风云客01.txt),添加技能释放规则:
SetDummySkill(dummyid, "烈火剑法", 80) -- 技能名、释放概率(%)
SetDummySkillInterval(dummyid, 2000) -- 技能释放间隔(毫秒)
说明:技能名需与服务端技能数据库一致,释放概率与间隔可按需调整,模拟真实玩家技能使用节奏。
(2)攻击过滤:在\MirServer\Mir200\Envir\新建BotNoAttackList.txt,添加假人不攻击的怪物名单,格式为“怪物名 1”,示例:
鸡 1
鹿 1
确保假人仅攻击指定怪物,避免攻击低等级无害目标。
五、脚本生效与参数调试
配置完成后需按步骤加载脚本,通过调试优化参数,确保假人行为流畅,无卡顿、卡怪等异常。
1. 脚本加载:保存所有修改后的文件,在HeroM2引擎控制器中依次执行@reloadlua(刷新脚本)、@reloaddummy(刷新假人配置),无需重启引擎即可生效。
2. 参数调试:召唤假人后,观察其跑步轨迹与打怪行为,若出现卡怪,缩小SetDummyMoveRange数值;若技能释放过频,增大SetDummySkillInterval间隔;若假人不攻击,检查BotNoAttackList.txt是否误添加目标怪物。
3. 资源控制:假人数量建议按服务器配置调整,单服假人数量不超过50个,避免占用过多内存导致服务器卡顿。
六、常见问题排查
针对HeroM2 1108引擎特性,聚焦假人添加、自动跑步打怪常见问题,提供针对性排查方案。
1. 假人无法召唤:检查引擎是否开启假人功能,DummyNameList.txt是否添加角色名,召唤命令中地图名、坐标是否正确,输入@reloaddummy重新加载假人配置。
2. 假人不自动跑步:核对QFunction-0.lua中StartDummyRandomMove或StartDummyWayPointMove命令是否开启,参数是否为1,检查假人生成位置是否为障碍物区域。
3. 假人不打怪:确认SetDummySearchTarget命令是否开启,攻击范围是否合理,技能名是否与服务端一致,排查BotNoAttackList.txt是否包含目标怪物。
4. 假人卡顿不动:关闭不必要的假人行为逻辑,缩小寻路范围,减少同时召唤的假人数量,优化服务器内存分配。
综上,HeroM2 1108引擎假人脚本通过名单配置、召唤命令、行为逻辑编写三步即可实现核心功能。全程依托引擎原生命令,无需额外插件,确保稳定性。按需求调整跑步范围、打怪规则与技能参数,可让假人行为更贴近真实玩家,有效提升游戏场景活跃度。

