Вообще крайне полезная вещь. У меня с тех пор, как я перешёл на новый getimage, стали почему то глючить горячие клавиши Пилота. Запуск скрипта по ним без проблем, а вот с остановкой бывают проблемы. То он пишет что модуль не найден, а иногда и просто виснет. Плюнул, сделал прерывание работы скрипта путём анализа нажатия клавиш. Но у меня было чуть по другому сделано, не как предложил Cirus. Решил на практике поэкспериментировать с битовыми операциями (а то всегда путаю где младший байт, а где старший) и натолкнулся на другой забавный глюк. Интересно было бы понять причину. Предлагаемый пример скрипта при первом запуске работает как надо, а вот если запустить повторно, будет ждать нажатия клавиши CTRL, хотя чётко прописан останов скрипта.
код
Код
--lua
log "clear" log "mode compact"
local ffi = require("ffi")
ffi.cdef[[short GetKeyState(int vKey);]]
function getkeystate(key)
if bit.band(ffi.C.GetKeyState(key), 256) ~= 0 then return true
else return false
end
end
local x=255+122
log(bit.band(x,256))
stop_script()
while true do -- ждём нажатия CTRL
if getkeystate(17) then break end
end
while true do -- ждём отпускания CTRL
if not(getkeystate(17)) then break end
end
Хотя я не удивлюсь если только у меня некорректно работает остановка работы скриптов.