有人可以向我解释这个错误吗?我是Lua的新手,我想知道我做错了什么!
这是我的清单。Lua https://pastebin.com/KiUEajMm
我收到此错误:
ERROR: Unable to load module 'game_inventory': LUA ERROR:
/game_inventory/inventory.lua:117: attempt to index local 'itemWidget' (a nil value)
stack traceback:
[C]: in function '__index'
/game_inventory/inventory.lua:117: in function 'onInventoryChange'
/game_inventory/inventory.lua:77: in function 'refresh'
/game_inventory/inventory.lua:47: in function 'init'
/game_inventory/inventory.otmod:8:[@onLoad]:1: in main chunk
[C]: in function 'reloadModules'
/client_modulemanager/modulemanager.lua:149: in function 'reloadAllModules'
/client_modulemanager/modulemanager.otui:75: [@onClick]:2: in function </client_modulemanager/modulemanager.otui:75: [@onClick]:1>
答案 0 :(得分:0)
该错误表示您尝试访问itemWidget
的方法nil
。因此,如果存在itemWidget
可能是nil
的可能性,则必须进行以下检查:
if itemWidget == nil then
itemWidget:setStyle(InventorySlotStyles[slot])
...
end
使用您发布的代码,我只能猜测为什么itemWidget
是nil
:
inventoryPanel:getChildById('slot' .. slot)
返回nil
'slot' .. slot
而不是'slot ' .. slot
->缺少空格)inventoryPanel:getChildById('slot' .. slot)
仅在初始化功能结束或类似的操作之后起作用