当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

HeroM21108引擎传奇假人脚本添加及自动打怪跑步设置教程

热度:
HeroM21108引擎是传奇服务端常用版本,假人脚本能有效提升游戏人气,让地图更具活力。本文详解该引擎下假人添加流程,以及自动打怪、自动跑步功能的脚本编写,新手也能按步骤完成配置。

基础认知:HeroM21108假人脚本核心逻辑

HeroM21108引擎的假人脚本,本质是通过配置文件定义假人属性,再用脚本指令控制其行为。假人并非真实玩家,需通过引擎“假人管理”模块加载,核心依赖两个文件:一是假人配置文件(.txt格式),定义假人职业、等级、装备等基础信息;二是行为控制脚本(.txt或.qsc格式),实现自动打怪、跑步等动态操作。

该引擎对假人脚本支持完善,无需额外插件,只需确保脚本语法与引擎指令匹配。假人添加后,会像真实玩家一样在地图活动,自动打怪提升场景热度,自动跑步实现地图巡逻,适合营造热闹的游戏氛围。

第一步:HeroM21108引擎假人添加完整流程

假人添加是基础,需先完成配置文件创建,再通过引擎加载生效,全程分三步,每步都有明确操作要点。

1.创建假人基础配置文件

在服务端“Mir200\Envir\Bot”目录下,新建名为“BotConfig.txt”的文件,这是假人属性的核心配置文件。文件内按固定格式填写假人信息,支持批量添加,示例如下:

#假人配置格式:编号职业(1战士2法师3道士)等级姓名基础攻击基蠢御装备1装备2装备3
1135热血战士0180-12040-60屠龙刀重盔甲金项链
2232魔法使者0160-9030-45骨玉权杖魔法长袍红宝石戒指
3333道尊使者0150-8035-50龙纹剑灵魂战衣天珠项链
4136热血战士0285-12542-62裁决之杖战神盔甲绿色项链

配置要点:职业编号固定,不可随意修改;等级建议设为30-40级,与主流升级地图怪物难度匹配;装备名称需与服务端“Data\Item.txt”中的装备名称完全一致,否则假人无法穿戴。

2.引擎加载假人配置

打开HeroM21108引擎控制器,依次点击“选项”→“假人设置”,进入假人管理界面:

-勾选“启用假人系统”,确保假人功能激活;

-在“假人配置文件路径”中,选择刚才创建的“BotConfig.txt”文件,点击“加载配置”;

-设置“假人上线数量”,首次测试建议设3-5个,避免资源占用过高;

-选择“初始出生地图”,推荐“蜈蚣洞”“石墓阵”等中低级地图,点击“保存设置”并重启引擎。

重启引擎后,登录游戏即可在对应地图看到假人,此时假人仅能站立,需添加脚本实现自动行为。

3.假人登录权限设置

部分情况下假人无法上线,需检查权限配置。在服务端“Mir200\Envir\AdminList.txt”中,添加假人姓名前缀,格式为“Bot_*”,表示允许所有以“Bot_”开头的假人账号登录,示例:“Bot_*=0”(0代表普通玩家权限)。

第二步:自动打怪脚本编写,让假人主动战斗

HeroM21108引擎的假人自动打怪脚本,通过“触发条件+行为指令”实现,需在“Mir200\Envir\BotScript”目录下新建“BotAutoFight.qsc”脚本文件,核心逻辑包括目标筛选、技能释放、状态维持。

1.自动打怪核心脚本代码

#假人自动打怪脚本-HeroM21108专用
#触发条件:假人上线后持续执行
[@BotLogin]
#定义目标怪物ID(可从MonItems.txt中查询)
SetBotTargetMonster=1001100210031004#蜈蚣、黑色恶蛆、跳跳蜂、巨型蠕虫
#定义各职业技能ID(1战士2法师3道士)
SetWarriorSkill=31#烈火剑法、刺杀剑法
SetMageSkill=42#冰咆哮、火墙
SetDaoSkill=56#灵魂火符、施毒术
#启动自动打怪循环
GotoAutoFightLoop

#自动打怪主循环
[@AutoFightLoop]
#1.检测假人职业
IfBotJob==1#战士
GotoWarriorFight
ElseIfBotJob==2#法师
GotoMageFight
ElseIfBotJob==3#道士
GotoDaoFight
EndIf
#循环间隔100毫秒
Delay100
GotoAutoFightLoop

#战士自动打怪逻辑
[@WarriorFight]
#寻找范围内目标怪物
FindMonsterBotTargetMonster5#5格范围内搜索
IfFindResult>0#找到怪物
#移动至攻击范围(1格)
MoveToMonsterXMonsterY1
#释放技能(优先烈火剑法,冷却则用刺杀)
IfSkillCoolDownWarriorSkill[0]==0
UseSkillWarriorSkill[0]MonsterID
Else
UseSkillWarriorSkill[1]MonsterID
EndIf
Delay800
Else
#无怪物时触发自动跑步(后续章节详解)
GotoAutoRun
EndIf
#检测血量,低于30%自动吃药(红药ID=1001)
IfBotHP<=30
UseItem1001
Delay500
EndIf
Return

#法师自动打怪逻辑
[@MageFight]
FindMonsterBotTargetMonster7#法师攻击范围7格
IfFindResult>0
#保持3格安全距离
IfDistanceMonsterXMonsterY<=2
BackStep1#后跳1格
Delay300
EndIf
#怪物数量≥2时用群攻(冰咆哮),否则用单体
MonsterCount=CountMonsterInRange5
IfMonsterCount>=2
UseSkillMageSkill[0]MonsterID
Else
UseSkillMageSkill[1]MonsterID
EndIf
Delay1000
Else
GotoAutoRun
EndIf
#法师蓝量低于25%自动吃蓝药(蓝药ID=1002)
IfBotMP<=25
UseItem1002
Delay500
EndIf
#常驻魔法盾(技能ID=7)
IfSkillCoolDown7==0
UseSkill7
EndIf
Return

#道士自动打怪逻辑
[@DaoFight]
FindMonsterBotTargetMonster6#道士攻击范围6格
IfFindResult>0
#先施毒,再攻击
IfSkillCoolDownDaoSkill[1]==0
UseSkillDaoSkill[1]MonsterID
Delay500
EndIf
UseSkillDaoSkill[0]MonsterID
Delay700
#召唤神兽(技能ID=8),若死亡则重新召唤
IfBotPetLife==0
UseSkill8
Delay2000
Else
PetAttackMonsterID#指挥神兽攻击
EndIf
Else
GotoAutoRun
EndIf
#道士血量低于35%吃药,同时为神兽回血
IfBotHP<=35
UseItem1001
Delay500
EndIf
IfBotPetLife<=40
UseSkill9MonsterID#治愈术(技能ID=9)
EndIf
Return

2.脚本加载与调试

脚本编写完成后,在HeroM2引擎控制器中加载:依次点击“脚本”→“假人脚本”→“加载脚本”,选择“BotAutoFight.qsc”文件,点击“确定”。

调试要点:登录游戏后观察假人是否主动攻击怪物,若出现“技能无法释放”,检查技能ID是否与服务端“Skill.txt”一致;若假人原地不动,确认怪物ID是否在目标列表中,或地图是否有对应怪物刷新。

第三步:自动跑步脚本设置,实现假人地图巡逻

假人自动跑步需设定巡逻范围,避免跑出指定地图,核心是通过坐标控制实现循环移动,可直接整合到自动打怪脚本中,也可单独编写。

1.自动跑步核心脚本代码

#假人自动跑步逻辑(整合至打怪脚本的[@AutoRun]标签)
[@AutoRun]
#定义巡逻范围(以蜈蚣洞一层为例,坐标X1=100Y1=100X2=200Y2=200)
SetPatrolX1=100
SetPatrolY1=100
SetPatrolX2=200
SetPatrolY2=200
#生成范围内随机坐标
RandX=RandomPatrolX1PatrolX2
RandY=RandomPatrolY1PatrolY2
#移动至随机坐标
MoveToRandXRandY1
Delay3000#移动间隔3秒
#移动中检测怪物,发现则返回打怪
FindMonsterBotTargetMonster5
IfFindResult>0
GotoAutoFightLoop
EndIf
#循环巡逻
GotoAutoRun

#地图边界检测(防止假人跑出地图)
[@BotMapBorder]
IfBotX<PatrolX1OrBotX>PatrolX2OrBotY<PatrolY1OrBotY>PatrolY2
#回到巡逻范围中心
MoveTo(PatrolX1+PatrolX2)/2(PatrolY1+PatrolY2)/21
Delay2000
EndIf
Return

2.多地图巡逻设置技巧

若需假人在多个地图间切换巡逻,可添加地图跳转逻辑,示例:

#多地图巡逻逻辑
[@MultiMapPatrol]
#定义地图列表(地图ID=3蜈蚣洞,ID=4石墓阵)
SetBotMapList=34
#随机选择目标地图
RandMap=Random0UBound(BotMapList)
#跳转至目标地图的随机坐标
MapMoveBotMapList[RandMap]Random100200Random100200
Delay5000
#跳转后继续执行打怪跑步逻辑
GotoAutoFightLoop
Return

使用时需在主循环中添加地图切换触发条件,比如“每30分钟切换一次地图”,通过计时器实现:

#地图切换计时器
SetMapChangeTimer=0
IfNowTime-MapChangeTimer>=1800#1800秒=30分钟
GotoMultiMapPatrol
SetMapChangeTimer=NowTime
EndIf

HeroM21108假人脚本优化技巧,提升真实感

基础功能实现后,通过以下技巧可让假人行为更贴近真实玩家,避免机械感,提升游戏氛围。

1.批量添加假人,按职业分配地图

在“BotConfig.txt”中批量添加假人后,通过脚本按职业分配活动地图,让场景更合理:

#按职业分配地图
[@BotMapAssign]
IfBotJob==1#战士→蜈蚣洞(地图ID=3)
MapMove3150150
ElseIfBotJob==2#法师→石墓阵(地图ID=4)
MapMove4120120
ElseIfBotJob==3#道士→祖玛寺庙(地图ID=5)
MapMove5180180
EndIf
Return

2.假人行为AI优化,添加随机动作

在脚本中添加随机休息、原地转身等动作,减少机械感:

#假人随机动作
[@RandomAction]
RandAction=Random110#10%概率触发
IfRandAction==1
Rest2#休息2秒
ElseIfRandAction==2
TurnRandom03#随机转身(0-3为四个方向)
EndIf
Return

将该标签插入自动打怪或跑步循环中,每执行10次循环调用一次,让假人行为更自然。

3.脚本冲突解决:假人与真实玩家的互动控制

为避免假人与真实玩家争抢怪物,可添加“玩家检测”逻辑,当范围内有真实玩家时,假人自动避让:

#玩家检测与避让
[@PlayerAvoid]
FindPlayer3#3格内检测真实玩家
IfFindResult>0
#向远离玩家的方向移动
IfBotX>PlayerX
MoveToBotX+2BotY1
Else
MoveToBotX-2BotY1
EndIf
Delay1000
EndIf
Return

常见问题解答:HeroM21108假人脚本核心问题

1.假人加载后不显示,是什么原因?

先检查“BotConfig.txt”中假人等级是否高于地图最低进入等级,再确认引擎“假人设置”中“最大假人数量”是否大于0,最后查看服务端日志(Mir200\Log),若提示“权限不足”,补充AdminList.txt的假人权限配置。

2.假人自动打怪时频繁吃药,如何调整?

修改脚本中“BotHP”的触发阈值,比如战士从30%调整为25%,同时在“BotConfig.txt”中提高假人防御属性,减少伤害承受,降低吃药频率。

3.能否让假人掉落装备,提升玩家收益?

可以。在“BotConfig.txt”中添加假人掉落配置,格式为“假人编号掉落物品ID掉落概率”,示例“120015”(1号假人有5%概率掉落物品ID=2001的装备),再在引擎“假人设置”中勾选“允许假人掉落”即可。

HeroM21108引擎的假人脚本配置核心,在于精准匹配引擎指令与假人行为逻辑。按本文步骤完成添加、自动打怪及跑步设置后,假人会成为地图的“活力补充”。若需实现更复杂的假人行为,如组队、攻城等,可基于本文脚本框架扩展对应的触发标签与指令。
[顶部]