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

传奇GOM引擎假人系统实战:Robot脚本与DummyConfig高仿真人生态搭建

热度:
GOM引擎的假人不是简单站桩人偶,本质是走账号登录链路、吃人物命令集、受Robot_def定时器与DummyConfig行为文件双重驱动的模拟角色。M2里勾了“启用假人系统”后,假人从DBServer走正常选人流程进游戏,能用ChangeAttatckMode、RECALLHERO、GUILD、MAPMOVE、PICKUP、SENDMSG等全部人物级指令,区别只在ISDUMMY标记为真、不受真人充值/反外挂/部分GM监控约束。

一、核心文件与目录分布
•Mir200\Envir\DummyNameList.txt:主体假人名字池,每行一个,支持“陪练战士01035060”格式(职业等级性别移动速度),名字同步写进DBServer\DenyChrName.txt防真人抢名

-Mir200\Envir\DummyHeroNameList.txt:假人英雄名字池,配合RECALLHERO出英雄
•Mir200\Envir\DummyConfig\假人名称.txt:单假人行为配置,字段含职业、性别、等级、攻击模式、自动拾取、使用技能、穿戴装备、说话机率、摆摊开关、回城间隔

-Mir200\Envir\Robot.txt+Robot_def\AutoRunRobot.txt+Robot_def\RobotManage.txt:全局定时器机器人,按秒/分/时/天/星期触发[@段]跑服务端指令(喊话、刷怪、攻城、批量登假人)
-Mir200\Envir\QuestDiary\假人系统\*.txt:登录触发、死亡触发、地图切换、智能PK、泡点、摆摊等复杂状态机
•Mir200\Envir\Market_Def\假人管理员-0.txt+Npcs.txt/Merchant.txt:可视NPC入口,手动调试用

二、假人登录链路(QManage.txt标准写法)
[@Login]
#IF
ISDUMMY
#ACT
SETDUMMYCONFIGFILENAME..\DummyConfig\<$USERNAME>.txt
LOADDUMMYCONFIGFILE
ChangeAttatckMode5
DUMMYSTART
;英雄陪练
GETDUMMYNAME11
SETDUMMYHERONAME<$STR(S11)>
RECALLHERO

ISDUMMY先拦真假,SETDUMMYCONFIGFILENAME指向同名配置,LOADDUMMYCONFIGFILE把MOVRD06、CHANGEATTATCKMODE、AutoPickup、UseSkill等参数灌进角色,DUMMYSTART切自动机。不写LOADDUMMYCONFIGFILE假人就是空壳站桩。

三、DummyConfig行为参数拆解(高仿真人关键)
;假人名称.txt示例
Job=0;0战1法2道
Gender=0;0男1女
Level=42
AttackMode=5;5行会6红名1和平0全体
MoveSpeed=550
HitSpeed=1200
AutoPickup=1
PickupItem=金币沃玛装备药水
UseSkill=战士:半月弯刀烈火剑法|法师:雷电术冰咆哮|道士:施毒术召唤骷髅
EquipList=武器:屠龙衣服:战神盔甲项链:圣战项链手镯:圣战手镯戒指:圣战戒指
TalkRate=30;每30秒概率说话
TalkFile=..\QuestDiary\假人系统\假人喊话.txt
DeathReviveMap=安全区随机
DeathEquipRepair=1;爆装后延迟自检补齐
GuildCreate=1;达等级自建行会,上限6个后转加入
AutoStall=1;土城安全区概率摆摊

装备名必须和StdItems.txt的Name完全一致,自创装备先入库再写;TalkRate配TalkFile随机读行,避免全员复读同句;DeathEquipRepair开后才能模拟“爆了再凑一套”的真人循环。

四、Robot_def定时机器人搭生态节奏
AutoRunRobot.txt:
#AutoRunNPCSEC8@DummyLoginBatch
#AutoRunNPCRUNONDAY19:30@SiegeDummy
#AutoRunNPCMIN30@DummyTalkFlush

RobotManage.txt:
[@DummyLoginBatch]
#IF
CHECKVARA511
#ACT
DUMMYLOGON03303205;比奇安全区每次补5个

[@SiegeDummy]
#ACT
SENDMSG0沙城攻城假人军团进场……
MAPMOVE3330330群体传送指令或MISSION刷假人攻城队列

[@DummyTalkFlush]
#ACT
GETRANDOMLINETEXT..\QuestDiary\假人系统\世界频道.txt
SENDMSG5<$STR(LINE)>

SEC/MIN/HOUR/RUNONDAY/RUNONWEEK五种周期足够覆盖泡点、攻城、世界喊话、批量上下线。

五、高仿真人行为状态机(QuestDiary片段)
[@DummyAI_战士]
#IF
CHECKLEVELEX<25
#ACT
MAPMOVE比奇新村200200
GOTO@Train_骷髅洞
#IF
CHECKLEVELEX>=25
CHECKLEVELEX<40
#ACT
MAPMOVE盟重300300
GOTO@Train_猪洞
#IF
CHECKLEVELEX>=40
#ACT
MAPMOVE祖玛寺庙200220
GOTO@AttackMonster

[@AttackMonster]
#IF
CHECKMONSTERCOUNT5
#ACT
ATTACKMONSTER1
#ELSE
#ACT
WALK随机
GOTO@PickDrop

[@PickDrop]
#IF
CHECKITEM沃玛装备0
#ACT
PICKUP沃玛装备1
#IF
CHECKHP<30
#ACT
USEITEM金疮药(大)

[@SmartPK]
#IF
CHECKPLAYERNEAR3
CHECKVARHUMANAttack><$TARGETATTACK>
#ACT
ATTACKPLAYER1
SENDMSG5假人<%s>:敢抢怪?找死!
#ELSE
#ACT
RUNAWAY随机5

等级分段换图、打怪→捡物→喝药→智能PK→逃跑,配合随机WALK间隔(500~800ms)和说话概率,肉眼难辨真假。

六、人形怪式假人(Monster.DB方案)
不想走账号链路的轻量方案:DBC2000开Monster.DB加一条Name=假人哨兵,Race=0/1,Appr抄战士/法师模型,Undead=0,写MonGen.txt刷坐标。缺点:不吃ChangeAttatckMode、不能真入行会、不能摆摊交易,只适合当固定巡逻兵或攻城肉墙。

七、行会与攻城生态联动
•开区前跑“假人行会初始化”建6~10个霸气行会名,假人达35级自动GUILDCREATE,超出上限转GUILDJOIN随机真/假行会

•攻城日AutoRunRobot触发@SiegeDummy,假人切AttackMode=0或5,分正门/侧门队列砍城墙进皇宫,死亡后安全区延时复活重进

-行会聊天、行会令、攻城补贴用RobotManage发SENDMSG,避免全是系统广播穿帮

八、摆摊与交易拟真
土城安全区判定:
#IF
ISDUMMY
CHECKMAP0;比奇安全区
RAND100<20;20%概率
#ACT
CREATESTALL<$USERNAME>杂货
STALLADD治疗药水1050
STALLADD沃玛首饰150000
STOPDUMMYAI

摆摊名用假人本名,价格随市场变量腐,真人可以真买,经济流闭环。

九、调试与排错硬规矩
•编码全ANSI,中文乱码先另存ANSI重写RobotManage.txt

•单图假人≤20,刷新间隔≥30秒,登录间隔5~10秒,避免M2主线程卡死

-坐标别落障碍物/安全区边界,用MapQuest_def预检CANMOVE
•改DummyConfig不停服需M2“重新加载假人配置”;Robot_def改完重载机器人脚本;MonGen改完重载刷怪

-ISDUMMY判断漏写会导致真人也被强制LOADDUMMYCONFIGFILE,全员变战斗机器
•同名冲突:DummyNameList与DenyChrName不同步,真人建了同名号假人登不进来

十、参数区间参照(贴近真人节奏)
•MoveSpeed500~600(战士略慢、法师略快)

•AttackSpeed战士800~1200/法师600~1000/道士1000~1400

-TalkRate20~40秒随机一句,世界喊话≥30分钟一轮
•死亡复活延迟5~15分钟,爆装自检10~30分钟补齐

•泡点地图假人占比30%,野外40%,安全区/摆摊30%,别全堆土城

假人生态的真伪分界不在“能不能动”,而在等级曲线(新村→骷髅→猪洞→祖玛→赤月)、装备迭代(爆了补、好了穿)、行会归属、攻城站位、频道发言、摆摊定价这几条链路是否同时跑通;只开DUMMYLOGON不写DummyConfig和QuestDiary状态机,出来的就是一眼假的桩子。
[顶部]