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

传奇脚本人物来回跑死循环:坐标/条件/GOTO三种修法

热度:
人物在两个点之间反复折返、原地转圈、卡墙后乱窜,分两端:一端是服务端NPC/机器人脚本里GOTO跳不出去,一端是电脑/手机按键脚本寻路逻辑坏了。先停脚本再查,别让号在怪堆里空跑一晚上。

先判现象
•A点传B点、B点又传A点,永不停:脚本互跳没终止条件。

•卡墙角左右横跳:坐标不可走、障碍物没避开、寻路模式抽风。

•上线就被传回安全区再跑出去再传回:MapInfo或上线触发(QManage/QFunction)里写了强制定点/归城。

•M2弹“脚本死循环/ScriptGotoCountLimitexceeded/GOTO超过上限”:服务端脚本逻辑闭环。

服务端脚本(QuestDiary/Market_Def/Robot/QFunction)修法
1.看M2日志:Log\ScriptLog.txt或M2弹窗会写“NPC:XXX文件:QuestDiary\某目录\某.txt行号:XX”,直接进那个文件。
2.删无条件跳自己:
错:[@Main]#ACTSENDMSG5跑GOTO@Main
对:加条件、加计数器、到次数BREAK。
3.A跳B、B跳A的互锁,用人物变量做一次性开关:
进过一次置Human变量=1,下次#IFEQUAL人类变量1就走#ELSEACTBREAK,不再互跳。
4.来回跑点别用裸GOTO,用DELAYGOTO加延迟:
MAPMOVE3320330
DELAYGOTO1000@去B点
[@去B点]
MAPMOVE3330320
DELAYGOTO1000@Main
再配计数器:H$跑次数大于500就BREAK。
5.坐标别写错:A/B两点不能相同,不能超出地图宽高,不能落在墙里。两点间距建议>5格,用MapInfo.txt核对地图尺寸。
6.装备回收/经验发放类最容易死循环:背包没东西还一直TAKE再GOTO自己。入口先#IFCHECKITEM某物1,没有就#ELSEACTBREAK。
7.临时压报错(治标):Mir200\!Setup.txt里ScriptGotoCountLimit=10改10000~50000,M2选项里“脚本循环次数”从20提到50~100,重启M2。但逻辑不修,调再大也会把CPU吃满。

电脑按键/脱机/云手机挂机脚本修法
•角色乱跑:挂机范围画太大、打怪半径太长、找怪条件太严,怪不在范围里就一直移动找怪。把挂机范围缩到8~15格,选怪密、路宽、没拐角的点。

•卡墙转圈:关“智能寻路”,开普通寻路;脚本里加障碍物检测,移动失败3次切备用坐标或直接回城。

•两点太近乱晃:A/B节点距离<10格,脚本会像抽风一样折返,重新录点,节点间留空地。

•速度太快:移动延迟设800~1500ms,别100ms点一次,跑得比人快就被判定异常、也被自己寻路搞死。

•分辨率/缩放不对:窗口模式、DPI缩放、刘海屏、悬浮窗遮挡,都会让“点NPC/点地面”点空,角色瞎跑。固定分辨率、游戏前台、别最小化。

•多脚本冲突:自动捡物、自动买药、自动回城、自动跑图同时开,条件打架。先只开“自动打怪+自动喝药”,稳了再加别的。

上线就被传回/转圈传送
查MapInfo.txt里土城/盟重是不是加了强制定点、坐标锁定、边界回传;查QManage[@Login]、Robot里的“假人归城/全员归集/上线回安全区”。把“每次上线都归位”改成“仅首次创建角色/死亡回城才归位”,用变量记一次,别每帧检测。

最快排错顺序
1.停脚本/小退角色,别让号继续空跑。
2.看M2红错→定位文件行号。
3.查GOTO/DELAYGOTO/CALL有没有跳自己、互跳、没BREAK。
4.查MAPMOVE坐标是不是相同/出界/在墙里。
5.查变量有没有初始化、有没有重置。
6.改完备份原文件,重载NPC/重载QFunction/重启M2。
7.客户端脚本先关智能寻路、缩范围、加延迟、单功能测试。

最小可用“来回跑”模板思路
•用计数器:跑1次INC,跑够N次BREAK。

•用延迟:别瞬跳,DELAYGOTO1000~2000。

•用条件退出:血量低/蓝量低/背包满/到点停止/按某热键停止。

•用不同可走坐标:A点(330320)B点(360340),中间没墙没NPC。

•别在[@Login]里再触发上线事件,别在经验事件里再发经验事件,别在回收里再调回收。

改参数只是让引擎不弹窗,真死循环会把服拖卡。坐标错、条件漏、GOTO无出口,这三样改掉,来回跑脚本就稳了;客户端挂机脚本则是范围、寻路、延迟、分辨率四样没调好才会原地发疯。
[顶部]