在QFunction-0.txt添加[@PlayDie]死亡弹窗复活脚本,引擎报错指向倒数第二行空白行,肉眼看这一行没有任何文字,这类报错并不是空白行本身出错,而是上一行末尾存在非法字符、多余括号、换行符错乱,或是末尾写了引擎不识别的标记,引擎读取时把错误顺延到下一行空白行,所以报错提示定位在空白行,按照下面顺序逐项排查修复。
首先看脚本末尾这一行内容,(@@sendmsg @storage @getback @PlayDie @@useitemname),这是整段脚本最核心错误点。传奇引擎脚本不支持这种括号包裹多段触发标记的写法,这一行不属于[@PlayDie]死亡脚本的有效内容,属于粘贴脚本时误带入的多余代码。引擎读取到无法识别的括号与标记组合,解析失败,报错自动跳到下一行空白行,就会出现空白行报错的现象,直接把这一整行全部删除。同时检查脚本内BREAK指令,BREAK用于终止循环,在当前死亡触发脚本内不需要使用,保留BREAK也会造成逻辑异常,一并移除。
核对脚本内命令拼写错误,脚本里面GmExeCute存在大小写混合拼写,引擎识别命令区分大小写,正确指令为GMEXECUTE,字母大小写不一致会导致引擎无法识别指令,触发脚本解析异常。sendmsg指令前面不需要加GMEXECUTE,sendmsg本身就是服务端消息推送指令,原地复活段里面GMEXECUTE 复活 Self可以保留,但拼写必须修正。回城复活脚本存在逻辑错误,回城复活已经执行mapmove传送至土城,脚本内依旧写了原地复活的消息提示文字,文字描述和实际效果冲突,需要修改sendmsg内提示内容,避免玩家看到错误提示。
检查#SAY文本内换行符与特殊空格,#SAY对话框内换行使用\符号,符号前后多余全角空格、制表符,会造成引擎解析对话框文本出错。不要直接复制网页或者文档里的脚本,这类文本自带不可见的隐藏控制字符,粘贴进记事本之后肉眼看不到,引擎读取就会报语法错误。全部脚本使用系统自带记事本打开编辑,不要用Word、WPS文档修改,文档编辑器会自动加入隐藏格式符号,破坏脚本编码。编辑完成另存为,编码选择ANSI,编码错误也是常见报错来源。
检查脚本分段标签结构,[@PlayDie]、[@原地复活]、[@回城复活]标签结构需要完整闭合,#IF、#ACT、#ELSEACT指令必须单独成行,不能和其他文字放在同一行。原地复活段#ELSEACT后面的messagebox提示语句,确认指令格式正确,messagebox弹出提示结束后没有多余符号。脚本内的对话框跳转标记<【原地复活】/@原地复活>这类写法,标记前后不能存在多余换行,每一组点击跳转标签保持在同一行内。
移除多余不可见空白字符,把报错位置附近所有行全部删除,手动重新输入脚本,不要粘贴复制。很多时候复制来的脚本末尾带有回车符、零宽空白字符,记事本界面看不到,引擎解析文本的时候判定为非法字符,报错指向下一行空白。删除多余行之后,逐行保存,重启M2引擎加载QFunction-0.txt,查看是否还报脚本错误。
修正之后完整脚本内容,[@PlayDie] #If #say <本服最新推出的复活方法,请选择!/FCOLOR=253>\ <【原地复活】:花费50000000元宝立即原地复活!/FCOLOR=250>\ <【回城复活】:不需要元宝,不用小退,就可以立即复活在土城!/FCOLOR=250>\ <【原地复活】/@原地复活> <【回城复活】/@回城复活> [@原地复活] #if CHECKGAMEGOLD > 49999999 #SAY 你成功复活了!\ <【 关 闭 】/@exit> #act GMEXECUTE 复活 Self sendmsg 1 勇士【<$USERNAME>】使用50000000个元宝,在%m(%x,%y)原地复活,继续他的冒险生涯! GAMEGOLD - 50000000 CHANGEMODE 1 0 #elseact messagebox [错误]:你没有50000000个元宝!\ [@回城复活] #SAY 你成功在土城复活了!\ #ACT GMEXECUTE 复活 Self sendmsg 1 【<$USERNAME>】选择回城复活,复活到土城安全区! CHANGEMODE 1 0 mapmove 3 333 333
修改完成之后,保存QFunction-0.txt文件,完全关闭M2引擎和所有网关程序,重新依次启动服务端,M2会重新加载QFunction脚本,查看M2控制台是否还有脚本报错。如果控制台不再提示脚本错误,进入游戏测试死亡触发弹窗,点击两个复活选项验证元宝扣除、角色复活、地图传送功能。调试脚本每次修改文件都需要重启引擎,直接热加载可能不会更新脚本内容,报错依旧存在。修改脚本前备份原始QFunction-0.txt文件,脚本出错可以直接还原备份文件,避免原有功能丢失,相关操作仅用于本地单机学习测试,使用资源需要遵守相关规定。
传奇QFunction-0.txt脚本报空白行错误死亡触发脚本语法问题完整修复教程
来源:
作者:
点击:

