1 (изменено: onesarius, 2022-04-10 17:11:26)

Тема: AHK: Pixelsearch и цикл

Привет! Я никак не могу написать рабочий скрипт который искал бы 4 цвета по приоритету, при этом когда он найдет - зажимает ЛКМ  на этих координатах пока цвет не пропадет, это все нужно поместить в цикл. Я перепробовал уже массу вариантов но ничего не вышло и вот на чем я остановился.


CoordMode, Pixel, Window
CoordMode, Mouse, Window



Numpad1::
Purple:
PixelSearch, Px, Py, 0, 0, 1900, 1000, 0x77172F, 0, Fast
if ErrorLevel = 0
    Mouseclick,  Px, Py, 1, 0, D
else
Blue:
PixelSearch, Px, Py, 0, 0, 1900, 1000, 0xD3CF41, 0, Fast
if ErrorLevel = 0
    Mouseclick, Px, Py, 1, 0, D
else
Red:
PixelSearch, Px, Py, 0, 0, 1900, 1000, 0x1A0A68, 0, Fast
if ErrorLevel = 0
    Mouseclick, Px, Py, 1, 0, D
else
Green:
PixelSearch, Px, Py, 0, 0, 1900, 1000, 0x00A400, 0, Fast
if ErrorLevel = 0
    Mouseclick, Px, Py, 1, 0, D
else

t = t1 + 10
while t > t1
{
    goto, Purple
}


Numpad0::
Pause

Помогите пожалуйста.

2 (изменено: onesarius, 2022-04-10 17:11:38)

Re: AHK: Pixelsearch и цикл

У меня также есть готовый и рабочий вариант в Clickermann, мне нужен тот же скрипт в AHK.
Что можно сделать?

$bad = 0
start:
$time = $_time_t + 10 
WHILE($time > $_time_t)
fiol2:
GETSCREEN
IF_PIXEL_IN(500,295,1380,745, 16646271,16582565,13041717,16580686,16583293,16646280) 
 LDOWN($_return1, $_return2)    //   Фиолетовый
   IF ($time > $_time_t)
	 goto(fiol2) 
	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
blue2:
GETSCREEN
IF_PIXEL_IN(500,295,1380,745, 16645632,16710917,16645644,16642052,16645632,16645460)  //  синий
 LDOWN($_return1, $_return2) 
 IF ($time > $_time_t)
  goto(blue2)
  	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
red2:
GETSCREEN
IF_PIXEL_IN(500,295,1380,745, 526226,116,242,248,218,212,254,592012,133,460936,657289,210)   //  красный
 LDOWN($_return1, $_return2)  
 IF ($time > $_time_t) 
 goto(red2) 
 	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
green2:
GETSCREEN
 IF_PIXEL_IN(500,295,1380,745, 64000,522503,39168,63744,65024,34048)   //  зеленый
 LDOWN($_return1, $_return2)
 IF ($time > $_time_t)
  goto(green2) 
  	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
fiol1:
GETSCREEN
IF_PIXEL_IN(240,163,1725,951, 16646271,16582565,13041717,16580686,16583293,16646280) 
 LDOWN($_return1, $_return2)    //   Фиолетовый
 IF ($time > $_time_t)
   goto(fiol2) 
   	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
blue1:
GETSCREEN
IF_PIXEL_IN(240,163,1725,951, 16645632,16710917,16645644,16642052,16645632,16645460)  //  синий
 LDOWN($_return1, $_return2) 
 IF ($time > $_time_t)
  goto(blue2)
  	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
red1:
GETSCREEN
IF_PIXEL_IN(240,163,1725,951, 526226,116,242,248,218,212,254,592012,133,460936,657289,210)   //  красный
 LDOWN($_return1, $_return2)  
 IF ($time > $_time_t) 
 goto(red2) 
 	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
green1:
GETSCREEN
 IF_PIXEL_IN(240,163,1725,951, 64000,522503,39168,63744,65024,34048)   //  зеленый
 LDOWN($_return1, $_return2)
 IF ($time > $_time_t)
  goto(green2)
		 ELSE
	 inc($bad, 1)
	 END_IF 
END_IF
fiol:
GETSCREEN
IF_PIXEL_IN(0,0,1920,1080, 16646271,16582565,13041717,16580686,16583293,16646280) 
 LDOWN($_return1, $_return2)    //   Фиолетовый
 IF ($time > $_time_t)
   goto(fiol1) 
   	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
blue:
GETSCREEN
IF_PIXEL_IN(0,0,1920,1051, 16645632,16710917,16645644,16642052,16645632,16645460)  //  синий
 LDOWN($_return1, $_return2) 
 IF ($time > $_time_t)
  goto(blue1)
  	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
red:
GETSCREEN
IF_PIXEL_IN(0,0,1920,1051, 526226,116,242,248,218,212,254,592012,133,460936,657289,210)   //  красный
 LDOWN($_return1, $_return2)
 IF ($time > $_time_t)   
 goto(red1) 
 	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
green:
GETSCREEN
 IF_PIXEL_IN(0,0, 1920,1051, 64000,522503,39168,63744,65024,34048)   //  зеленый
 LDOWN($_return1, $_return2)
 IF ($time > $_time_t)
  goto(green1) 
  	 ELSE
	 inc($bad, 1)
	 END_IF
END_IF
LUP(960,570)
END_CYC
inc($bad, 1)
IF ($bad > 20)
   LDOWN(RNDFROM(150,960,1750),RNDFROM(150,570,1000))
   wait(6)
   LUP(960,570)
   $bad = 0
END_IF
goto(start)

3

Re: AHK: Pixelsearch и цикл

Начните с простого - найти первый цвет и уведомить об этом. Далее будет проще разобраться.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

4

Re: AHK: Pixelsearch и цикл

onesarius, добро пожаловать на форум! Ознакомьтесь, пожалуйста, с Правилами, отредактируйте свои посты. Обратите внимание на точки в конце предложений.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Pixelsearch и цикл

__Михаил__

Цвета он находит верно, но когда я делаю допустим цикл со всеми цветами - он идет по ним всем, но мне нужно что найдя допустим Purple, он выполнял сначала его, после когда выполнит - следующий, и тут задержка не поможет.

отредактируйте свои посты. Обратите внимание на точки в конце предложений.

поправил.

6

Re: AHK: Pixelsearch и цикл

Ну значит логика неверная используется.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

7

Re: AHK: Pixelsearch и цикл

onesarius пишет:

__Михаил__

Цвета он находит верно, но когда я делаю допустим цикл со всеми цветами - он идет по ним всем, но мне нужно что найдя допустим Purple, он выполнял сначала его, после когда выполнит - следующий, и тут задержка не поможет.

отредактируйте свои посты. Обратите внимание на точки в конце предложений.

поправил.

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