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

> FindColor (LUA), Передача переменных в findcolor
yodich
сообщение 26.2.2022, 15:07
Сообщение #1


***

Novice
Сообщений: 92
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Всем доброго времени суток.

Сидел и "баловался" делая функцию, где идет обработка цветов и столкнулся с такой ситуацией, что на LUA в FindColor сложно передать данные, а именно цвет или координаты

Может кто знает удобный findcolor который сам пользуется часто + удобства отправок переменных

log ('clear')
local x, y, x1, y1 = 87, 82, 498, 275
local colorss = 2366701

local ar = findcolor (x, y, x1, y1, (colorss), '%ar') -- +
if ar then
log ('ar OK', ar)
end

local a = findcolor (x, y, x1, y1, colorss, '%ma') -- +
if a then
log ('a OK', a)
end

local b = findcolor ([[87, 82, 498, 275, (2366701) '%mb']]) -- удобен, но переменных не передает
if b > 0 then
log ('b Ok', (IMG:style_emoticons/default/cool.gif)
end

local c = findcolor ("x, y, x1, y1 (colorss) %mccc") -- вообще не понял почему не срабатывает
if c > 0 then
log ('c OK(не робит)', c)
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Gendalfgreen
сообщение 1.6.2022, 18:04
Сообщение #2


**

Neophyte
Сообщений: 18
Регистрация: 29.3.2022
Группа: Пользователи
Наличность: 0
Пользователь №: 20.219
Возраст: 30



возвращает nil....... ((((((((((((((((((((((((((((((((((
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 19.8.2023, 19:00
Сообщение #3


***

Novice
Сообщений: 92
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(Gendalfgreen @ 1.6.2022, 20:04) *

возвращает nil....... ((((((((((((((((((((((((((((((((((


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

Код

--lua
function print ( ... ) return log ( ... ) end print ('clear')


  ClassDeviationColors = {}

  function ClassDeviationColors:new ()
    local obj = {

  --[[
    { "Имя кнопки или тп для себя",
      -- разброс цветов
      14277338, 13882323, 12442098, 13492981, 14478328, 2701653, 2504272, 1092837, 12704755, 12179441
    },
  ]]--

      { "Главная",
        15000021, 4800570, 10457985, 7839914, 12893098, 2963000, 5534330, 9732990, 7889747, 6309175
      }

    }

    obj.NextLocation = {

      { "Атака_Босса",
        866143, 1330049, 1198201, 9802, 1328754, 7995, 4911, 736615, 1064551, 9286
      },

      { "Магазин-->",
        15526891, 15855857, 14737375, 15132132, 16382457, 737417, 14539996, 4013541, 16185077, 10266808
      }

    }

    -- рабочее окно
    function obj:Work (nameWork, fullscreen)
      xth, yth, width, height = 0, 0, 1920, 1080
      local fullscreen = fullscreen or false -- вкл/выкл переход на полный экран
      local flibu = findwindow (nameWork)
      if ( flibu ) then
        local WindowWork = workwindow (flibu[1][1], "child")
        if ( fullscreen == true ) or ( fullscreen == "fullscreen" ) then showwindow ( WindowWork, "maximize" ) end
        xth, yth, width, height, errorcode =  windowpos (WindowWork)
        print (nameWork .. "- окно активно, размер окна - ", xth, yth, width, height)
      else
        msg ("окнo не найдено")
        end_script()
      end
      return WindowWork, xth, yth, width, height
    end

    -- радомное вермя кликов
    function obj:timerClick (timers, text)
      math.randomseed(os.clock())
      local timers = timers + math.random (770) or 1000
      local text = text or "[[ " .. math.modf(timers/1000) .. " ]] sec"
      if ( timers > 1000 and text ~= nil ) then wait (timers + math.random(1) ) print (text .. " [[" .. math.modf(timers/1000) .. " sec ]]") end
      left (x, y, WindowWork)
      return timers, text, x, y
    end

    --[[
  xstart, ystart, xend, yend - координаты
  colors - массив цветов разброса
  count - кол-во для нахождения цветов
  ]]--
    function obj:fc (xstart, ystart, xend, yend, colors, count)
      local intCount = count or 4
      local counter = 0
      local intColors = colors or {}
      for i = 1, #intColors do
        local RC = findcolor (xstart, ystart, xend, yend, intColors[i], "%RCm", WindowWork)
        if RC then counter = counter + 1
          if counter >= intCount then
            x, y = RCm[1][1], RCm[1][2]
            return x, y
          end
        end
      end
    end

    -- метод чек чего-либо, типо локаций, нужной картинки/кнопки и тп
    function obj:check (sumNextColors)
      local sumNextColor = sumNextColors or 7 -- количество цветов для поиска
      for i = 1, #self do
        local checkLocations = self:fc (xth, yth, width, height, self[i], sumNextColor, WindowWork) -- поиск по рабочему окну
        if checkLocations then
          ActiveLocation = self[i][1]
          print ("Active Location --" .. ActiveLocation) break
        end
      end
      return ActiveLocation
    end

    -- метод перехода если цвета найдены
    function obj:next (NameLocationNext, sumNextColors)
      local sumNextColor = sumNextColors or 7 -- количество цветов для поиска
      for i = 1, #self.NextLocation do
        local NextLocations = self:fc (xth, yth, width, height, self.NextLocation[i], sumNextColor, WindowWork)
        if NextLocations then
          if (self.NextLocation[i][1] == NameLocationNext) then
            self:timerClick (1234, " КЛИК") break
          end
        end
      end
    end

    setmetatable (obj, self)
    self._index = self
    return obj
  end
----------------------------------------------------------------------------------------

-- тест работы
  local test = ClassDeviationColors:new ()

  test:Work("Джаггеранут", "fullscreen") -- Имя окна | Переход на полный экран false - true или "fullscreen"


  if (test:check(6) == "Главная") then -- как пример чекаем где находимся/ 6 сколько цветов надо найти/по умолчанию 7
    test:next("Атака_Босса", 3) -- переходим/кликаем куда надо // кол-во цветов, по умолчанию 7
  end



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

Сообщений в этой теме
yodich   FindColor (LUA)   26.2.2022, 15:07
cirus   В чём сложность? Как именно будет удобно? Потому...   26.2.2022, 15:26
yodich   В чём сложность? Как именно будет удобно? Потому...   27.2.2022, 11:02
cirus   Причём тут передача данных? В свёрнутом окне поиск...   27.2.2022, 11:41
DarkMaster   findcolor умеет работать с getimage?   18.4.2022, 1:39
Gendalfgreen   Позвольте..... А функция FindColour есть на LUA??...   28.5.2022, 23:40
DarkMaster   Из поста выше =) Вообще там с синтаксисом есть во...   29.5.2022, 2:59
Gendalfgreen   а есть возможность задать диапазон цветов? или доп...   30.5.2022, 16:58
DarkMaster   x1, y1, x2, y2, color, arr, method, count, deviati...   30.5.2022, 17:54
Kangoshi   x1, y1, x2, y2, color, arr, method, count, deviat...   14.8.2023, 12:27
Madeus   Приходится догадываться какие данные "идут т...   14.8.2023, 13:59
Gendalfgreen   к сожалению не работает((((( на параметр deviation...   31.5.2022, 21:57
DarkMaster   Тогда лишь могу предложить задавать диапазон стрин...   31.5.2022, 22:09
Gendalfgreen   Прошу ЛекБез что за стринг. имеется в виду диапазо...   31.5.2022, 22:18
Madeus   Прошу ЛекБез что за стринг. имеется в виду диапаз...   31.5.2022, 22:30
Gendalfgreen   не помогает   31.5.2022, 22:38
DarkMaster   как пишете? стринг = строка. "5134433 - 6000...   31.5.2022, 23:08
Gendalfgreen   возвращает nil while f ~= 100 do local xm, level ...   1.6.2022, 15:18
DarkMaster   ... и зачем вы передали текст "ttt" вмес...   1.6.2022, 15:32
Gendalfgreen   ув. DarkMaster если не сложно поправьте меня .......   1.6.2022, 15:55
Madeus   while f ~= 100 do local xm, level = mouse_pos...   1.6.2022, 16:37
DarkMaster   Вы раскомменчивали строки?   1.6.2022, 20:14
Gendalfgreen   нет   1.6.2022, 22:58
DarkMaster   Попробуйте.   2.6.2022, 14:03
Gendalfgreen   while f ~= 100 do local xm, level = mouse_pos() ...   2.6.2022, 16:23
DarkMaster   Ну собственно все, что я могу сказать - ttt у вас ...   2.6.2022, 16:31
Gendalfgreen   Это я поспешил((. Еще раз проверил работает только...   2.6.2022, 16:58
DarkMaster   в скобки возьмите внутри стринга local stat = find...   2.6.2022, 17:18
Gendalfgreen   ООООООооо ЗАРАБОТАЛО!!!! буду еще...   2.6.2022, 23:14
DarkMaster   Господа, если есть желающие заняться вики - я орга...   14.8.2023, 18:10
Madeus   Господа, если есть желающие заняться вики - я орг...   15.8.2023, 11:22
DarkMaster   Может занять некоторое время, акк для тебя запроси...   15.8.2023, 17:21
Madeus   В общем методом проб и ошибок проверил как работае...   20.8.2023, 0:21
DarkMaster   Чет сомнения у меня. Дело в том, что луа и старый...   20.8.2023, 18:30
Madeus   Чет сомнения у меня. Дело в том, что луа и старый...   27.8.2023, 12:17
Zenogiasu   Я не удачный пример выбрал для теста, deviation р...   4.10.2023, 12:44
nykep   я использовал findcolor либо с нулевой погрешность...   21.8.2023, 14:28


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

 

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