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

传奇脚本漏洞怎么查:查看器找到问题后的处理流程

热度:
查传奇脚本错误,先分两类:一类是引擎直接报错的语法/加载问题,一类是能跑但能刷元宝、重复领奖、越权执行的逻辑漏洞。脚本查看器只是把问题标出来,真要处理还得人工看逻辑。

一、先抓日志,别上来就信查看器

服务端这几个地方比查看器更准:
•Mir200\Log\ScriptLog.txt:脚本错误、第几行、哪个文件

•M2Server控制台:死循环、标签未定义、CALL路径找不到

-数据库/物品库:GIVE的物品名和Items里对不上,也会表现成“脚本没反应”
•MerChant.txt/Market_Def:NPC没挂上脚本,不是脚本错,是配置错

日志里常见提示:
•第132行未知命令CHECKLEVE→拼错,应是CHECKLEVELEX

•标签[@GetAward]未定义→CALL过去但目标文件没这个段

•脚本死循环NPC:泡点命令:GOTO@Loop→没终止条件

-文件不存在:QuestDiary\活动\签到.txt→路径改了但CALL没改

二、脚本查看器找到漏洞后,按这个顺序来

1.备份
改之前把文件另存成NPC_原版.txt、回收_20260927.txt。别在原件上直接梭。改炸了能回滚,比任何查看器都管用。

2.看漏洞类型
查看器标红的一般是:
•命令拼错(CHECITEM/CHECKLEVE/GIV)

•缺#IF/#ACT/#SAY配对

•括号、换行、\符号不对

•CALL路径不存在

-标签重名

查看器标黄的一般是:
•变量没初始化

•奖励没领过标记

•循环没退出条件

•背包满没处理

•普通玩家能CALL到管理员段

3.语法错:照引擎命令手册改
比如:

#IF
CHECITE屠龙
#ACT
GIVE屠龙1

改成:

#IF
CHECKITEM屠龙1
#ACT
GIVE屠龙1

改完用查看器“重新校验”,再开M2脚本重载,别每次都重启整机。

4.逻辑漏:补状态、补次数、补边界
典型“无限领礼包”:

[@Login]
#IF
CHECKLEVELEX>1
#ACT
GIVE新手礼包1

修法:

[@Login]
#IF
EQUALM800
#ACT
GIVE新手礼包1
MOVM801
#ELSEACT
SENDMSG6你已领取过新手礼包

M变量按人物存,G变量全服共享,别用G记“某人领没领”,会被别人覆盖。

5.回收/发元宝类漏洞
回收脚本别只写:

TAKE沃玛装备1
GAMEGOLD+500

要补:
•TAKE前CHECKITEM沃玛装备1

•TAKE后确认扣除成功再发

•背包空格CHECKBAGSLOTS1

•绑定/非绑定分开

•元宝类型分清:绑定元宝、非绑定元宝、游戏币不是一回事

6.越权/CALL绕过
很多版本把管理员功能写在一个公共段里,比如:

[@GMGive]
#ACT
GIVE裁决之杖1

别让玩家NPC也能#CALL到这段。修法:
•段开头加CHECKADMIN或密码/权限判断

•公共段内部再验一次人物状态

•敏感命令(刷怪、删怪、发装备、改属性)不准从玩家NPC直接跳进去

7.死循环
常见:

@Loop
GOTO@Loop

或者:

#IF
1=1
#ACT
GOTO@Main

修法:
•加计数器:INCN11,N1>100就BREAK

•加时间/次数/状态退出

•一个#ACT里别写两个GOTO

•Setup.txt里ScriptGotoCountLimit只是兜底,不等于脚本写对

三、手动再搜一遍关键词

查看器漏掉的,用记事本/Everything/VSCode搜:
•#CALL

•GOTO@

•GIVE

•GAMEGOLD

•GAMEPOINT

•MOBDELETE

•MAPMOVE

•CHECKADMIN

•MOVM

•MOVG

•SENDMSG

重点看:
•发钱发物前有没有条件

•领奖后有没有写“已领”

•传送前有没有CHECKMAP存在

•循环里有没有BREAK/次数上限

•同一个M变量在登录、点击、击杀、下线里是不是被乱用

四、改完怎么验

别直接上正式服:
1.开测试服
2.建小号:背包满点回收、低等级点高级任务、连点NPC30次
3.建GM号:确认普通号CALL不到GM段
4.看ScriptLog还有没有红字
5.M2开“脚本调试/Call日志”,跑一遍功能
6.同功能点50次,确认不能刷、不能叠、不能越权
7.再重载脚本;还稳再覆盖到正式服

五、新手最容易搞反的点

•查看器说“无错误”≠没漏洞,语法对也能刷元宝

•改了脚本不重载,进游戏还是老逻辑

•用G变量记个人进度,全服串号

•NPC不报错但没反应,是MerChant.txt没挂脚本,不是脚本坏

•死循环后改大ScriptGotoCountLimit只是拖时间,不修根

•加密脚本先备原文件,解密改完再按原加密方式封回去

六、真改不动就这么办

•这段是下载来的破解包、变量满天飞:直接拿同版本原版脚本覆盖

•只保留你要的功能,重写成形@标签

•复杂功能拆开:登录判断一段、点击领奖一段、发物品一段、写状态一段

•不用的CALL、GOTO、管理员段全删,少一段少一个洞

一句话:查看器负责“指位置”,人负责“看逻辑”。语法错改拼写,逻辑错补判断,发奖补次数,敏感段补权限,循环补退出。改一个测一次,别一次性全改完再开机。
[顶部]