1 (изменено: Q1x, 2021-04-05 15:39:08)

Тема: AutoAccept cs:go

Всем привет. Возникла такая проблема:
Я Новичок в скриптах AHK.
Не понимаю проблемы.
Написал вот такой код(Часть кода):

+ открыть спойлер

f1::
Click 59,337
Sleep 100
loop									
	{
		PixelGetColor, Color, 59, 337 BRG
		if Color = 0x050505
		{
		Click 282,302
	}
		if Sleep 5000
        {
		Click 60,-50
		Sleep 100
		Click 62,209
		}
	else
		{
		sleep, 50 		
		}	
		
		PixelGetColor, Color, 18, 18 BRG
		if Color = 0x121212
		{
		Click 62,209
	}
		if Sleep 20000
		{
	   Click 62,209
       Sleep 200
       Click 337,484
       Sleep 23000
	   Click 337,745
	   Sleep 60000
	   Click 336,485
       Sleep 100
	   Click 62,-50
       Sleep 100
       Click 335,486
       Sleep 100
       Click 62,209
       Sleep 100
       Click 62, 600
	  }
	  else
		PixelGetColor, Color, 59, 337 BRG
		if Color = 0x050505
		{
		Click -820,200
		}
		if Sleep 500
		{
		Click 282,302
	}
		if Sleep 5000
			{
		Click 60,600
		}
	    if Sleep 500
		{
		Click 282,302
	}
		if Sleep 500
		{
		Click 940, 100
	}
}
	return
	

Есть догадки, почему скрипт не работает, но я немного не понимаю как реализовать.
Суть скрипта: Открыто 4 окна в оконном режиме "cs:go". В начале скрипт ставит курсор, на позицию с цветом, когда игра не находится он, ожидает при появлении цвета, принимает её. Далее, перемещается на 2 окно, если там так же нашлась игра он принимает, но если нет, то ждёт 20сек и перезапускает поиск. Как можно привести в действие данный скрипт?
Очень будут признателен, если вы мне поможете.

2

Re: AutoAccept cs:go

1) Зачем четыре окна игры, когда можно и нужно в одном работать?
2) Что по вашему должен тут увидеть AHK: 'if Sleep 5000' ?
3) Или тут: 'Click -820,200' ?

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

3 (изменено: Q1x, 2021-04-06 08:59:41)

Re: AutoAccept cs:go

__Михаил__ пишет:

1) Зачем четыре окна игры, когда можно и нужно в одном работать?
2) Что по вашему должен тут увидеть AHK: 'if Sleep 5000' ?
3) Или тут: 'Click -820,200' ?

1. Есть 2 лобби. 1 лобби в одном окне и в другом.(Они в пати.)
Основная задача, это, принять все игры, когда это нужно. То есть когда в первом появляется изменение пикселя, он принимает и перекидывает в другое окно, если там пиксель такого же цвета он принимает во всех остальных 3 окон. Если в первом окне пиксель совпал, а во втором нет, он должен ждать 25 секунд и начинать поиск заного.
2. Если написать просто слип, он не работает почему-то, но если добавить if, всё как часики. Я новичок в ахк, знаю базу. Возможно, эта приставка там и не нужна.

4

Re: AutoAccept cs:go

Проблемы в коде:
1) Привязка к текущему окну, убрать её добавив эти строки в верх скрипта:

CoordMode, Pixel, Screen
CoordMode, Mouse, Screen

Далее использовать отсчёт координат по-человечески: от верхнего левого пикселя монитора.
Если это не нужно - делать каждое окно для поиска активным, тогда координаты поиска пикселя у всех окон будут равные (если окна имеют одинаковый размер).

2) Неверное использование в 'if Sleep 5000'. Происходит сверка переменной Sleep, которая в вашем коде нигде не присвоена.

Я бы попробовал использовать поиск по картинке, сделал бы скриншот принятия игры затем искал его в нужной координате (я так понял в первом окне важней всего?). Затем если найдёт в первом сместил координаты поиска на второе окно и так далее.
После неудачи во втором или в любом окне после него - сброс поиска, ожидание 25 сек.

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

5

Re: AutoAccept cs:go

__Михаил__ Спасибо, позже попробую. Если что отпишу)

6 (изменено: Q1x, 2021-04-07 20:43:35)

Re: AutoAccept cs:go

__Михаил__ Добрый вечер, подскажите пожалуйста, что я не так делаю.... Неделю, уже с этим скриптом сплю(

+ открыть спойлер

https://imgur.com/a/1Te22Ui

f1::
CoordMode, Pixel, Screen
CoordMode, Mouse, Screen
Click 942,580
Sleep 100
loop									
	{
		PixelGetColor, Color, 5, 5, 5 RGB
		if Color = 0x050505
		{
		Click 1032,524
		Sleep 500
		Click 950,279
		}
	else
		{
		sleep, 50 		
		}	
		break
		Loop
        {
		PixelGetColor, Color, 18, 18, 18 RGB
		if Color = 0x121212
		{
		Click 1224,491
		Sleep 20000
		Click 1111,716
		Sleep 50000
		Click 1111,716
		Sleep 500
		Click 1126,471
		Sleep 500
		Click 942,580
	}
	else
	{ Sleep 200
		Click 1129,302
		Sleep 500
		Click 232,274
		Sleep 500
		Click 225, 555
		Sleep 500
		Click 62,265
		break
}
}
}
	return
	
    f12::
    ExitApp
	return

7

Re: AutoAccept cs:go

Разрешение экрана 1365, 767 ??

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

8

Re: AutoAccept cs:go

__Михаил__ 1366*768

9

Re: AutoAccept cs:go

Сложно понять что пытается проверить скрипт, нужны комментарии и форматирование строк.

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

10

Re: AutoAccept cs:go

__Михаил__
Что означает, комментарии и форматирование строк?

11 (изменено: __Михаил__, 2021-04-08 00:05:32)

Re: AutoAccept cs:go

1) Описание что делает код в текущей строке, для чего именно так а не иначе и т.д.
2) В первую очередь отступы, то один Tab то куча.
Когда код правильно составлен в нём не лень ковыряться +любые проблемы можно быстрее найти / исправить.

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

12 (изменено: Q1x, 2021-04-07 23:59:49)

Re: AutoAccept cs:go

__Михаил__ Подкорректировал, так должно быть понятнее.

f1::
CoordMode, Pixel, Screen
CoordMode, Mouse, Screen
Click 942,580 ; Начальный, кликает на бок окна в серое место.
Sleep 100
             loop									
	         {
				PixelGetColor, Color, 5, 5, 5 RGB
				if Color = 0x050505 ; Чёрный цвет
						{
						Click 1032,524 ; Клик на принятие игры
						Sleep 500
						Click 950,279 ; Клик на другое окно, так же как и в начальном.
						}
				else ; Во время ожидания, он спит, как только чёрный цвет появляется, выполняется скрипт выше.
				{
				sleep, 50 		
				}	
				break
			}	
					Loop
					{
						PixelGetColor, Color, 18, 18, 18 RGB ; 2-ое окно. 
						if Color = 0x121212 ; Серый цвет
							{
							Click 1224,491  ; Если цвет серый, выполняется данные действия, а именно. Нажатие по кнопки отмена, ожидание 20сек, переход на первое окно,ожидание 50 сек, нажатие отмены и перезапуск игры.
							Sleep 20000
							Click 1111,716
							Sleep 50000
							Click 1111,716
							Sleep 500
							Click 1126,471
							Sleep 500
							Click 942,580
							}
	                                              else
												{   Sleep 200        ; Если пиксель чёрный продолжает принятие игры.
													Click 1129,302
													Sleep 500
													Click 232,274
													Sleep 500
													Click 225, 555
													Sleep 500
													Click 62,265
												}
												    break
					}
return
	
    f12::
    ExitApp
	return