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

盟重省新区假人脚本乱跑出安全区的根源与修复办法

热度:
盟重省新区用MISSION+MOBPLACE刷一批固定名字的假人来抬人气,脚本本身能把人刷出来,但假人过一会儿就往安全区外窜,这个问题不是单个MOBPLACE写错,而是整套假人没有“围栏”和“巡检”机制。下面按你给的脚本逻辑,把原因拆开讲,再给能直接落地的改法。

一、为什么你刷出来的假人不听话

1.MOBPLACE只管“刷出来”,不管“以后在哪”
你写的MISSON3330330PARAM1330PARAM2330PARAM31PARAM47只是把角色生成在盟重地图330/330附近,PARAM3=1、PARAM4=7控制的是生成范围和数量,并不等于“终身锁死在安全区”。一旦假人触发了离线挂机逻辑、被定时器调用RANDOMMOVE、或者引擎里开了“自动打怪/自动追怪”,它们就会按离线人物规则走,自然跑到土城外面、药店外、甚至祖玛入口。

2.离线挂机脚本和机器人脚本在背后驱动
很多版本在QFunction-0.txt里有[@PlayOffline],在RobotManage.txt里有定时Check,假人本质是“自动登录的离线角色”。你NPC里刷一遍,M2后台又按AutoRunRobot.txt每N秒拉一次行为,两边冲突就乱飞。

3.安全区判定没写进巡检
原脚本缺一段“每30秒查一次坐标,出圈就MAPMOVE回来”的兜底。没有兜底,假人跑出去就是跑出去。

二、先把刷人脚本改稳(别只靠一行MOBPLACE)

你那段可以保留,但要把“刷”和“管”分开。建议新建单独文件,比如QuestDiary\盟重复活.txt,内容改成带固定坐标+范围0:

[@盟重复活]
ACT

MISSION3330330PARAM1330PARAM2330PARAM30PARAM41
MOBPLACE绝对友情ξ鸡哥3330330
MOBPLACE杀戮メ秦王3331330
MOBPLACE杀戮メ浩南3329331
MOBPLACE你拽VS我更拽3332329
MOBPLACE┈→无敌疯子3328332
MOBPLACE决不低头3333328
MOBPLACE?づ杀神3327333
MOBPLACE独领こ法お神3334327
MOBPLACE夏天的虫3326334
MOBPLACE£冬冬£3335326
MOBPLACE£紫雨£3325335
MOBPLACE独行侠3336325
MOBPLACE)ㄣ菰箪ツ阿桀3324336
MOBPLACE)ㄣ菰箪ツ大饼3337324
MOBPLACE输↘мìメ°ň3323337
MOBPLACE飞跃ン拽拽3338323
MOBPLACE我不是神3322338
MOBPLACE疯狂女郎3339322
MOBPLACEゼ小一熙ラ3321339
MOBPLACE阿里山的姑娘3340321
MOBPLACE极度の美女3320340
MOBPLACE高处钸胜寒3341320
MOBPLACE炮王3319341
MOBPLACE誓だ血の狂だ杀3342319
MOBPLACE郁闷秒杀…浪子3318342
MOBPLACEo0oc3343318
MOBPLACE绝情门╀杀人王3317343
MOBPLACE100∴哈3344317
MOBPLACE溡绱儍苽3316344
MOBPLACE钱多多の多多钱3345316
SENDMSG4盟重省人气增加30!
DelayCall30000@盟重复活

要点:
•每个MOBPLACE后面跟地图号3和精确XY,不要只写名字;

-PARAM3设0,范围缩到0格,假人不会出生就散开;
•用DelayCall循环,而不是NPC点一次就完事;

•主脚本里用#CALL@盟重复活,别把30行全塞[@盟重省新区]。

三、加一道“出圈即拉回”的巡检(关键)

在Robot_def\AutoRunRobot.txt里加定时触发:

AutoRunNPCSEC30@CheckDummySafe

然后在RobotManage.txt里写:

[@CheckDummySafe]
ACT

;遍历常见假人名,也可用IsDummy判断
IF

OR
NAME=绝对友情ξ鸡哥
NAME=杀戮メ秦王
NAME=杀戮メ浩南
NAME=你拽VS我更拽
NAME=┈→无敌疯子
NAME=决不低头
NAME=?づ杀神
NAME=独领こ法お神
NAME=夏天的虫
NAME=£冬冬£
NAME=£紫雨£
NAME=独行侠
NAME=)ㄣ菰箪ツ阿桀
NAME=)ㄣ菰箪ツ大饼
NAME=输↘мìメ°ň
NAME=飞跃ン拽拽
NAME=我不是神
NAME=疯狂女郎
NAME=ゼ小一熙ラ
NAME=阿里山的姑娘
NAME=极度の美女
NAME=高处钸胜寒
NAME=炮王
NAME=誓だ血の狂だ杀
NAME=郁闷秒杀…浪子
NAME=o0oc
NAME=绝情门╀杀人王
NAME=100∴哈
NAME=溡绱儍苽
NAME=钱多多の多多钱
ACT

IF

NOTInSafeZone
ACT

MAPMOVE3330330

这样每30秒扫一遍,谁出安全区直接扔回330/330,比指望MOBPLACE自己听话靠谱得多。

四、把假人行为关到“只站立/极卸围”

进M2Server→选项→功能设置→离线人物配置:
•取消“挂机人物自动走动”(或改为极卸围);

•取消“自动攻击怪物”“自动喝药”;

•登陆地图固定为盟重(3),坐标330/330;

-活跃度调慢一点,30~60秒一次,别设2秒。

如果引擎支持ActionMode,给假人设站立或轩度走动(比如半径5以内),不要开RANDOMMOVE大范围随机。

五、别让QF和Robot打架

打开MirServer\Mir200\Envir\Market_Def\QFunction-0.txt,搜:
[@PlayOffline]
[@LogOut]
[@OffLine]

如果里面写了MAPMOVE3或RANDOMMOVE,而你又想让假人老老实实蹲安全区,就把这些段里“出安全区后继续乱飞”的逻辑注释掉,或者加InSafeZone判断:
IF

NOTInSafeZone
ACT

MAPMOVE3330330
break

六、地图和命名两个细节

•MapInfo.txt里盟重(3)确认没有NORECONNECT(3)把小退的人强传土城外;

-假人名字别和真玩家重名,否则真玩家小退被当成假人拉走;
•假人数量控制在20~40个足够,刷100个只会让服务器卡、真玩家一看全是同批名字直接弃服。

七、最终推荐结构

1.NPC主入口:判断ISADMIN→#CALL@盟重复活+发消息
2.盟重复活.txt:精确坐标刷30个+DelayCall30秒循环
3.RobotManage.txt:@CheckDummySafe每30秒InSafeZone校验
4.M2后台:离线挂机关自动走动、关自动打怪
5.QFunction-0.txt:下线逻辑加安全区兜底

按这个结构改完,假人不会再“跑到安全区外面去”,也不会因为定时器互相抢坐标而消失或重叠。真要长期留人气,还是得靠泡点活动和首充活动,假人只是过渡,别把30个名字当永久方案。
[顶部]