Что нового

[adguard.com] Бот кликкер для игры на сайте

ynbIpb

Скриптер
Сообщения
399
Репутация
110
Разрабочики продукта под названием Adguard устроили розыгрыш призов. Новость
Написал простенький скрипт, который набивает очки в этой игре. Так как разыгрыш уже окончен, то делюсь кодом.
Игра
в переменные $iPosX и $iPosY необходимо указать координаты верхнего левого угла серого поля игры.
Начинаете игру вручную, нажимаете F4 и пошла автоматизация. Нажимаете F2 и скрипт завершает работу.
Принцип действия основан на поиске белого пикселя на серо-черном поле. Так же пришлось отдельно искать розовый писель, так как в одном из объектов белого было мало.
Код:
; ----------------------------------------------------------------------------
; AutoIt Version: 3.3.14.5
; Author: ynbIpb
; Script Function: Play https://adguard.com/game/10-years/game.html
; ----------------------------------------------------------------------------
#include <Array.au3>
AutoItSetOption ("PixelCoordMode", 1); абсолютные координаты экрана при чтении пикселей
AutoItSetOption ("MouseCoordMode", 1); абсолютные координаты экрана при движении мыши
$iPosX = 457  ; начальная координата окна по горизонтали 632
$iPosY = 289  ; начальная координата окна по вертикали 330
$iWinWidth = 655 ; ширина игрового окна без первого пикселя
$iWinHeight = 457 ; высота игрового окна без первого пикселя
$iStopGame = 2 ; по умолчанию флаг остановки равен 2 (ничего не делать).

HotKeySet ( "{F4}", "_StartGame"); ставим горячую клавишу на запуск игры.
HotKeySet ( "{F2}", "_StopGame"); ставим горячую клавишу на остановку игры.

TrayTip ( "Adguard Game", "Начало игры через 5 сек", 5, 1)
Sleep (5000)
TrayTip ( "", "", 0)

While 1
	If $iStopGame = 1 Then ; если флаг изменился на 1, завершаем игру
		TrayTip ( "Adguard Game", "Игра остановлена!", 3, 1)
		Sleep (3000)
		Exit
	ElseIf $iStopGame = 0 Then ; иначе, но если флаг равен 0, то игра пошла
		$awhitePos = PixelSearch ($iPosX, $iPosY, $iPosX + $iWinWidth, $iPosY + $iWinHeight, 0xFFFFFF, 50, 8); поиск белого цвета с шагом 7 пикселей
		If IsArray ($awhitePos) Then ; если ответ является массивом, значит что-то нашли
			MouseClick ( "left", $awhitePos[0], $awhitePos[1], 1, Random (3, 8, 1)); кликаем по результату
		Else ; иначе, если не нашли белый цвет, то ищем розовый цвет
			$aPinkPos = PixelSearch ($iPosX, $iPosY, $iPosX + $iWinWidth, $iPosY + $iWinHeight, 0xFF00CC, 50, 7); поиск розвого цвета с шагом 8 пикселей
			If IsArray ($aPinkPos) Then; если ответ является массивом, значит что-то нашли
				MouseClick ( "left", $aPinkPos[0], $aPinkPos[1], 1, Random (3, 8, 1)); кликаем по результату
			EndIf
		EndIf
	EndIf
	Sleep (Random (30, 80, 1)); рандомная задержка от 30 до 80 мс, чтобы не заподозрили
WEnd

Func _StopGame ()
	$iStopGame = 1 ; переключаем флаг остановки игры на еденицу
EndFunc

Func _StartGame ()
	$iStopGame = 0 ; переключаем флаг остановки игры на ноль
EndFunc
 

Вложения

  • началась.jpg
    началась.jpg
    142.6 КБ · Просмотры: 35
Верх