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

 
Ответить в эту темуОткрыть новую тему
> Find image on a screen
Artios
сообщение 30.9.2022, 10:43
Сообщение #1


*

Registred
Сообщений: 1
Регистрация: 30.9.2022
Группа: Пользователи
Наличность: 0
Пользователь №: 20.349
Возраст: 20



Привет, у меня проблема с кодом, который я написал, чтобы найти изображение и щелкнуть в нужном месте. Когда делаю в отдельных скриптах, все работает, а когда хочу объединить в один скрипт, то уже не работает. Кроме того, я заметил, что запуск скрипта требует много памяти. Можно ли оптимизировать этот код?

Код
--lua
while (1) do
local startX, startY, endX, endY = 0, 0, 1920, 1080

local path = [["C:\Users\Pzt\Desktop\Rappelz\A.bmp"]]
local path2 = [["C:\Users\Pzt\Desktop\Rappelz\B.bmp"]]
local path3 = [["C:\Users\Pzt\Desktop\Rappelz\C.bmp"]]
local path4 = [["C:\Users\Pzt\Desktop\Rappelz\D.bmp"]]
local pathyes = [["C:\Users\Pzt\Desktop\Rappelz\yes.bmp"]]

local arr, a=findimage(startX, startY, endX, endY, {path}, 2)
local arr2,b=findimage(startX, startY, endX, endY, {path2}, 2)
local arr3,c=findimage(startX, startY, endX, endY, {path3}, 2)
local arr4,d=findimage(startX, startY, endX, endY, {path4}, 2)
local arryes,e=findimage(startX, startY, endX, endY, {pathyes}, 2)

hint (a)
    if arr then
        log (" X= " .. arr[1][1] .. " Y= " .. arr[1][2])
        left (arr[1][1], arr[1][2]+45)
    else
    if arr2 then
        log (" X= " .. arr2[1][1] .. " Y= " .. arr2[1][2])
        left (arr2[1][1], arr2[1][2]+80)
    else
    if arr3 then
        log (" X= " .. arr3[1][1] .. " Y= " .. arr3[1][2])
        left (arr3[1][1], arr3[1][2]+115)
    else
    if arr4 then
        log (" X= " .. arr4[1][1] .. " Y= " .. arr4[1][2])
        left (arr4[1][1], arr4[1][2]+150)
    else
    if arryes then
        log (" X= " .. arryes[1][1] .. " Y= " .. arryes[1][2])
        left (arryes[1][1], arryes[1][2]+150)
    end_if
end


Код
--lua
while (1) do
    local startX, startY, endX, endY = 0, 0, 1920, 1080
    local pathyes = [["C:\Users\Pzt\Desktop\Rappelz\A.bmp"]]
    local arryes, e=findimage(startX, startY, endX, endY, {pathyes}, 2)
    if arryes then
        log (" X= " .. arryes[1][1] .. " Y= " .. arryes[1][2])
        left(arryes[1][1],arryes[1][2]+45)
    end
end


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


***********

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



Цитата
if arr then
log (" X= " .. arr[1][1] .. " Y= " .. arr[1][2])
left (arr[1][1], arr[1][2]+45)
else
if arr2 then
log (" X= " .. arr2[1][1] .. " Y= " .. arr2[1][2])
left (arr2[1][1], arr2[1][2]+80)
else
if arr3 then
log (" X= " .. arr3[1][1] .. " Y= " .. arr3[1][2])
left (arr3[1][1], arr3[1][2]+115)
else
if arr4 then
log (" X= " .. arr4[1][1] .. " Y= " .. arr4[1][2])
left (arr4[1][1], arr4[1][2]+150)
else
if arryes then
log (" X= " .. arryes[1][1] .. " Y= " .. arryes[1][2])
left (arryes[1][1], arryes[1][2]+150)
end_if

у вас ни один if не закрыт. Так же обращаю внимание на то, что в луа не существует end_if, а только end.


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

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

 

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