HeroM2 1108引擎传奇假人脚本:添加及自动打怪跑步实现

来源: 作者: 点击:
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引擎假人脚本通过名单配置、召唤命令、行为逻辑编写三步即可实现核心功能。全程依托引擎原生命令,无需额外插件,确保稳定性。按需求调整跑步范围、打怪规则与技能参数,可让假人行为更贴近真实玩家,有效提升游戏场景活跃度。