Здравствуйте, гость ( Вход | Регистрация )

> Вопрос по луа
dron4938
сообщение 21.2.2018, 13:22
Сообщение #1


****

Apprentice
Сообщений: 256
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Как переделать например такой скрипт на луа?

:aaa
sendex {f11}
wait 25 + random (23)
if нажата F1
goto bbb
end_if
goto aaa

:bbb
sendex {f12}
wait 25 + random (23)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 1.3.2018, 11:47
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 27513
Пользователь №: 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.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
dron4938   Вопрос по луа   21.2.2018, 13:22
cirus   --lua require("Kbd") while 1 do ...   21.2.2018, 13:38
dron4938   --lua require("Kbd") while 1 do ...   21.2.2018, 13:47
cirus   --lua require("Kbd") while 1 do ...   21.2.2018, 14:09
dron4938   --lua require("Kbd") while 1 do ...   21.2.2018, 14:21
dron4938   Ошибка понял в чём - key3 Но теперь надо чтобы пр...   21.2.2018, 14:37
cirus   Kbd.IsKeyPress(Kbd.Key3) Смотрите коды кл...   21.2.2018, 14:35
cirus   --lua require("Kbd") while 1 do t...   21.2.2018, 15:01
dron4938   [code]--lua require("Kbd") while...   21.2.2018, 15:07
dron4938   --lua require("Kbd") while 1 do ...   21.2.2018, 16:42
cirus   Добавить wait. Подобрать нужное значение. --lua ...   22.2.2018, 1:32
dron4938   Все таки goto работает лучше) В маленьких кодах)   23.2.2018, 16:51
Cockney   Нет (доказано британскими учеными).   23.2.2018, 17:25
cirus   Правильнее так будет: --lua require("Kbd...   23.2.2018, 17:53
dron4938   Правильнее так будет: --lua require("Kbd...   24.2.2018, 11:36
DarkMaster   Луа - это обработчик, набор синтаксиса. Все функци...   24.2.2018, 11:53
dron4938   а вместо set timer, на луа как?   24.2.2018, 14:53
cirus   В данный момент hint с параметрами не работает. ...   24.2.2018, 18:48
dron4938   а как посчитать за какое время выполнился скрипт? ...   24.2.2018, 19:45
dron4938   --lua time1 = os.clock () wait (1300...   24.2.2018, 20:45
cirus   --lua function float (number, accuracy) r...   24.2.2018, 21:20
cirus   Вопросы по языку луа лучше не задавать в темах гд...   24.2.2018, 22:28
dron4938   --lua require("Kbd") while 1 do ...   25.2.2018, 20:06
dron4938   --lua require("Kbd") test = 2; w...   28.2.2018, 12:44
cirus   Для операций сравнения используются знаки операций...   28.2.2018, 13:00
dron4938   Для операций сравнения используются знаки операци...   28.2.2018, 13:03
dron4938   --lua require("Kbd") ff = nil wh...   28.2.2018, 14:13
cirus   Что должен делать скрипт?   28.2.2018, 14:42
dron4938   Что должен делать скрипт? тоже что тот огромный)...   28.2.2018, 14:46
cirus   Как минимум использовать циклы: --lua require...   28.2.2018, 15:22
dron4938   Как минимум использовать циклы: --lua require...   28.2.2018, 17:12
DarkMaster   Начни писать вменяемо форматированный код. Проблем...   28.2.2018, 20:30
dron4938   Начни писать вменяемо форматированный код. Пробле...   28.2.2018, 21:07
dron4938   --lua require("Kbd") arr={"F1...   28.2.2018, 23:23
Cockney   А как пилот научится ?   28.2.2018, 23:11
cirus   --lua require("Kbd") --===== все ...   1.3.2018, 4:40
dron4938   [spoiler=код][code]--lua require("Kbd...   1.3.2018, 10:58
cirus   Где тут сказано про остановку скрипта?   1.3.2018, 11:16
dron4938   Где тут сказано про остановку скрипта? Не ну как...   1.3.2018, 11:22
dron4938   [spoiler=код][code]--lua require("Kbd...   1.3.2018, 12:34
dron4938   --lua a = findimage (0, 0, 1920, 1080, "(C:...   3.3.2018, 14:31
DarkMaster   прибавить их) move (arr[1][1] + offset_x, arr [1][...   3.3.2018, 14:44
dron4938   прибавить их) move (arr[1][1] + offset_x, arr [1]...   3.3.2018, 14:56
dron4938   В чем отличие math.random и просто random? Оба слу...   5.3.2018, 22:41
Cockney   random - функция пилота, math.random - функция lua   6.3.2018, 1:16
cirus   --lua time=os.clock() for i=0, 100000 do ...   6.3.2018, 1:37
dron4938   --lua arr = {01,"02",03} log "clear...   7.3.2018, 15:54
cirus   --lua arr = {01,"02",03} log "clear...   7.3.2018, 16:19
dron4938   --lua arr = {01,"02",03} log "clear...   7.3.2018, 17:40
DarkMaster   Нет. Лог принимает до 10 параметров. Запятыми вы ...   7.3.2018, 17:44
cirus   До 20, если не ошибаюсь, также как findcolor/find...   7.3.2018, 18:07
dron4938   Пока Кнайт не сделает никак. Пичалька( а можно...   7.3.2018, 18:26
dron4938   --lua arr = {" 1 "," 2 "," 3 ...   7.3.2018, 19:37
cirus   --lua arr = {" 1 "," 2 "," 3 ...   7.3.2018, 19:47
Cockney   А больше религия запрещает ?   7.3.2018, 21:44
DarkMaster   Скорее здравый смысл. Зачем? Ну лепи через точечк...   7.3.2018, 23:31
Cockney   А вдруг захочу шоб было ? В луа можно передавать и...   8.3.2018, 0:04
DarkMaster   А в делфи, насколько мне известно, нет. Имхо прощ...   8.3.2018, 0:57
dron4938   А чему в пилоте равна переменная wait? В других ин...   8.3.2018, 18:38
Cockney   А в делфи, насколько мне известно, нет. Имхо прощ...   8.3.2018, 19:48
cirus   wait - это функция пилота, а не переменная, такая...   8.3.2018, 19:51
DarkMaster   Дык лог то это функция делфи и с каким стеком она...   8.3.2018, 20:31
Cockney   Посмотри пример плагина который я выкладывал. Там ...   8.3.2018, 21:31
DarkMaster   Подобная запись предполагает наличие константных ...   8.3.2018, 21:48
Cockney   settings.log.mode = compact settings.log.size = 0 ...   8.3.2018, 22:02
DarkMaster   типа clear? или settings? огромный шанс конфликта...   9.3.2018, 3:09
Cockney   Ну так справочка есть. А то так можно от всего отк...   9.3.2018, 13:18
DarkMaster   Едва ли медленнее, но они правда тормознутые. Осо...   9.3.2018, 13:24
Cockney   Я что-то не вижу проблемы. Если это особенность лу...   9.3.2018, 18:06
dron4938   set %adres[1] "C:\Users...   9.3.2018, 19:38
cirus   --lua adres = [[C:\Users\And...   9.3.2018, 19:55
dron4938   [code]--lua adres = [[C:\Users...   9.3.2018, 20:07
cirus   --lua adres = [[C:\Users\And...   9.3.2018, 20:30
dron4938   [code]--lua adres = [[C:\Users...   9.3.2018, 20:40
dron4938   Можно ли задать переменной какое то действие? Напр...   9.3.2018, 22:08
DarkMaster   Это назвывается функция =) function bb (var...   9.3.2018, 22:48
dron4938   function bb (var) wait(var + math.random(var))...   9.3.2018, 22:53
DarkMaster   это значение, которое мы передаем в функцию.   9.3.2018, 23:03
dron4938   это значение, которое мы передаем в функцию. фун...   9.3.2018, 23:05
cirus   return в данном случае не нужен, т. к. функция ни...   9.3.2018, 23:06
DarkMaster   Феншуй и не более того. Скорее gosub некоторое п...   9.3.2018, 23:46
dron4938   из функции можно выскочить как-то типа break? Или ...   9.3.2018, 23:53
cirus   Вернётся в любом случае. Либо когда будет end - к...   10.3.2018, 0:10
Cockney   Я не помню, была ли проблема определения выполнени...   10.3.2018, 1:24
DarkMaster   ее крайне обще касался я с кнайтом на этапе крикр...   10.3.2018, 2:21
dron4938   все функции можно загружать через require. Это как...   11.3.2018, 14:07
DarkMaster   Это способ хранить все не в одном файле. https://f...   11.3.2018, 14:22
dron4938   я тут намедни вычитал, что на луа можно проигрыват...   11.3.2018, 14:52
cirus   Открываем блокнот, вставляем: function f(a, b...   11.3.2018, 15:14
dron4938   мне показалось или невозможно функцию загрузить че...   11.3.2018, 18:19
DarkMaster   RE: Вопрос по луа   11.3.2018, 21:04
DarkMaster   https://forum.uokit.com/index.php?s=&sh...st...   12.3.2018, 4:16
cirus   И как теперь это должно выглядеть? --lua require...   12.3.2018, 13:53
Cockney   Да и когда и в чем он криво работал ?   12.3.2018, 14:39
DarkMaster   Некоторый плагин: function uoext.test_param (v...   12.3.2018, 17:45
Cockney   Плагин это просто луа скрипт ? Если длл, то   12.3.2018, 19:19
DarkMaster   Плагин всмысле через require. Сама функция должна ...   12.3.2018, 19:50
Cockney   Так плагин(dll) или include ?   12.3.2018, 19:59
DarkMaster   require... Вообще "плагин" оно условно. ...   12.3.2018, 20:22
2 страниц V  1 2 >


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 21.9.2024, 17:28
Designed by Nickostyle