Я пишу мод Factorio и пытаюсь понять, почему он не работает. Могу ли я где-нибудь сделать какую-нибудь запись ошибок / отладки? И ручное (печать переменных), и простое сообщение об ошибке (доступ к несуществующему свойству) было бы здорово. Я знаю о player.print
методе, но я могу заставить его печатать только строковые литералы, а не объекты:
script.on_event(defines.events.on_player_created, function(event)
pcall(function()
local player = game.get_player(event.player_index)
player.print("Hi player") -- works
player.print(player) -- does not work. Any error message would be nice
end)
end)
Я также пробовал файл журнала в папке приложения и различные режимы отладки (F5 / F6 в игре), но до сих пор не нашел ничего полезного.
ToString()
метод.Ответы:
Согласно этому сообщению на форуме
источник
factorio.exe
из командной строки запускает игру, но сразу возвращается, и я вижу только вывод первой строки журнала. Использованиеstart factorio.exe /wait
также не работает, потому что оно только открывает окно консоли и вообще не запускает игру.Вы можете использовать функцию error (), которая отправляет factorio-current.log
Например:
ошибка («Привет, игрок»)
или
Ошибка (serpent_block (table_name))
источник
В LuaGameScript есть метод write_file.
( http://lua-api.factorio.com/0.15.23/LuaGameScript.html#LuaGameScript.write_file )
Файл будет в конечном итоге в папке
script-output
под%APPDATA%/Factorio
, рядом сscenarios
папкой.источник