单机版传奇启动后出现脚本报错,提示变量赠送记录啊已存在,ADDSKILL命令异常,还有txt记录文件找不到,这类报错都集中在QManage全局脚本,下面逐条拆解报错原因和对应的修复步骤。
第一条报错信息,变量赠送记录啊已存在,变量类型HUMAN,脚本命令VAR,NPC名称QManage。QManage是全局登录脚本,角色每次上线都会加载里面的变量定义代码。VAR命令作用是声明自定义变量,HUMAN代表人物变量,人物变量只针对单个角色生效。问题根源是脚本里重复写了VAR 赠送记录啊,每次角色登录都会重复执行变量声明,引擎检测到同名变量已经创建,直接抛出脚本错误。打开Mirserver\Mir200\Envir\QManage.txt,使用文本查找功能搜索赠送记录啊,找到VAR 赠送记录啊这一行。如果这一行写在[@Login]登录段里面,每次上线都会执行,就会反复声明同一个变量。处理方式,把变量声明VAR语句移出[@Login]登录触发段,放到脚本最顶部全局位置,全局变量只需要声明一次。如果保留在登录段,改用CHECKVAR判断变量是否存在,不存在才进行定义,避免重复声明。修改完成保存文件,重启服务端,这条变量重复报错就会消失。
第二条报错,脚本命令ADDSKILL,NPC名称QManage,参数1火球术,参数2等级3。ADDSKILL是给角色增加技能的脚本指令,出现这个报错常见几种情况。第一种,技能名称和引擎内技能数据库名称不一致,数据库里技能名称存在空格、错别字,脚本填写火球术和数据库不匹配,指令执行失败。打开DB数据库,查看Magic.db技能表,核对火球术的完整名称,脚本内名称必须和数据库完全一致。第二种,角色身上已经拥有火球术,部分引擎在角色已有技能时执行ADDSKILL会抛出警告报错。可以在ADDSKILL前面增加CHECKSKILL判断,先检测角色是否没有该技能,没有技能才执行添加。第三种,技能等级参数填写错误,ADDSKILL第二个参数是技能等级,需要确认引擎支持的技能等级范围,超出范围会执行失败。修改示例,在脚本内写CHECKSKILL 火球术 = 0,下一行写ADDSKILL 火球术 3,只有角色没有火球术的时候才执行添加动作。修改QManage.txt保存,重启M2引擎,ADDSKILL相关报错消除。
第三条报错,文件没有找到,路径D:\Mirserver\Mir200\Envir\MapQuest_def\..\一休制作\灵符解封\解封玩家名字记录.txt。两个点代表返回上一级目录,MapQuest_def上级目录是Envir,完整读取路径就是Mirserver\Mir200\Envir\一休制作\灵符解封\解封玩家名字记录.txt。报错意思脚本尝试读取这个txt文本文件,但是文件夹或者目标txt不存在。打开Mirserver\Mir200\Envir目录,查看是否存在一休制作文件夹,文件夹里面是否有灵符解封子目录和解封玩家名字记录.txt。第一种处理办法,按照路径手动新建文件夹层级,新建空白txt文档,文件名和解封玩家名字记录.txt保持完全一致,注意不要把系统隐藏后缀名显示出来,避免新建文件变成解封玩家名字记录.txt.txt。第二种处理办法,找到调用读取文件的脚本代码段,如果这个记录文件功能不需要,可以直接注释掉读取文件的脚本行,在对应行最前面加上分号,引擎就不会执行这一段代码,不再提示文件缺失。如果需要保留灵符解封功能,除了新建目录和空白txt,还要检查脚本内写文件、读取文件的命令,确认文件路径写法正确,不要混用相对路径和绝对路径。
全部修改完成后的操作步骤,关闭M2引擎和所有网关程序,保存修改后的脚本文件,重新启动整套服务端。启动之后查看M2日志窗口,确认三条报错不再弹出。修改脚本的时候注意文本编码,使用记事本打开保存,编码选择ANSI格式,使用其他编辑器保存成UTF8会出现中文乱码引发额外脚本异常。修改QManage.txt的时候不要随意删除原有[@Login]、[@Logout]等基础段落,只调整报错对应的代码行,防止角色登录、退出功能出现新问题。
常见踩坑点汇总,VAR人物变量放在登录触发段造成重复声明;技能名称和Magic.db数据库内名称不一致;缺少自定义文件夹和记录txt文件;文本保存编码错误引发中文识别异常;修改脚本之后没有完全关闭M2重启服务端,配置不生效。
按照顺序处理,先修复变量重复定义问题,再增加技能判断语句处理ADDSKILL报错,最后补齐缺失目录与txt文件或者注释文件读取代码,重启服务端之后,这三组脚本报错就可以全部解决。
传奇单机版QManage脚本报错变量赠送记录啊已存在ADDSKILL文件缺失修复教程
来源:
作者:
点击:

