Помощь - Поиск - Пользователи - Календарь
Полная версия: Определить массив
UoKit.com Форумы > Кликер > UO Pilot
yodich
Всем привет!

такая проблема, есть код:

Исходный код

--lua

function (p1,p2,p3,p4)

local startX, startY, endX, endY = 0, 0, 1920, 1080
local path = [[F:\image]]
local image = {"Image_0", "Image_1", "Image_2"}

for i=1, #image do

local arr, a = findimage (startX, startY, endX, endY, {path .. "\\" .. image[i] .. ".bmp"}, p1,p2,p3,p4)
--------------------- вот тут уже ума не хватает ---------------------
--пробовал подобным путем сделать, да вот не получается и уже голову сломал как это сделать если честно
if image [1] then
-- если найдена 1 картинка, то выполняем то-то
break
end
if image [2] then
-- если найдена 2 картинка, то выполняем то-то
break
end
if image [3] then
-- если найдена 3 картинка, то выполняем то-то и тд
break
end
--------------------------------------------------------------------------
end
end


Мне в условии нужно определить какая именно картинка найдена из массива чтобы выполнять определенные действия именно по этой картинке.
---
См. правило 1.18
nykep
я в луа не шарю, но логика например может быть такой : внутри for пишешь if если картинка нашлась что-то вроде if a > 0(просто не знаю как на луа), выполняем break, дальше вне цикла for , условия как у тебя только if i == 1, i == 2 или i == 3.
yodich
Цитата(nykep @ 27.8.2020, 21:27) *

я в луа не шарю, но логика например может быть такой : внутри for пишешь if если картинка нашлась что-то вроде if a > 0(просто не знаю как на луа), выполняем break, дальше вне цикла for , условия как у тебя только if i == 1, i == 2 или i == 3.


спасибо, только так к сожалению не пойдет
nykep
ну тогда все как у тебя только условия такие if a > 0 and i == 1 then
yodich
Цитата(nykep @ 27.8.2020, 21:42) *

ну тогда все как у тебя только условия такие if a > 0 and i == 1 then

так то можно попробовать по идее...
просто получится горкомовский код, мне этого не надо.

могу сделать так:

Код

--lua
local path = [[C:\image]]

local image1 = "Image_0"

local arr, a = findimage (0, 0, 1920, 1080, {path .. "//" .. image1 .. ".bmp"}, 2, 50, 20, 5)
if arr then
    msg ("ok")
    else
    msg ("error")
end


только тоже придется кучу переменных вставлять и каждый раз все переписывать для каждой картинки, мне этого не надо, получится очень много кода

Цитата(nykep @ 27.8.2020, 21:42) *

ну тогда все как у тебя только условия такие if a > 0 and i == 1 then



хотя ладно, пусть будет так, спасибо!)
nykep
ну если тебе при нахождении определенной картинки надо выполнить определенные действия, то я не знаю как сделать иначе, смотря что за действия конечно, но если для каждой картинки они всегда разные, то для каждой и придется их писать. Если бы я себе такое делал не на луа написал бы так
Код

for #i 1 3 1
   set #a findimage ()
   if a > 0
     if #i = 1
       //действия
       break
     end_if
     if #i = 2
       //действия
       break
     end_if
     if #i = 3
       //действия
       break
     end_if
   end_if
end_for

Ты же когда сам смотришь на экран видишь красную картинку делаешь одно, видишь синюю делаешь другое, условия у тебя - если красная то, если синяя то. А как иначе заставить делать его то что ты хочешь?
yodich
Цитата(nykep @ 27.8.2020, 22:17) *
А как иначе заставить делать его то что ты хочешь?


да я уже сделал) у меня функция которая за каждую картинку делает определенные действия. я уже победил и код составил не большой)

спасибо за помощь😎👍
----
См правило 1.8
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.