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

传奇M2脚本错误与装备脚本报错修正实操步骤

热度:
传奇服务端弹出“脚本错误”或穿戴装备时提示装备脚本错误,先别删版本重装,按M2日志指出的文件名+行号回去改,90%的毛病出在语法符号、编码、数据库字段、触发标签这四块。

一、先锁报错位置:看M2日志而不是猜
启动M2Server后,点底部“日志”或“控制台”,红色行就是报错。关键信息有三段:
•文件路径:如Envir\Market_Def\比奇老兵-3.txt或Mir200\Envir\QuestDiary\XXX\QFunction-0.txt

-行号:Line15/第18行
•错误命令:未知命令CHECKITEMW、缺少#ACT、Field'throw'notfound

Hero引擎看MirServer\Log\ScriptError.log,GOM看M2控制台,GEE看GeeLog\Script.log。
记下来用Notepad++打开那个文件,Ctrl+G跳行,不要全局搜。

二、装备脚本报错的四个高发点
1.脚本里写的装备名和StdItems.DB对不上
QFunction-0.txt里[@TakeOnX]穿戴触发、NPC的GIVE发装、MapQuest_def里卖装,只要写“屠龙”但数据库Name字段是“屠龙·强化版”,或者多了一个空格、用了全角空格,引擎就报“物品不存在”或脚本中断。
修正:用DBC2000或DB_Commander打开StdItems.DB,复制标准Name字段,回脚本里整段替换,别手打。

2.穿戴/取下触发标签写错
装备触发写在QFunction-0.txt:
[@TakeOnX]是穿到X位置(武器位、衣服位对应编号)
[@TakeOffX]是取下
错误写法包括标签多下划线([@TakeOn_0])、[@Equip_1001]里ID拼错、#ACT段里直接GOTO跳回自己造成死循环。
修正:标签名严格对照引擎规范;死循环加BREAK或改逻辑;#IF后必须跟条件,再跟#ACT或#ELSEACT,不能#IF完直接空行或再来#IF。

3.数据库字段缺或越界
M2启动报Field'UniqueItem'notfound/Field'throw'notfound,是引擎升级后StdItems.DB没加新字段。
用DBC2000打开Mud2\DB\StdItems.DB,按报错字段名手动加一列(类型Integer,默认0)。
同时查这一行装备:DuraMax(最大持久)填0会穿不上,NeedLevel负数会异常,Stdmode填错(武器应是5、衣服10等)会导致类型识别失败,Ac/Dc/Mc写“4-”缺后半段也会让属性解析崩。

4.物品ID重复或超范围
StdItems.DB按ID排序,两件装备用同一个ID,或者ID超出引擎范围,穿戴时脚本读到的属性是另一条记录的,表现就是“穿上后属性乱跳/问号/再点就脚本错误”。
修正:把后加的自定义装备ID改成未占用的数字,全身检索脚本里引用旧ID的地方一起换。

三、通用脚本语法错(全角符号/编码/结构)
•中文标点:,。()“”全部改成英文.()"',传奇脚本只认半角。

-编码:记事本另存为UTF-8会让GOM/GEE/Hero读成乱码,必须用Notepad++转ANSI(GBK)覆盖保存;若引擎明确要UTF-8无BOM才选那个,别混用。
•隐藏字符:从网页/QQ复制的脚本行首行尾常带不可见控制符,Notepad++开“显示所有字符”删掉重打。

-结构残缺:#IF后没条件、#ACT后没命令、GOTO目标[@XXX]不存在、#CALL调用的外部文件标签没有,都会加载失败。

四、改完后的重载顺序
1.改完txt脚本:M2里“刷新NPC”或“重新加载脚本”(不关服也行,看引擎)。
2.改了StdItems.DB:必须关M2→存盘→开M2,热重载读不到DB改动。
3.改了客户端显示(StdItems.def外观):客户端补丁也要换,否则服务端属性对、客户端显示问号。
4.仍报错就把Mir200\Log下ScriptError.log清空再起一次,看是不是老日志没刷掉。

五、快速对照表
•提示“第X行未知命令”→那行命令拼错或引擎不支持(老引擎用新命令),查引擎命令手册

-提示“FieldXXXnotfound”→StdItems.DB缺字段,DBC2000补列
•穿装备弹脚本错误但脱下没事→QFunction-0.txt的[@TakeOnX]段语法或标签错

-NPC点购买/领取后报错→Market_Def里GIVE/SELL后物品名不在StdItems.DB
•全部装备都异常→先查StdItems.DB是否字段数错乱、是否UTF-8存的DB被第三方工具破坏

按“日志行号→文件跳转→查名称/ID/字段/半角/编码→改完按类型重载”这套顺序走,不用通读整套脚本也能把装备脚本错误按件修掉。
[顶部]