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