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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Findcolor, поиск цвета
portos
сообщение 5.12.2024, 22:06
Сообщение #1


****

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



подскажите пожалуста , есть пиксели одного цвета , как кликнуть по появившемуся пикселю другого цвета при помощи Findcolor (как только появляется другой цвет на фоне , сразу кликнуть)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.12.2024, 10:02
Сообщение #2


*****

Journeyman
Сообщений: 319
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 11235
Пользователь №: 19.451
Возраст: 32



x,y - координаты
c - цвет
Код
--lua

while true do
  if color(x, y) ~= c then
    left(x, y)
  end
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 6.12.2024, 13:56
Сообщение #3


****

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



Цитата(Madeus @ 6.12.2024, 9:02) *

x,y - координаты
c - цвет
Код
--lua

while true do
  if color(x, y) ~= c then
    left(x, y)
  end
end



это не подходит , поиск нужен не в одной координате , а в области экрана
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.12.2024, 14:06
Сообщение #4


*****

Journeyman
Сообщений: 319
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 11235
Пользователь №: 19.451
Возраст: 32



Можно сразу цифрами или
Код
local x, y, c = 1, 2, 3
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.12.2024, 14:07
Сообщение #5


***********

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



Код

local c = color(x, y)
while true do
    if color(x, y) ~= c then
        left(x, y)
    end
end

вместо x, y подставьте ваши координаты. получить можно через ctrl+a


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


****

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



Цитата(DarkMaster @ 6.12.2024, 13:07) *

Код

local c = color(x, y)
while true do
    if color(x, y) ~= c then
        left(x, y)
    end
end

вместо x, y подставьте ваши координаты. получить можно через ctrl+a


это не подходит , поиск нужен не в одной координате , а в области экрана
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.12.2024, 14:11
Сообщение #7


*****

Journeyman
Сообщений: 319
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 11235
Пользователь №: 19.451
Возраст: 32



Тогда без скринов что вы хотите не помочь.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 6.12.2024, 14:21
Сообщение #8


****

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



Цитата(Madeus @ 6.12.2024, 13:11) *

Тогда без скринов что вы хотите не помочь.


примерно , в чёрном квадрате появляется пиксель другого цвета (любого ) и надо кликнуть по немуПрикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.12.2024, 14:26
Сообщение #9


*****

Journeyman
Сообщений: 319
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 11235
Пользователь №: 19.451
Возраст: 32



А цвет один и тот же?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 6.12.2024, 14:28
Сообщение #10


****

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



Цитата(Madeus @ 6.12.2024, 13:26) *

А цвет один и тот же?

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


***********

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



квадрат однотонный? Если да, то можно через findcolor искать все другие цвета.

Если квадрат не однотонный, то через findcolor ищите вообще все цвета с диапазоном 0x000000-0xFFFFFF, он будет у вас, как эталон. Потом повторно вызываете findcolor с сохранением результата в другой массив и смотрите каждй элементы через for есть ли разница.


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


****

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



Цитата(DarkMaster @ 6.12.2024, 13:28) *

квадрат однотонный? Если да, то можно через findcolor искать все другие цвета.

Если квадрат не однотонный, то через findcolor ищите вообще все цвета с диапазоном 0x000000-0xFFFFFF, он будет у вас, как эталон. Потом повторно вызываете findcolor с сохранением результата в другой массив и смотрите каждй элементы через for есть ли разница.


сам квадрат всегда одного цвета и в нём появляются пиксели другого цвета (могут быть разного) , как только появляется пиксель другого цвета в квадрате , надо кликнуть по появившемуся пикселю
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.12.2024, 14:51
Сообщение #13


***********

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



Цитата
сам квадрат всегда одного цвета и в нём появляются пиксели другого цвета (могут быть разного) , как только появляется пиксель другого цвета в квадрате , надо кликнуть по появившемуся пикселю

Ну тогда просто ищите через findcolor без цвета фона(квадрата). Задайте ему пару диапазонов из разряда 0x000000-0x000010, 0x000012-0xFFFFFF, если цвет квдарата 0x000011. Для своих нужд просто сдвиньте диапазон согласно вашим цветам.


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


****

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



Код
--lua
-- Пример 2
-- Использование отклонения цвета - deviation
local c = findcolor (87, 130 , 1883, 1015 , 1, 1, [[('7582836')]], '%arr', 2)  

if c then -- если найден нужный цвет
move (arr[1][1], arr[1][2]) -- переместить курсор мыши
end

подскажите , как тут применить while (ждать появления цвета)

Сообщение отредактировал DarkMaster - 6.12.2024, 16:45
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.12.2024, 16:46
Сообщение #15


***********

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



Код

--lua
-- Пример 2
-- Использование отклонения цвета - deviation
while 1 do
    local c = findcolor (87, 130 , 1883, 1015 , 1, 1, [[('7582836')]], '%arr', 2)  

    if c then -- если найден нужный цвет
        move (arr[1][1], arr[1][2]) -- переместить курсор мыши
    end
    wait(100) -- для разгрузки камня
end

подскажите , как тут применить while (ждать появления цвета)

что-то в этом роде. точнее сложно ибо код несколько расходится с описанием задачи выше.


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


****

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




что-то в этом роде. точнее сложно ибо код несколько расходится с описанием задачи выше.
решил не мучаться , а запускать несколько скриптов под каждый цвет. спасибо за помощь
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.12.2024, 20:38
Сообщение #17


***********

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



Цитата
решил не мучаться , а запускать несколько скриптов под каждый цвет. спасибо за помощь

Если идти по этому пути, то вы можете просто в findcolor перечислить через запятую эти цвета. Нет смысла в пачке скриптов.


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


****

Apprentice
Сообщений: 263
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1807
Пользователь №: 15.246
Возраст: 25



я так понимаю квадрат всегда в одном месте, тогда если он абсолютно монотонный, в область поиска просто задаем ту область где он находится, потом берем десятичное значение цвета этого квадрата, отнимаем единичку, прибавляем единичку и переводим эти значения в RGB, в зависимости от того какой канал меняется пишем диапазон цветов в findcolor, их придется использовать два. Вот пример на красном квадрате
Код

--lua
while 1 do
    local a = findcolor (603, 171, 739, 306, "(R(0-236)+G(0-255)+B(0-255))", '%ar', 2, 1, 0)
    if a ~= nil then
        move (ar[1][1], ar[1][2])
        break
    end
    local b = findcolor (603, 171, 739, 306, "(R(238-255)+G(0-255)+B(0-255))", '%br', 2, 1, 0)
    if b ~= nil then
        move (br[1][1], br[1][2])
        break
    end
end

как видите в красном канале отсутствует число 237, это исключает из поиска цвет квадрата. Может я че-то начудил, но у меня в пэинте вроде работает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.12.2024, 1:47
Сообщение #19


***********

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



Цитата
Может я че-то начудил

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


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


****

Apprentice
Сообщений: 263
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1807
Пользователь №: 15.246
Возраст: 25



Цитата(DarkMaster @ 7.12.2024, 1:47) *

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

я пытался, но он находил только некоторые цвета, короче не работало
вот так я записывал, может здесь ошибка?
Код
--lua
while 1 do
    local a = findcolor (567, 132, 676, 241, "(0-2366700)", '%ar', 2, 1, 0)
    if a ~= nil then
        move (ar[1][1], ar[1][2])
        break
    end
    local b = findcolor (567, 132, 676, 241, "(2366702-16777215)", '%br', 2, 1, 0)
    if b ~= nil then
        move (br[1][1], br[1][2])
        break
    end
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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