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

热血传奇脚本错误修正实操:装备DB字段异常与QFunction触发报错排查手册

热度:
传奇弹出“脚本错误”或装备穿戴/拾取/合成时报装备脚本错误,根源集中在五处:M2日志定位错文件行号、StdItems.DB字段越界或缺失、QFunction/ItemScript触发命令写错、脚本编码与符号格式不对、引擎版本命令不兼容。按下面顺序修,别从头翻全部脚本。

一、先抓报错源头(M2日志)
启动GameSrv/M2Server.exe,看底部“日志/控制台/运行日志”,红字格式通常是:
[Error]Scriptfile'QFunction-0.txt'line56:Unknowncommand@Equip_1001
或加载物品(Idx:418Name:七彩项链)数据失败Code=-100
记录三要素:文件名、行号、错误命令。对应路径:
•NPC/老兵/商人文:Mir200\Envir\Market_Def\

-任务/登录/地图事件:Mir200\Envir\QuestDiary\、MapQuest_def\
•装备穿戴/使用触发:Mir200\Envir\QFunction.txt、QFunction-0.txt、ItemScript.txt

-物品库:DBC2000打开MirServer\Mud2\DB\StdItems.DB,或文本版Mir200\Envir\StdItems.txt
•日志存档:Mir200\Log\ScriptError.log、ErrorLog.txt

二、装备数据库(StdItems.DB/StdItems.txt)字段修正
用DBC2000或记事本打开,逐行核对报错装备:
•Name:无前后空格、无不可见字符、与脚本调用完全一致(区分大小写、全半角)

-Idx/物品ID:唯一不重复,GOM/GEE自定义装备ID放10000+区间,别和原版撞车
•StdMode(标准模式):武器=5,衣服=10,项链=2,手镯=3,戒指=4,鞋子/腰带=6/7,药品/材料=0/1,填错直接加载失败

-Shape/Looks:外观编号对应客户端Items.wil/StateItem.wil存在图片,指向空资源会黑屏或报错
•AC/AC2/MAC/MAC2/DC/DC2/MC/MC2/SC/SC2:纯整数,空值填0,不可填字母/负号/超65535

-NeedLevel/NeedJob:等级整数;职业限制1战士2法师4道士7通用,写错穿不上
•DuraMax:持久不可为0,建议99000之类合理值

•自定义列(切割/倍攻/元素):引擎不支持该列或列顺序错乱→删列或换对应引擎版本

改完点“编译结构/Compact&Repair(压缩修复数据库)”,重启M2。

三、装备触发脚本(QFunction/ItemScript)修正
穿戴触发标签示例:
[@Equip_1001]
#IF
CheckItem屠龙
#ACT
SENDMSG0装备屠龙,攻击提升!
BREAK
常见错法:
•标签名拼错(@Equip_10001、多下划线、@StdMode_0应为@StdMode0)

-#IF/#ACT/#ELSEACT/#ENDIF未成对,缺BREAK导致死循环
•命令拼错:GIVE写GiveItem、MOVD0100写MOVD0100、CALL[QFunction.txt]@XX路径错

-触发buff/技能ID超出Magics.txt范围,或buff名和引擎配置不一致
•引用外部文件(名单.txt、功能\奖励.txt)路径多写少写..\,文件实际不存在

改完文件编码必须ANSI/GBK,UTF-8带BOM必乱码报错;Notepad++另存为ANSI覆盖。

四、合成/强化/穿戴限制脚本
路径:Mir200\Envir\*下合成脚本、NPC脚本
-#IF后CheckItem材料数量名称必须与StdItems.DB完全一致
•成品GIVE的物品ID/名称必须存在,概率参数0—100

•穿戴限制段:CheckJob/CheckLevel参数写反,导致“等级够仍提示不足”

-末尾补BREAK,避免继续执行下方段落

五、引擎版本不兼容
BLUE/HERO不支持GOM专属命令(如AllowThroughvsThroughHum、SetItemAttr参数差异),跨引擎搬脚本必报“未知命令”。解法:对照所用引擎命令手册逐条替换,或用工具批量转换,重启M2。

六、重载与验证流程
1.备份StdItems.DB、QFunction.txt、涉及NPC脚本
2.关M2→删Mir200\Log\ScriptCache.dat(有则删)→改文件→启M2
3.控制台无红字→建测试角色→GIVE问题装备→穿戴/使用/攻击触发→观察是否再弹脚本错误
4.仍报错按行号回到对应txt继续缩行注释定位

七、典型现象速查
•启动即刷Code=-100物品数据库加载失败→StdItems.DB某行字段NULL/非数字/Idx冲突→DBC2000修行

-穿戴弹脚本错误→QFunction-0.txt的[@Equip_ID]标签/命令错→按日志行号改
•装备名显示??→Name字段编码或客户端Wil索引不一致→ANSI重存+核对补丁

-NPC买装备崩→Market_Def里GIVE/SELL物品名库里没有→补StdItems或改脚本名
•合服/换引擎后全屏脚本错→命令集不兼容→逐文件替换对应引擎语法
[顶部]