- 已编辑
四、常见报错信息及解决办法
同时推荐查看Dice!文档的附录:lua报错信息说明。这里只列举在该教程中会出现的报错信息并加以解释。
骰娘运行lua文件G:\Dice - 副本\Dice3306860448\plugin\测试.lua失败:G:\Dice - 副本\Dice3306860448\plugin\测试.lua:3: module 'aaa' not found:
no field package.preload['aaa']
no file 'G:\Dice - 鍓湰\Dice3306860448\plugin\aaa.lua'
no file 'G:\Dice - 鍓湰\Dice3306860448\plugin\aaa\init.lua'
...
(下略)
产生原因:①UTF-8编码且存在require
或loadLua
的脚本,在含非ASCII字符集的路径中运行,见上一条
②放在了读取不到的地方,例如plugin\test\aaa.lua
。这种情况不一定会产生如上的乱码。
解决办法:①将脚本全部转码或将骰娘转移至ASCII字符集的路径(可以简单理解为英文+数字+键盘上打得出的大部分英文符号)
②修改package.path
,具体见->RainChain的回帖(非常感谢补充)
骰娘调用G:\Dice - 副本\Dice3306860448\plugin\DriftingBottles.lua函数throw_bottle失败!
G:\Dice - 副本\Dice3306860448\plugin\DriftingBottles.lua:103: attempt to index a nil value (global 'file')
产生原因:明明已经给file
变量赋值了以getDiceDir()
开头的路径,但是UTF-8编码的脚本在含非ASCII字符集的路径中运行,导致file
变量未能正常写入,变成了nil
解决办法:如果只存在文件读写可以考虑转码,但更推荐修改骰娘的路径
骰娘调用G:\Dice\Dice3306860448\plugin\签到.lua函数ttbd失败!
G:\Dice\Dice3306860448\plugin\json.lua:184: unexpected character '' at line 1 col 1
注:上述文本中,''
之间应当有一个符号,为黑色菱形中间带一个问号。因为实际上代表空字符所以可能在复制后消失了
产生原因:可能是让json.lua
解码了nil
或空
内容
解决办法:重新看一下是不是脚本中的初始化部分没做对,或者在其前面加一个条件判断使其不进行解码
骰娘调用G:\Dice\Dice3306860448\plugin\签到.lua函数ttbd失败!
G:\Dice\Dice3306860448\plugin\签到.lua:29: attempt to index a nil value (global 'j')
产生原因:这一行的内容是j.usagi = {}
。试图对空变量j
使用索引
解决办法:声明j
。在出现问题的行前面添加j = {}