main()
Основная функция, вызывается единожды за запуск скрипта. В ней можно использовать задержки (wait) и бесконечные циклы, при этом не нарушая работу игры.
В действительности событие main является не событием, а сопрограммой, выполняющейся в отдельном Lua-потоке.
Это и даёт возможность прерывать её выполнение на какой-то промежуток времени и затем продолжать работу с того же места без каких-либо негативных последствий.
function main() -- загрузим что-нибудь перед тем, как запустить бесконечный цикл loadStuff() key1_timesPressed = 0 -- бесконечный цикл - в данном примере именно в нём реализована основная часть скрипта while true do -- в нём обязательно должна присутствовать хотя-бы нулевая задержка, иначе игра попросту зависнет -- объясняется это тем, что весь процесс игры выполняется последовательно, в том числе и скрипты MoonLoader-а -- и поэтому периодически игре нужно давать возможность обработаться, делая паузу в каждом бесконечном цикле любого скрипта -- нулевая задержка приостановит выполнение скрипта ровно на один кадр (задержка в main не оказывает влияния на выполнение остальных событий) wait(0) if isPlayerPlaying(playerHandle) then if isKeyDown(0x31) then key1_timesPressed = key1_timesPressed + 1 print("Key 1 pressed " .. key1_timesPressed .. " times.") wait(500) end doCoolStuff() end end end