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

6 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Вопрос по луа
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
сообщение 21.2.2018, 13:38
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
--lua
require("Kbd")

while 1 do         -- бесконечный цикл
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        sendex ("f11")
        wait (25 + math.random (23))
        log ("f11")
    end

    sendex ("f12")
    wait (25 + math.random (23))
    log ("   f12")
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 21.2.2018, 13:47
Сообщение #3


****

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



Цитата(cirus @ 21.2.2018, 13:38) *

Код
--lua
require("Kbd")

while 1 do         -- бесконечный цикл
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        sendex ("f11")
        wait (25 + math.random (23))
        log ("f11")
    end

    sendex ("f12")
    wait (25 + math.random (23))
    log ("   f12")
end


спс, чуть понятнее стало)

а если так

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

:bbb
sendex {f12}
wait 25 + random (23)
if нажата F1
goto aaa
end_if
goto bbb
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 21.2.2018, 14:09
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
--lua
require("Kbd")

while 1 do         -- бесконечный цикл
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        sendex ("f11")
        wait (15 + math.random (15))
        log ("f11")
    end
    wait (200)
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        sendex ("f12")
        wait (15 + math.random (15))
        log ("   f12")
    end
    wait (2000)
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 21.2.2018, 14:21
Сообщение #5


****

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



Код
--lua
require("Kbd")

while 1 do         -- бесконечный цикл
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        wait (250 + math.random (350))
        hint ("СПИМ")
    end

    while not(Kbd.IsKeyPress(Kbd.F2)) do   -- пока не нажата f2
        sendex ("{F12}")
        wait (25 + math.random (23))
        if Kbd.IsKeyPress(Kbd.LMB) then   -- если нажата клавиша ЛКМ
        sendex ("J")
        wait (25 + math.random (23))
        end
        if Kbd.IsKeyPress(Kbd.3) then   -- если нажата клавиша 3
        sendex ("6")
        wait (25 + math.random (23))
        end
        if Kbd.IsKeyPress(Kbd.Q) then   -- если нажата клавиша Q
        sendex ("8")
        wait (25 + math.random (23))
        end
    end
end


начеркал код, в чем ошибка?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 21.2.2018, 14:35
Сообщение #6


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Kbd.IsKeyPress(Kbd.3)

Код
Kbd.IsKeyPress(Kbd.Key3)

Смотрите коды клавиш.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 21.2.2018, 14:37
Сообщение #7


****

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



Ошибка понял в чём - key3

Но теперь надо чтобы при зажатой ЛКМ, спамилось нажатие J
Именно если зажать
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 21.2.2018, 15:01
Сообщение #8


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
--lua
require("Kbd")

while 1 do
time = os.clock() + 1  -- 1 секунда и считается что кнопка зажата
    while  Kbd.IsKeyPress(Kbd.LMB) do   -- если нажата клавиша ЛКМ
        if time < os.clock() then
            sendex ("J")
            wait (25 + math.random (23))
        end
        wait (10)
    end
    wait (10)
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 21.2.2018, 15:07
Сообщение #9


****

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



Цитата(cirus @ 21.2.2018, 15:01) *

Код
--lua
require("Kbd")

while 1 do
time = os.clock() + 1  -- 1 секунда и считается что кнопка зажата
    while  Kbd.IsKeyPress(Kbd.LMB) do   -- если нажата клавиша ЛКМ
        if time < os.clock() then
            sendex ("J")
            wait (25 + math.random (23))
        end
        wait (10)
    end
    wait (10)
end



Спасибо, а можно что бы между 2 вумя циклами этими на 1 кнопку переключаться.
Если и там и там f1 ставишь, то оно глючит както, через раз работает.

(IMG:http://i.yapx.ru/9qw4.jpg)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 21.2.2018, 16:42
Сообщение #10


****

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



Код
--lua
require("Kbd")

while 1 do         -- бесконечный цикл
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
    wait (50)
    log ("блок1")
    end

    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
    wait (50)
    log ("блок2")
    end
end


вот пример того как на 1 кнопку фигово работает, как поправить?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.2.2018, 1:32
Сообщение #11


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
как поправить?

Добавить wait. Подобрать нужное значение.
Код
--lua
require("Kbd")

while 1 do         -- бесконечный цикл
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
    wait (50)
    log ("блок1")
    end
    wait (200)
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
    wait (50)
    log ("блок2")
    end
    wait (200)
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 23.2.2018, 16:51
Сообщение #12


****

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



Все таки goto работает лучше) В маленьких кодах)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 23.2.2018, 17:25
Сообщение #13


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



Нет (доказано британскими учеными).
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.2.2018, 17:53
Сообщение #14


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Правильнее так будет:
Код
--lua
require("Kbd")

while 1 do         -- бесконечный цикл
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        wait (20)
        log ("блок1")
    end
    while Kbd.IsKeyPress(Kbd.F1) do wait (20) end    -- пока не отпустили f1

    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        wait (20)
        log ("блок2")
    end
    while Kbd.IsKeyPress(Kbd.F1) do wait (20) end  -- пока не отпустили f1
end

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 24.2.2018, 11:36
Сообщение #15


****

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



Цитата(cirus @ 23.2.2018, 17:53) *

Правильнее так будет:
Код
--lua
require("Kbd")

while 1 do         -- бесконечный цикл
    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        wait (20)
        log ("блок1")
    end
    while Kbd.IsKeyPress(Kbd.F1) do wait (20) end    -- пока не отпустили f1

    while not(Kbd.IsKeyPress(Kbd.F1)) do   -- пока не нажата f1
        wait (20)
        log ("блок2")
    end
    while Kbd.IsKeyPress(Kbd.F1) do wait (20) end  -- пока не отпустили f1
end



Да, так еще годно)
А hint в луа есть цветной? Или ток стандартный?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 24.2.2018, 11:53
Сообщение #16


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Луа - это обработчик, набор синтаксиса. Все функции пилотовские. Ну разве что кое-что по математике имеется и строкам дополнительно.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 24.2.2018, 14:53
Сообщение #17


****

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



а вместо set timer, на луа как?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.2.2018, 18:48
Сообщение #18


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
А hint в луа есть цветной? Или ток стандартный?

В данный момент hint с параметрами не работает.
Цитата
а вместо set timer, на луа как?

os.clock() - возвращает время в секундах с точностью до миллисекунд с момента запуска пилота. Сбросить его нельзя вроде как.
Код
--lua
log "clear" log "mode compact"
time_out1 = 0    time_out2 = 0

while 1 do
    if time_out1 < os.clock() then     -- выполнять блок каждую секунду
        log ("+++")
        time_out1 = 1 + os.clock()     -- прибавляем 1 секунду
    end

    if time_out2 < os.clock() then     -- выполнять блок каждые 3.5 секунды
        log ("!!!!!!")
        time_out2 = 3.5 + os.clock()  -- прибавляем 3.5 секунды
    end
    wait (1)
end

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 24.2.2018, 19:45
Сообщение #19


****

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



а как посчитать за какое время выполнился скрипт?
я что то не очень пойму про os.clock() - возвращает время в секундах с точностью до миллисекунд с момента запуска пилота.
Тобеж в момент запуска время равно нулю, и значит os.clock() всегда равен нулю?
как его в логе отобразить?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 24.2.2018, 20:45
Сообщение #20


****

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



Код
--lua
time1 = os.clock ()
wait (1300) -- скрипт
time2 = os.clock () - time1; log (time2); hint (time2)


Немного понял про os.clock ()
кажись немного сообразил как вычислять время затраченное на скрипт
Правильно же так?
Ток показывает время в милиардных долях) Как округлять хотяб чтобы 4 цифры после запятой?

Вернее былобы правильнее перевести в милисекунды результат time2, он там в секундах просто показывается
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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