|
|
|
Вопрос по луа |
|
|
cirus |
24.2.2018, 21:20
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26744
Пользователь №: 16.971
Возраст: 29
|
Цитата Как округлять хотяб чтобы 4 цифры после запятой? Код --lua function float (number, accuracy) return string.format("%." .. accuracy .. "f", number) end -- в начало скрипта
time1 = os.clock () wait (1300) -- скрипт time2 = os.clock () - time1
log "clear" log "mode compact" -- передаём в функцию float: число, которое нужно округлить, и число, означающее до скольки знаков после точки округлить. log (float (time2, 1)) -- окгруглить до 1 знака после точки log (float (time2, 4)) -- до 4 log (float (time2, 2)) -- до 2 log (float (time2, 5)) -- до 5 Цитата Вернее былобы правильнее перевести в милисекунды результат time2, он там в секундах просто показывается Код --lua function ms (number) return math.floor(number * 1000) end -- в начало скрипта
time1 = os.clock () wait (1300) -- скрипт time2 = os.clock () - time1
log "clear" log "mode compact" log (ms (time2))
|
|
|
|
cirus |
24.2.2018, 22:28
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26744
Пользователь №: 16.971
Возраст: 29
|
Цитата а на луа финдимидж есть? Можно пример на луа? Вопросы по языку луа лучше не задавать в темах где примеры на языке пилота. Новичкам разобраться потом в каше из двух языков будет не реально. Findimage есть, точнее некоторый костыль, который надо бы переделать под синтаксис луа. Код --lua a = findimage (0, 0, 1920, 1080, "(C:\\pilot\\111.bmp)", "%arr", 2, 80, -1, 5) -- возвращает тип данных string hint (a) if tonumber(a) > 0 then -- поэтому для сравнения с числом переводим строку в число move (arr[1][1], arr [1][2]) -- навести курсор на картинку end Все \ в пути пишутся 2 раза. Массивы(таблицы) в луа, в отличии от языка пилота не %arr[1 1], а arr[1][1]. Каждый элемент в квадратных скобках.
|
|
|
|
dron4938 |
28.2.2018, 14:46
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(cirus @ 28.2.2018, 14:42) Что должен делать скрипт?
тоже что тот огромный) На нажатие клавиш ф1-ф12, запускаются определенные блоки скрипта. нажали ф1 спамится код1 нажали ф2 спамится код2 нажали ф3 спамится код3
|
|
|
|
cirus |
28.2.2018, 15:22
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26744
Пользователь №: 16.971
Возраст: 29
|
Как минимум использовать циклы: Код --lua require("Kbd") arr={"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"}
while 1 do for i = 112, 123 do if Kbd.IsKeyPress(i) then hint ("Нажата " .. arr[i-111]) wait (100) end wait (1) end end Это только пример. Остальное надо дописывать.
|
|
|
|
dron4938 |
28.2.2018, 17:12
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(cirus @ 28.2.2018, 15:22) Как минимум использовать циклы: Код --lua require("Kbd") arr={"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"}
while 1 do for i = 112, 123 do if Kbd.IsKeyPress(i) then hint ("Нажата " .. arr[i-111]) wait (100) end wait (1) end end Это только пример. Остальное надо дописывать. Не могу сообразить как реализовать через циклы( Этот в половину строк уменьшил, чуть понятнее стало. код
Код --lua require("Kbd") ff = nil
while 1 do hint (".") -------------------------------------------------- выполняется сразу --============================================================= if (Kbd.IsKeyPress(Kbd.F1)) or ff == 1 then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end while 1 do hint ("Нажата f1") -------------------------------------------- если нажата f1 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F2)) or ff == 2 then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end while 1 do hint ("Нажата f2") --------------------------------------------- если нажата f2 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F3)) or ff == 3 then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end while 1 do hint ("Нажата f3") --------------------------------------------- если нажата f3 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F4)) or ff == 4 then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end while 1 do hint ("Нажата f4") --------------------------------------------- если нажата f4 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F5)) or ff == 5 then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end while 1 do hint ("Нажата f5") --------------------------------------------- если нажата f5 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --=============================================================== if (Kbd.IsKeyPress(Kbd.F6)) or ff == 6 then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end while 1 do hint ("Нажата f6") ---------------------------------------------- если нажата f6 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F7)) or ff == 7 then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end while 1 do hint ("Нажата f7") --------------------------------------------- если нажата f7 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F8)) or ff == 8 then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end while 1 do hint ("Нажата f8") --------------------------------------------- если нажата f8 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F9)) or ff == 9 then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end while 1 do hint ("Нажата f9") --------------------------------------------- если нажата f9 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F10)) or ff == 10 then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end while 1 do hint ("Нажата f10") -------------------------------------------- если нажата f10 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F11)) or ff == 11 then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end while 1 do hint ("Нажата f11")--------------------------------------------- если нажата f11 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = nil break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = 12 break end end end --============================================================== if (Kbd.IsKeyPress(Kbd.F12)) or ff == 12 then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end while 1 do hint ("Нажата f12") -------------------------------------------- если нажата f12 if (Kbd.IsKeyPress(Kbd.F1)) then while Kbd.IsKeyPress(Kbd.F1) do wait (20) end ff = 1 break end if (Kbd.IsKeyPress(Kbd.F2)) then while Kbd.IsKeyPress(Kbd.F2) do wait (20) end ff = 2 break end if (Kbd.IsKeyPress(Kbd.F3)) then while Kbd.IsKeyPress(Kbd.F3) do wait (20) end ff = 3 break end if (Kbd.IsKeyPress(Kbd.F4)) then while Kbd.IsKeyPress(Kbd.F4) do wait (20) end ff = 4 break end if (Kbd.IsKeyPress(Kbd.F5)) then while Kbd.IsKeyPress(Kbd.F5) do wait (20) end ff = 5 break end if (Kbd.IsKeyPress(Kbd.F6)) then while Kbd.IsKeyPress(Kbd.F6) do wait (20) end ff = 6 break end if (Kbd.IsKeyPress(Kbd.F7)) then while Kbd.IsKeyPress(Kbd.F7) do wait (20) end ff = 7 break end if (Kbd.IsKeyPress(Kbd.F8)) then while Kbd.IsKeyPress(Kbd.F8) do wait (20) end ff = 8 break end if (Kbd.IsKeyPress(Kbd.F9)) then while Kbd.IsKeyPress(Kbd.F9) do wait (20) end ff = 9 break end if (Kbd.IsKeyPress(Kbd.F10)) then while Kbd.IsKeyPress(Kbd.F10) do wait (20) end ff = 10 break end if (Kbd.IsKeyPress(Kbd.F11)) then while Kbd.IsKeyPress(Kbd.F11) do wait (20) end ff = 11 break end if (Kbd.IsKeyPress(Kbd.F12)) then while Kbd.IsKeyPress(Kbd.F12) do wait (20) end ff = nil break end end end end
|
|
|
|
dron4938 |
28.2.2018, 23:23
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
код
Код --lua require("Kbd") arr={"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"} iq = nil while 1 do
while 1 do for i = 112, 123 do hint ("жду нажатия") if Kbd.IsKeyPress(i) then --hint ("Нажата " .. arr[i-111]) iq = i end while Kbd.IsKeyPress(i) do wait (20) end wait (1) end if iq ~= 0 then wait (100) break end end
while iq == 112 do hint ("выполняю скрипт ф1")-------------тут скрипт1 wait (10) for i = 112, 123 do if Kbd.IsKeyPress(i) then iq = i if iq == 112 then iq = nil end while Kbd.IsKeyPress(i) do wait (20) end end end end
while iq == 113 do hint ("выполняю скрипт ф2")-------------тут скрипт2 wait (10) for i = 112, 123 do if Kbd.IsKeyPress(i) then iq = i if iq == 113 then iq = nil end while Kbd.IsKeyPress(i) do wait (20) end end end end
while iq == 114 do hint ("выполняю скрипт ф3")-------------тут скрипт3 wait (10) for i = 112, 123 do if Kbd.IsKeyPress(i) then iq = i if iq == 114 then iq = nil end while Kbd.IsKeyPress(i) do wait (20) end end end end
while iq == 115 do hint ("выполняю скрипт ф4")--------------тут скрипт4 wait (10) for i = 112, 123 do if Kbd.IsKeyPress(i) then iq = i if iq == 115 then iq = nil end while Kbd.IsKeyPress(i) do wait (20) end end end end
end так? или так правильнее? код
Код --lua require("Kbd") iq = 0 arr = {112, 113, 114, 123} --Коды использующих клавиш f1-f3, f12
while 1 do while 1 do for i = 1, #arr do i = arr[i] ----перебор клавиш f1-f3, f12 hint (".") if Kbd.IsKeyPress(i) then iq = i end while Kbd.IsKeyPress(i) do wait (20) end end if iq ~= 0 then wait (20) break end end --========================
while iq == 112 do hint ("Нажата F1")-------------------тут скрипт если нажата F1 for i = 1, #arr do i = arr[i] if Kbd.IsKeyPress(i) then iq = i if iq == 112 then iq = 0 end while Kbd.IsKeyPress(i) do wait (20) end end end end
while iq == 113 do hint ("Нажата F2")-------------------тут скрипт если нажата F2 for i = 1, #arr do i = arr[i] if Kbd.IsKeyPress(i) then iq = i if iq == 113 then iq = 0 end while Kbd.IsKeyPress(i) do wait (20) end end end end
while iq == 114 do hint ("Нажата F3")-------------------тут скрипт если нажата F3 for i = 1, #arr do i = arr[i] if Kbd.IsKeyPress(i) then iq = i if iq == 114 then iq = 0 end while Kbd.IsKeyPress(i) do wait (20) end end end end
while iq == 123 do hint ("Нажата F12")------------------тут скрипт если нажата F12 for i = 1, #arr do i = arr[i] if Kbd.IsKeyPress(i) then iq = i if iq == 123 then iq = 0 end while Kbd.IsKeyPress(i) do wait (20) end end end end end
|
|
|
|
cirus |
1.3.2018, 4:40
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26744
Пользователь №: 16.971
Возраст: 29
|
код
Код --lua require("Kbd")
--===== все функции можно загружать через require ==== function F1(button_current) while Key_Press(button_current) == 0 do -- пока не нажата другая кнопка log (1) wait (50) -- этот код выполняется при нажатии F1, до тех пор пока не нажата другая клавиша end end
function F2(button_current) while Key_Press(button_current) == 0 do -- пока не нажата другая кнопка log (2) wait (50) -- этот код выполняется при нажатии F2, до тех пор пока не нажата другая клавиша end end
function F3(button_current) while Key_Press(button_current) == 0 do -- пока не нажата другая кнопка log (3) wait (50) -- этот код выполняется при нажатии F3, до тех пор пока не нажата другая клавиша end end
function Key_Press(button) -- функция для отслеживания нажатий, чтобы выйти из текущей функции for i = 1, #arr do if Kbd.IsKeyPress(arr[i]) and arr[i] ~= button then return 1 end wait (1) end return 0 end --===========
arr={112, 113, 114} -- какие клавиши отслеживать, 112(F1), 113(F2) и т. д. t={F1, F2, F3} -- таблица с функциями
while 1 do for i = 1, #arr do if Kbd.IsKeyPress(arr[i]) then -- если нажата клавиша из массива arr t[i](arr[i]) -- вызываем нужную функцию t[1] - при нажатии F1, t[2] - при нажатии F2 -- и передаём код клавиши, которая была нажата end wait (1) end end При нажатии F1 пишет в лог 1, до тех пор пока не будет нажата другая клавиша, при нажатии F2 пишет 2, F3 пишет 3.
|
|
|
|
dron4938 |
1.3.2018, 10:58
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
Цитата(cirus @ 1.3.2018, 4:40) код
Код --lua require("Kbd")
--===== все функции можно загружать через require ==== function F1(button_current) while Key_Press(button_current) == 0 do -- пока не нажата другая кнопка log (1) wait (50) -- этот код выполняется при нажатии F1, до тех пор пока не нажата другая клавиша end end
function F2(button_current) while Key_Press(button_current) == 0 do -- пока не нажата другая кнопка log (2) wait (50) -- этот код выполняется при нажатии F2, до тех пор пока не нажата другая клавиша end end
function F3(button_current) while Key_Press(button_current) == 0 do -- пока не нажата другая кнопка log (3) wait (50) -- этот код выполняется при нажатии F3, до тех пор пока не нажата другая клавиша end end
function Key_Press(button) -- функция для отслеживания нажатий, чтобы выйти из текущей функции for i = 1, #arr do if Kbd.IsKeyPress(arr[i]) and arr[i] ~= button then return 1 end wait (1) end return 0 end --===========
arr={112, 113, 114} -- какие клавиши отслеживать, 112(F1), 113(F2) и т. д. t={F1, F2, F3} -- таблица с функциями
while 1 do for i = 1, #arr do if Kbd.IsKeyPress(arr[i]) then -- если нажата клавиша из массива arr t[i](arr[i]) -- вызываем нужную функцию t[1] - при нажатии F1, t[2] - при нажатии F2 -- и передаём код клавиши, которая была нажата end wait (1) end end При нажатии F1 пишет в лог 1, до тех пор пока не будет нажата другая клавиша, при нажатии F2 пишет 2, F3 пишет 3. Кривовато работает, не останавливает на повторное нажатие
|
|
|
|
cirus |
1.3.2018, 11:47
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26744
Пользователь №: 16.971
Возраст: 29
|
код
Код --lua require("Kbd")
--===== все функции можно загружать через require ==== function F1() while Key_Press() == 0 do -- пока не нажата кнопка, если F1 выйдет из функции log (1) wait (30) -- этот код выполняется при нажатии F1 end end
function F2() while Key_Press() == 0 do -- пока не нажата другая кнопка, если F2 выйдет из функции log (2) wait (30) -- этот код выполняется при нажатии F2 end end
function F3() while Key_Press() == 0 do -- пока не нажата другая кнопка, если F3 выйдет из функции log (3) wait (30) -- этот код выполняется при нажатии F3 end end
function Key_Press() -- функция для отслеживания нажатий, чтобы выйти из текущей функции for i = 1, #arr do if Kbd.IsKeyPress(arr[i]) then return 1 end wait (1) end return 0 end --===========
arr={112, 113, 114} -- какие клавиши отслеживать, 112(F1), 113(F2) и т. д. t={F1, F2, F3} -- таблица с функциями while 1 do for i = 1, #arr do if Kbd.IsKeyPress(arr[i]) then -- если нажата клавиша time = os.clock () + 0.5 -- если кнопка зажата на 0.5 секунды, то функция тоже выполнится while Kbd.IsKeyPress(arr[i]) and os.clock() < time do wait (10) end -- ждём когда кнопка будет отпущена или зажата на 0.5 секунды t[i]() -- вызываем нужную функцию t[1] - при нажатии F1, t[2] - при нажатии F2 while Kbd.IsKeyPress(arr[i]) do wait (10) end -- ждём когда кнопка будет отпущена end wait (1) end end При нажатии F1 пишет в лог 1, до тех пор пока не будет нажата другая клавиша (тогда будет вызвана другая функция) или снова не нажата F1 (тогда выйдет из функции). При нажатии F2 пишет 2, F3 пишет 3.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|