传奇架设过程中出现脚本错误,大多集中在NPC对话脚本、功能脚本、地图触发脚本、登录触发器几个板块,报错信息会记录在日志文件内,优先读取日志定位出错行数,再按照对应类型逐个排查修复。
打开服务端目录下LogServer文件夹,找到脚本相关日志文档,日志里面会标注出错脚本文件路径、具体行数、报错关键字,这是定位问题最直接的方式。很多人遇到脚本弹窗报错,直接盲目修改文本,找不到出错位置,修改大量无效内容,浪费大量时间。查看日志的时候,重点留意提示的脚本文件名,打开对应脚本,跳转到提示的行数,检查该行的语法符号,脚本里面的括号、分号、引号必须使用英文半角符号,中文标点是最常见的报错诱因。
NPC脚本类错误占比最高,常见现象是点击NPC直接弹出脚本错误,或者NPC对话框空白,点击选项没有反应。打开Mir200\Envir\MerChant.txt,核对NPC配置文件,检查NPC名称、地图编号、坐标、脚本文件路径是否填写正确,地图编号写错,或者脚本文件路径名称大小写不一致,都会触发加载失败。打开对应的NPC脚本文本,检查[@main]、[@xxx]标签,标签符号不能缺失,标签名称不能包含空格和特殊字符。脚本内的变量写法,变量前面的标记符号不能遗漏,变量名称不能使用中文,条件判断语句缺少结束标记,会直接中断脚本加载。如果脚本内有物品检测、扣除金币、传送跳转逻辑,检查物品名称,物品名称必须和物品数据库内名称完全一致,多一个空格都会判定读取失败,触发报错。
地图触发脚本错误,一般表现为进入地图瞬间弹出脚本错误,或者进入地图之后部分自动功能失效。地图脚本存放于Envir\MapQuest_def文件夹,MapQuest.txt负责绑定地图和触发脚本。核对MapQuest.txt里面地图编号和脚本文件对应关系,地图编号错误、脚本文件丢失,读取的时候直接报错。地图触发脚本里面的跳转标签、条件判断、定时器语句,是高频出错点。部分脚本设置进入地图自动发放奖励、检测等级、清除BUFF,条件语句缺少结束符号,当角色踏入地图,脚本执行到错误行就会弹出提示。
登录触发器、定时器全局脚本错误,这类错误不会点击NPC才触发,启动引擎加载脚本阶段就会提示脚本错误,M2引擎加载界面直接提示脚本加载失败。全局脚本放在Envir\QuestDiary目录,这类脚本会在服务启动、角色上线、定时执行的时候运行。检查脚本里面的定时器时间单位,时间数值不能填写负数,循环执行的脚本没有添加终止条件,会造成脚本死循环,引擎抛出脚本错误。角色上线触发脚本,检测等级、背包、元宝的语句,数据库字段名称写错,读取角色数据失败,触发报错。
编码问题也是经常忽略的点,脚本文件保存编码推荐使用ANSI编码,使用UTF-8编码保存txt脚本,中文内容会出现乱码,引擎读取乱码字符直接判定脚本语法错误。修改脚本的时候,打开记事本,编辑完成后点击另存为,编码选项选择ANSI,不要直接默认保存。文件名不要使用中文,脚本存放路径不能带有中文文件夹名称,路径过长同样会出现读取异常。
数据库关联脚本错误,脚本里面读取物品、怪物、技能数据,物品DB数据库内名称和脚本填写名称不一致,或者数据库内字段缺失,执行脚本时读取失败。打开DB工具核对物品名称,注意前后隐藏空格,复制名称粘贴到脚本内,避免手动输入造成文字差异。脚本执行删除物品、添加物品命令,物品编号错误,同样会触发报错。
脚本修复完成后的测试步骤,全部脚本修改保存之后,关闭M2引擎和主控制器,完整重启整套服务端,只重载脚本会残留旧的缓存,部分错误无法复现也无法修复。启动引擎,查看M2加载日志,确认脚本全部加载成功,没有报错提示。进入游戏,触发对应NPC、地图、上线事件,测试脚本功能。如果修改后依旧报错,再次查看日志,确认是否还有其他行报错,很多脚本存在多处错误,修复一处之后下一处报错才会显现。
批量导入脚本资源后出现大量脚本错误,优先检查资源包内脚本文件完整性,资源压缩包解压过程文件损坏,会出现脚本内容残缺,残缺的脚本文件加载直接报错。解压文件前关闭安全防护工具,防止部分脚本文件被隔离,导致文件不全。
在修改脚本时,单次只改动一小段内容,改完重启测试,一次性修改大量脚本内容,出现报错之后很难定位出错位置。做好脚本备份,修改脚本之前复制一份原脚本保存,修改出错可以直接替换回原始文件,减少回滚调试的时间。
传奇架设各类脚本错误识别与处理方法 讲解报错原因和分步修复操作
来源:
作者:
点击:

