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

6 страниц V < 1 2 3 4 5 > »   
Ответить в эту темуОткрыть новую тему
> Вопрос по луа
dron4938
сообщение 1.3.2018, 12:34
Сообщение #41


****

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



Цитата(cirus @ 1.3.2018, 11:47) *

код
Код
--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
сообщение 3.3.2018, 14:31
Сообщение #42


****

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



--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

как навести курсор на картинку не в (0 0) коодинаты, а со смещением?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.3.2018, 14:44
Сообщение #43


***********

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



прибавить их)
move (arr[1][1] + offset_x, arr [1][2] + offset_y)
Это луа, тут можно все достаточно нативно и без доп переменных/строк.


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


****

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



Цитата(DarkMaster @ 3.3.2018, 14:44) *

прибавить их)
move (arr[1][1] + offset_x, arr [1][2] + offset_y)
Это луа, тут можно все достаточно нативно и без доп переменных/строк.

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


****

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



В чем отличие math.random и просто random? Оба случая работают

Код
--lua
log "clear" log "mode compact"

while 1 do
time1 = os.clock (); log("ждем")
wait(1000+math.random(5000))
time2 = os.clock () - time1; log (time2)
end


Код
--lua
log "clear" log "mode compact"

while 1 do
time1 = os.clock (); log("ждем")
wait(1000+random(5000))
time2 = os.clock () - time1; log (time2)
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 6.3.2018, 1:16
Сообщение #46


********

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



random - функция пилота, math.random - функция lua
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 6.3.2018, 1:37
Сообщение #47


**********

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



Цитата
В чем отличие math.random и просто random?

Код
--lua
time=os.clock()
for i=0, 100000 do
    a=random(5000)
end
log(os.clock()-time)

Код
--lua
time=os.clock()
for i=0, 100000 do
    a=math.random(5000)
end
log(os.clock()-time)

Сравните время. Хотя для большинства случаев это не имеет значения.
Также рандом луа позволяет задать диапазон:
Код
--lua
a = math.random (-10, 6)        -- от -10 до 6
log (a)

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


****

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



Код
--lua
arr = {01,"02",03}
log "clear" log "mode compact"
log ("Позвонить в полицию" arr[2])


я что-то не пойму, как в логе совмещать текст с переменными?
а понял, запятые)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.3.2018, 16:19
Сообщение #49


**********

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



Код
--lua
arr = {01,"02",03}
log "clear" log "mode compact"
log ("Позвонить в полицию " .. arr[2])
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 7.3.2018, 17:40
Сообщение #50


****

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



Цитата(cirus @ 7.3.2018, 16:19) *

Код
--lua
arr = {01,"02",03}
log "clear" log "mode compact"
log ("Позвонить в полицию " .. arr[2])


двоеточие это тоже самое что запятая?

А как на луа будет get mouse_pos #x #y.
Тобеж отслеживание положения курсора
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.3.2018, 17:44
Сообщение #51


***********

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



Цитата
двоеточие это тоже самое что запятая?

Нет. Лог принимает до 10 параметров. Запятыми вы отделяете параметры, в лог они будут выведены с разделением пробелом. Используя же две точки вы испозуете функции луа по работе со строками и после преобразования получаете один параметр.


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


**********

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



Цитата
Лог принимает до 10 параметров

До 20, если не ошибаюсь, также как findcolor/findimage.
Цитата
двоеточие это тоже самое что запятая?

Это две точки, а не двоеточие (IMG:style_emoticons/default/smile.gif) По сути это склеивание переменных в одну строку.
Код
--lua
arr = {"01","02","03"}
a=666
log "clear" log "mode compact"

string = arr[1] .. arr[2] .. arr [3] .. a
log (string)

Цитата
А как на луа будет get mouse_pos #x #y.

Пока Кнайт не сделает никак.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 7.3.2018, 18:26
Сообщение #53


****

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



Цитата(cirus @ 7.3.2018, 18:07) *

Пока Кнайт не сделает никак.

Пичалька(

а можно условие задать по типу если кликнул в указанные координаты?
if left (0, 0, 100, 100) then
end

или так как то
while Kbd.IsKeyPress(Kbd.LMB) and move (0, 0, 100, 100) do
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 7.3.2018, 19:37
Сообщение #54


****

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



Код
--lua
arr = {" 1 "," 2 "," 3 "," 4 "}
a=666
log "clear" log "mode compact"

if a==666 then
arr[math.random (1, 4)]="A"
end

string = arr[1] .. arr[2] .. arr[3] .. arr[4]
log (string)

вот так рандомное значение меняет, а как сделать чтобы менял только выбранные. Типа так:

Код
--lua
arr = {" 1 "," 2 "," 3 "," 4 "}
a=666
log "clear" log "mode compact"

if a==666 then
arr[1 or 3]="A"
end

string = arr[1] .. arr[2] .. arr[3] .. arr[4]
log (string)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.3.2018, 19:47
Сообщение #55


**********

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



Код
--lua
arr = {" 1 "," 2 "," 3 "," 4 "}
a=666
log "clear" log "mode compact"

arr2 = {1,3}  -- выбранные

if a==666 then
arr[arr2[math.random (1,2)]]="A"
end

string = arr[1] .. arr[2] .. arr[3] .. arr[4]
log (string)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 7.3.2018, 21:44
Сообщение #56


********

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



Цитата
Лог принимает до 10 параметров


А больше религия запрещает ?

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.3.2018, 23:31
Сообщение #57


***********

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



Цитата
А больше религия запрещает ?

Скорее здравый смысл. Зачем? Ну лепи через точечки, если надо да и все...


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


********

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



А вдруг захочу шоб было ? В луа можно передавать и принимать различное и неограниченное кол-во аргументов.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.3.2018, 0:57
Сообщение #59


***********

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



Цитата
В луа можно передавать и принимать различное и неограниченное кол-во аргументов.

А в делфи, насколько мне известно, нет. Имхо проще написать обертку на луа, если так нужно. 5 строчек радости.


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


****

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



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

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

 

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