Author Topic: Проблема. Цвет пикселя. Действия от цвета пикселя.  (Read 8066 times)

0 Members and 1 Guest are viewing this topic.

АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Всем привет! С вами снова я АНТИКЛАН! :D
Давным-давно... В далекой-далекой галактике... Хотя о чем это я? :D
Короче, други, проблемка нарисовалась! :D

Не работает вот этот кусок кода:

Code: (clickermann) [Select]
THREAD(BANKI_MP, 1)
   GETSCREEN
   IF(PXL(36,59) ! 8796421)
      KEYPRESS(#F10)
      WAIT(5)
   END_IF
   WAITMS(5)
END_THREAD

Код должен следить за пикселем на экране и как только он станет другого цвета выполнить действие. При запуске поведение очень странное... Скрипт либо вообще ничего не делает, даже когда наступает момент, что должно сработать, либо его заклинивает и он начинает работать без остановки не взирая на условия. Пробовал и так и сяк даже отдельно без потока в новом чистом скрипте. Значение цвета брал прям из полноэкранного режима по Alt+Q. Делал серию скриншотов и сравнивал нужный пиксель, нигде он не меняется ни от поворота камеры ни от смены места. Применять COLORMODE тоже пробовал эффект один.
Кто сталкивался с таким уже поделитесь опытом.
« Last Edit: March 06, 2015, 03:09:57 PM by АНТИКЛАН »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #1 on: March 06, 2015, 11:41:42 AM »
И даже с еденицей не работает?  ;)

А ты не гробишь всё делая гетскрин через каждые 5 миллисекунд?
« Last Edit: March 06, 2015, 11:43:20 AM by Vint »


АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #2 on: March 06, 2015, 11:42:47 AM »
и даже с еденицей не работает?  ;)

С единицей где?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #3 on: March 06, 2015, 11:44:19 AM »
С единицей где?
Здесь
Code: (clickermann) [Select]
THREAD(BANKI_MP, 1)Сначала был 0, пока я писал ответ, ноль сменился на один.


АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #4 on: March 06, 2015, 11:47:28 AM »
Здесь
Code: (clickermann) [Select]
THREAD(BANKI_MP, 1)Сначала был 0, пока я писал ответ, ноль сменился на один.

А ну это я специально поставил чтобы вы не сбивались на то что мол я его не включил :D Так то этот кусок - часть скрипта, там управление по горячим клавишам реализовано так что на старте этот поток выключен.

А ты не гробишь всё делая гетскрин через каждые 5 миллисекунд?

Ну насколько я понимаю то GETSCREEN выполняется только после того как отработают все предыдущие команды в цикле(условие, задержка)... Или я не прав?
« Last Edit: April 15, 2018, 06:05:44 PM by АНТИКЛАН »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #5 on: March 06, 2015, 12:02:50 PM »
Я не про то. Не слишком ли часто? Такая маленькая задержка.


АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #6 on: March 06, 2015, 12:06:30 PM »
Я не про то. Не слишком ли часто? Такая маленькая задержка.

Я тоже не точно выразился. Я точно не знаю ждет ли кликерман пока функция GETSCREEN завершится или нет и сразу переходит к следующей команде. По идее должно быть так: делаем снимок, проверяем пиксель ждем 5 мс, делаем снимок и т.д. Вообще ощущение что где-то кто-то кого-то не ждет ;D

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #7 on: March 06, 2015, 01:00:12 PM »
...Я точно не знаю ждет ли кликерман пока функция GETSCREEN завершится или нет и сразу переходит к следующей команде...
Ждёт. Но отдельный поток с гетскрином всего экрана через каждые 5 мс сильно грузить должен.
На поиск влиять, правда, не должно. Расставляй логи, а не только по нажатиям ориентируясь. Может нажатия не срабатывают и их нужно растянуть во времени.
Скриншот в конце концов.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #8 on: March 06, 2015, 01:09:11 PM »
Зону GETSCREEN нужно ограничить, тогда нагрузка будет минимальной
Code: (clickermann) [Select]
THREAD(BANKI_MP, 1)
   GETSCREEN(36,59,37,60) // вот именно так на 1 пиксель больше
   IF(PXL(36,59) ! 8796421)
      KEYPRESS(#F10)
      WAIT(5)
   END_IF
   WAITMS(5)
END_THREAD

Проблема может быть в том что в других потоках тоже есть GETSCREEN

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #9 on: March 06, 2015, 01:21:06 PM »
Проблема может быть в том что в других потоках тоже есть GETSCREEN
Находить это ему не помешает в данном случае.


АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Re: Проблема. Цвет пикселя. Действия.
« Reply #10 on: March 06, 2015, 03:07:51 PM »
Ждёт. Но отдельный поток с гетскрином всего экрана через каждые 5 мс сильно грузить должен.
На поиск влиять, правда, не должно. Расставляй логи, а не только по нажатиям ориентируясь. Может нажатия не срабатывают и их нужно растянуть во времени.
Скриншот в конце концов.

Про растянуть во времение можно поподробнее, а то я не понял пока что?

Зону GETSCREEN нужно ограничить, тогда нагрузка будет минимальной
Code: (clickermann) [Select]
THREAD(BANKI_MP, 1)
   GETSCREEN(36,59,37,60) // вот именно так на 1 пиксель больше
   IF(PXL(36,59) ! 8796421)
      KEYPRESS(#F10)
      WAIT(5)
   END_IF
   WAITMS(5)
END_THREAD

Проблема может быть в том что в других потоках тоже есть GETSCREEN

Ну пока что GETSCREEN только один в будующем я думаю его в отдельный поток оформить вообще. А просто один пиксель можно за зону взять?
« Last Edit: April 15, 2018, 06:06:24 PM by АНТИКЛАН »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
А просто один пиксель можно за зону взять?
А я тебе что написал?! Снимок всего 1 пиксела!

АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
А я тебе что написал?! Снимок всего 1 пиксела!

Там вроде четырех получается... Если я правильно думаю...
« Last Edit: April 15, 2018, 06:06:43 PM by АНТИКЛАН »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Просто верь.
На сегодняшний день там один.


АНТИКЛАН

  • Активный участник
  • ***
  • Posts: 111
    • View Profile
Просто верь.
На сегодняшний день там один.

А так тогда сколько?

Code: (clickermann) [Select]
GETSCREEN(36,59,36,59)