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

传奇GOM引擎假人脚本系统定制开发与配置编写教程含登录打怪捡物攻沙AI脚本实例

热度:
GOM引擎自带假人(Robot/Dummy)系统,通过服务端脚本调用引擎命令实现模拟玩家自动登录、打怪、捡物、喊话、攻沙等行为。定制开发围绕配置文件、名称列表、触发脚本、Robot定时四部分展开,所有文件位于服务端MirServer\Mir200\Envir目录下。

核心文件与目录结构

•DummyNameList.txt:假人角色名列表,每行一个,引擎启动或DUMMYLOGON时按顺序读取。

•DummyHeroNameList.txt:假人英雄名列表,需要假人召英雄时从此读取。

-DummyConfig\假人名称.txt:单个假人详细配置(职业、等级、技能、穿戴装备、背包物品、攻击模式、是否自动捡物等)。
•QuestDiary\自定义目录\*.txt:假人行为脚本(打怪AI、喊话、摆摊、移动路线),通过RUNSCRIPT挂到假人身上。

-Robot_def\AutoRunRobot.txt+RobotManage.txt:定时触发假人登录、全局控制假人数量或执行周期性逻辑。
•Market_Def\QManage.txt:服务端启动触发[@Startup]或人物登录触发中用ISDUMMY判断并加载假人配置、执行DUMMYLOGON。

假人配置文件格式(DummyConfig\战士陪练.txt示例)


[Info]
Job=0;0战士1法师2道士
Gender=0;0男1女
Hair=1
Level=40
AttatckMode=0;0全体1和平4编组5行会6红名
AutoPickUpItem=1;1自动捡0不捡
DropUseItem=0
DropBagItem=0
SayRate=10

[UseItems]
UseItems0=天魔神甲(男);衣服
UseItems1=裁决之杖;武器
UseItems3=幽冥项链
UseItems5=幽冥手镯
UseItems6=幽冥手镯
UseItems7=力量戒指
UseItems8=力量戒指

[UseMagic]
;技能名=等级(对应Magic.DB中魔法ID)
HalfMoonSword=3
FireHit=3


道士假人加UseMagic=灵魂火符3施毒术3召唤神兽3治愈术3;法师加FireBall=3IceStorm=3;如需英雄在脚本里GETDUMMYNAME取英雄名再SETDUMMYHERONAME和RECALLHERO。

假人登录与启动脚本(QManage.txt或单独启动NPC)


[@Startup];M2→选项→参数设置→游戏启动运行脚本可勾选运行QManage[@Startup]
#IF
#ACT
DUMMYLOGON33303305
;格式DUMMYLOGON地图号XY数量(按DummyNameList.txt顺序登入)

;以下在假人角色触发登录时设置(QFunction-0.txt或QManage.txt中)
[@DummyLogin]
#IF
ISDUMMY
#ACT
SETDUMMYCONFIGFILENAME..\DummyConfig\战士陪练.txt
LOADDUMMYCONFIGFILE
ChangeAttatckMode0
DUMMYSTART;开始自动打怪,不加这句假人站着不动
;RECALLHERO;如需英雄且已SETDUMMYHERONAME则加这句


DUMMYSTOP可停止打怪,DUMMYAUTOTARGET1开启自动锁定最近怪物。

定制假人AI行为脚本(QuestDiary\假人AI\打怪捡物.txt)

基础打怪捡物由DUMMYSTART自动处理,若要加随机移动、喊话、条件喝药、指定捡物品品质可用RUNSCRIPT挂自定义脚本:

[@main]
#IF
ISDUMMY
#ACT
SetOnTimer115000;每15秒触发[@Timer1]

[@Timer1]
#IF
RANDOM20;20%概率在世界频道说话
#ACT
SendMsg0我是陪练假人,欢迎切磋!
#IF
RANDOM30;30%概率随机卸围走动
#ACT
RANDOMMOVE5


在假人登录后加RUNSCRIPT..\QuestDiary\假人AI\打怪捡物.txt使其生效。捡物过滤在配置文件AutoPickUpItem=1开启后,部分版本可在脚本用FakePlayerPickItem控制品质,具体视引擎Build支持情况。

Robot定时批量控制(AutoRunRobot.txt)


;每秒检测一次,每300秒执行一次@CheckDummy
#AutoRunNPCSEC300@CheckDummy


RobotManage.txt中写:

[@CheckDummy]
#IF
CHECKDUMMYCOUNT<10
#ACT
DUMMYLOGON33303303;不足10个假人再补登3个


可用于开服自动补假人、攻沙时段集中登录、非高峰时段踢出部分假人节省资源。

假人攻沙与行会配置

•建一个行会(如"陪练行会"),在脚本中用AddGuildMember把假人加入该行会。

-攻沙时段用脚本传送假人至沙巴克指定坐标:MapMove0159XY,设攻击模式5(行会模式),锁定守方行会目标。
•死亡自动复活可在QFunction-0.txt中用[@DummyDie]触发DelayCall后MapMove回原位再次DUMMYSTART。

防穿帮与调试注意

•假人名称用中文常见ID组合(风云、傲天、狂龙等),数量建议单服不超30~50个避免CPU占用过高。

•假人穿戴装备必须与当前版本开放等级匹配,穿未开放装备会被玩家识破。

-M2→选项→参数设置→机器人参数中可设假人攻击间隔抖动(AttackJitter±300ms)让行为更自然。
•假人名单名须同时加入DBServer\DenyChrName.txt防止玩家注册同名角色覆盖数据。

-修改脚本或配置后重启M2或在M2控制台"重新加载脚本/假人配置"使之生效,查看M2运行日志确认DUMMYLOGON是否成功及报错原因。

一句话流程:在DummyNameList.txt写好名→DummyConfig配职业等级装备→QManage用ISDUMMY判断加载配置并执行DUMMYLOGON+DUMMYSTART→Robot_def控制批量启停→可选RUNSCRIPT挂自定义AI行为脚本。
[顶部]