ynbIpb
Скриптер
- Сообщения
- 399
- Репутация
- 110
Разрабочики продукта под названием Adguard устроили розыгрыш призов. Новость
Написал простенький скрипт, который набивает очки в этой игре. Так как разыгрыш уже окончен, то делюсь кодом.
Игра
в переменные $iPosX и $iPosY необходимо указать координаты верхнего левого угла серого поля игры.
Начинаете игру вручную, нажимаете F4 и пошла автоматизация. Нажимаете F2 и скрипт завершает работу.
Принцип действия основан на поиске белого пикселя на серо-черном поле. Так же пришлось отдельно искать розовый писель, так как в одном из объектов белого было мало.
Написал простенький скрипт, который набивает очки в этой игре. Так как разыгрыш уже окончен, то делюсь кодом.
Игра
в переменные $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