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

 
Ответить в эту темуОткрыть новую тему
> Загадочные костыли.
snutz
сообщение 16.3.2020, 17:35
Сообщение #1


*

Registred
Сообщений: 4
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.582
Возраст: 27



Приветствую, уважаемые форумчане!
Подскажите пожалуйста, как можно решить данную загадку:

Допустим есть одно окно, в котором необходимо искать допустим 28 картинок.
При нахождении картинки в этом окне -> нажимать на определенные координаты другого окна и ожидать например 5 минут только для поиска этой картинки. (А не для всего скрипта).

*Картинки могут появляться одновременно и постепенно, допустим одна картинка появилась -> нажимаем на определенные координаты (Ждем 5 минут для этой картинки) -> Ищем сразу же дальше -> через 5 секунд 2 других картинки появились -> нажимаем на определенные координаты согласно скрипту (Ждем 5 минут для этих картинок) -> Ищем сразу же дальше.


Я предполагаю, что это должно выглядеть приблизительно следующим образом:

While 1=1 //начало бесконечного цикла
set a# -> pic1 //обозначение переменных/картинок которые нужно искать.
set b# -> pic2
set N...

if #a > 0 //если нашли картинку A, то...
то...
wait 3000
end_if
if #b > 0 //Если нашли картинку B, то....
то...
wait 3000
end_if

end_while


Но сразу предполагаю, что пилот пойдет прямо по очереди строк и застрянет на Wait.


<-------------------------------------------------------->

Вопрос не в тему, но тоже интересен - есть ли у uopilot возможность отправки GET запросов? (заранее сформированных, без хедеров и авторизации).

Например при определенных условиях отправка get-запроса вида: https://primer.ru/primer?id=123
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 16.3.2020, 19:21
Сообщение #2


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 104
Пользователь №: 18.746



Код
//Param{
    set $path "C:\Files\Images"  // путь к картинкам
    set #fWait 300000            // ждать 5 минут
    set #startX 0                // координаты поиска
    set #startY 0                // координаты поиска
    set #endX 1920               // координаты поиска
    set #endY 1080               // координаты поиска
//}

dir (%res $path *.bmp*)
while 1
for #i 1 size(%res)
    set #a findimage (#startX #startY #endX #endY (%res[#i 1]) %arr 2)
    if  #a > 0 and %fTimer[#i] < timer
        gosub toDo#i
        set %fTimer[#i] timer + #fWait
    end_if
end_for
end_while
:todo1 // Если нашлась первая картинка
    // ...
    // kleft 100 200
    //...
return
:todo2 // Если нашлась вторая картинка
    // ...
    // kleft 100 200
    //...
return


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 16.3.2020, 19:41
Сообщение #3


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 104
Пользователь №: 18.746



Цитата(snutz @ 16.3.2020, 17:35) *

При определенных условиях отправка get-запроса вида: https://primer.ru/primer?id=123

Распаковать в корень пилота.
Прикрепленный файл  lua_http.rar ( 28,98 килобайт ) Кол-во скачиваний: 217

Код
--lua
http = require("socket.http")

local url = "https://primer.ru/primer?id=123"
if 1 < 2 then
    local body = (http.request(url))
end
end_script ()


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
snutz
сообщение 16.3.2020, 20:13
Сообщение #4


*

Registred
Сообщений: 4
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.582
Возраст: 27



Цитата(Fors1k @ 16.3.2020, 19:21) *

Код
//Param{
    set $path "C:\Files\Images"  // путь к картинкам
    #fWait 300000                // ждать 5 минут
    set #startX 0                // координаты поиска
    set #startY 0                // координаты поиска
    set #endX 1920               // координаты поиска
    set #endY 1080               // координаты поиска
}

dir (%res $path *.bmp*)
while 1
for #i 1 size(%res)
    set #a findimage (#startX #startY #endX #endY (%result1[#i 1]) %arr 2)
    if  #a > 0 and %fTimer[#i] < timer
        gosub toDo#i
        set %fTimer[#i] timer + #fWait
    end_if
end_for
end_while
:todo1 // Если нашлась первая картинка
    // ...
    // kleft 100 200
    //...
return
:todo2 // Если нашлась вторая картинка
    // ...
    // kleft 100 200
    //...
return



Благодарю вас!
Попробую - отпишусь!)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
snutz
сообщение 16.3.2020, 20:30
Сообщение #5


*

Registred
Сообщений: 4
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.582
Возраст: 27



Цитата(Fors1k @ 16.3.2020, 19:21) *

Код
//Param{
    set $path "C:\Files\Images"  // путь к картинкам
    #fWait 300000                // ждать 5 минут
    set #startX 0                // координаты поиска
    set #startY 0                // координаты поиска
    set #endX 1920               // координаты поиска
    set #endY 1080               // координаты поиска
}

dir (%res $path *.bmp*)
while 1
for #i 1 size(%res)
    set #a findimage (#startX #startY #endX #endY (%result1[#i 1]) %arr 2)
    if  #a > 0 and %fTimer[#i] < timer
        gosub toDo#i
        set %fTimer[#i] timer + #fWait
    end_if
end_for
end_while
:todo1 // Если нашлась первая картинка
    // ...
    // kleft 100 200
    //...
return
:todo2 // Если нашлась вторая картинка
    // ...
    // kleft 100 200
    //...
return


Подскажите пожалуйста немного по коду.

Допустим есть картинка 1.bmp 2.bmp 3.bmp
Если мы нашли 1.bmp -> то кликаем координаты (x;y)
Если мы нашли 2.bmp -> то кликаем координаты (x;y)
Если мы нашли 3.bmp -> то кликаем координаты (x;y)
...

Я так понимаю в образце приведенного вами кода вне зависимости от найденной картинки происходят todoN?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
snutz
сообщение 16.3.2020, 23:22
Сообщение #6


*

Registred
Сообщений: 4
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.582
Возраст: 27



Цитата(snutz @ 16.3.2020, 20:30) *

Подскажите пожалуйста немного по коду.

Допустим есть картинка 1.bmp 2.bmp 3.bmp
Если мы нашли 1.bmp -> то кликаем координаты (x;y)
Если мы нашли 2.bmp -> то кликаем координаты (x;y)
Если мы нашли 3.bmp -> то кликаем координаты (x;y)
...

Я так понимаю в образце приведенного вами кода вне зависимости от найденной картинки происходят todoN?


Разобрался, благодарю!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.3.2020, 1:55
Сообщение #7


**********

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



Fors1k, зачем давать незапускаемый код?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 17.3.2020, 2:12
Сообщение #8


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 104
Пользователь №: 18.746



Цитата(cirus @ 17.3.2020, 1:55) *

Fors1k, зачем давать незапускаемый код?

Не знаю. Ты какой-то код не можешь запустить?


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.3.2020, 2:31
Сообщение #9


**********

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



Цитата
какой-то код не можешь запустить?

Цитата
//Param{
set $path "C:\Files\Images" // путь к картинкам
#fWait 300000 // ждать 5 минут напишет ошибка
set #startX 0 // координаты поиска
set #startY 0 // координаты поиска
set #endX 1920 // координаты поиска
set #endY 1080 // координаты поиска
} напишет ошибка

Цитата
Распаковать в корень пилота.

Закинь luasocket-2.0.2-lua-5.1.2-Win32-vc6 в папку с пилотом и напишет что модули не найдены.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 17.3.2020, 2:50
Сообщение #10


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 104
Пользователь №: 18.746



Цитата(cirus @ 17.3.2020, 2:31) *

Закинь luasocket-2.0.2-lua-5.1.2-Win32-vc6 в папку с пилотом и напишет что модули не найдены.

Закинуть нужно было содержимое той папки. Исправил архив.
Цитата(cirus @ 17.3.2020, 2:31) *
Цитата
#fWait 300000 // ждать 5 минут

напишет ошибка

У меня в пилоте стоит StopScrUnknownCommand 0. Тут не хватает set в начале строки, исправил.

Это называется опечатка. По идее в таких случаях говорят: "Чувак, у тебя там set потерялся в такой-то строке, допиши". Что за вопрос такой "Зачем.." ? Непонятно.


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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