Автор Тема: Создание бота-кликера для браузерной игры Легенда наследие драконов  (Прочитано 2031 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн MME [?]

  • Новичок
  • *
  • Сообщений: 20
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.3.14.2

Описание:
Вообщем нужно найти изображение в окне браузера есть рыбки (зелёные кружочки на картинке стрелкой показаны) необходимо их найти и кликнуть на них, на верху поменяет изображение кружок далее нажимаем на него и начинается сбор ресурса. Какие тонкости необходимо когда программа Autoit найдёт рыбку чтобы совершала задержку перед нажатием на неё например от 1 до 10 секунд, также чтобы задержка была перед нажатием на кружок сбора. Ещё необходимо чтобы программа кликала не в центр кружка к примеру а от центра в радиусе 5-10 пикселей чтобы не спалится :)
Вообщем для начало как-то так картинки я прикрепил чтобы понятнее было кто сможет сделать могу денег на телефон закинуть:) или как-нить отблагодарить:) буду рад любой помощи:)
Позже ещё придумаю квесты  ;D кепча ужасная=)

Примечание: Нет


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Февраль 28, 2017, 08:28:24 от MME »

Русское сообщество AutoIt


Оффлайн Dima1337 [?]

  • Новичок
  • *
  • Сообщений: 141
  • Репутация: 14
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
С такой формулировкой вам в стол заказов: http://autoit-script.ru/index.php?board=8.0


Добавлено: Февраль 27, 2017, 17:04:05
дома буду сам попробую помучить :) буду рад любой помощи:)
Если собираетесь сами то читайте справку по:
Код: AutoIt [Выделить]

Правильный вопрос - полдела!

Оффлайн MME [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
С такой формулировкой вам в стол заказов: http://autoit-script.ru/index.php?board=8.0


Добавлено: Февраль 27, 2017, 17:04:05
дома буду сам попробую помучить :) буду рад любой помощи:)
Если собираетесь сами то читайте справку по:
Код: AutoIt [Выделить]
Возможно вы правы не учёл :) может тему перенести в стол заказов сэкономлю время и нервы себе и на чужом примере всегда проще учиться есле он не шибко сложный :D

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3679
  • Репутация: 934
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
MME
Оформите тему согласно правилам раздела "Стол заказов" и модератор данного раздела перенесёт её.

С уважением, ваш Модератор.

Скорблю и помню.




Русское сообщество AutoIt


Оффлайн Dima1337 [?]

  • Новичок
  • *
  • Сообщений: 141
  • Репутация: 14
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Единственную игру с названием: "Легенда наследие драконов" я нашел. Но она клиентская:

Для того что бы помочь вам, необходим скрин всего экрана (вместе с игрой) + размеры экрана


Добавлено: Февраль 27, 2017, 23:10:49
Вот в качестве примера как можно реализовать ваши замыслы...
Код: AutoIt [Выделить]
HotKeySet('{`}','_exit') ; Завершим скрипт на тильду

$color = '0xF0F4F9' ;Цвет круга рыбы "салатовый"
$color2 = '0xF0F4F9' ;Цвет круга кнопки "рыба поймана"

While 1
    _checkfish() ; Функция в цикле
    Sleep(100)
WEnd

Func _checkfish();                                                        _
    $pixel = PixelSearch(100,10,500,500,$color,100) ;Ищем рыбу! Квадрат  |  угол 100,10     _|угол 500,500
    If Not @error Then
        For $i = 1 To 4
            If $i = 1 Then
                MouseClick('',$pixel[0] - 10,$pixel[1] - 10,1) ; У нас круг, пытаемся попасть по рыбе 'Левый Верхний угол'
                $pixel = PixelSearch(300,40,350,50,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If Not @error Then
                    MouseClick('left',325,45) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 2 Then
                MouseClick('',$pixel[0] + 10,$pixel[1] + 10,1) ; 'Правый Нижний угол'
                $pixel = PixelSearch(300,40,350,50,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If Not @error Then
                    MouseClick('left',325,45) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 3 Then
                MouseClick('',$pixel[0] - 10,$pixel[1] + 10,1) ; 'Левый Нижний угол'
                $pixel = PixelSearch(300,40,350,50,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If Not @error Then
                    MouseClick('left',325,45) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 4 Then
                MouseClick('',$pixel[0] + 10,$pixel[1] - 10,1) ; 'Правый Верхний угол'
                $pixel = PixelSearch(300,40,350,50,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If Not @error Then
                    MouseClick('left',325,45) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
        Next
    EndIf
EndFunc

Func _exit()
    Exit
EndFunc

« Последнее редактирование: Февраль 27, 2017, 23:13:00 от Dima1337 »

Оффлайн MME [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Спасибо большое что помогаете да это действительно та игра но играть в неё можно не только с клиента но и через браузер прикрепил скрин, разрешение экрана 1920 - 1080 (уменьшил качество картинки размыта стала :()


Добавлено: Февраль 28, 2017, 08:20:53
Хотел добавить 2 картинки сам сбор ресурса и когда добыча не удалась такое бывает если начал собирать ресурс одновременно с кем-то либо независимо просто неудачный сбор :think:

Но пишет картинки слишком большие хотя их размер 6-7кб :blink:
Это наверно потому что картинка 3.jpg толстая :) добавил 2 картинки в первом сообщении=)

Также создал тестовый аккаунт дабы облегчить  и так ваш большой труд
Логин: test-34-34 собачка маил.ru
Пароль: Lol11111Lol
Уточню на данном аккаунте можно тренироваться ловить серую рыбу для других цветов навыка ловли не хватает :) если забанят заведу новый но уже скину в личку :) не могу внешние ссылки оставлять :(


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Февраль 28, 2017, 13:00:13 от MME »

Оффлайн Dima1337 [?]

  • Новичок
  • *
  • Сообщений: 141
  • Репутация: 14
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
#include <Misc.au3>

HotKeySet('{`}','_exit') ; Завершим скрипт на тильду

#Region Опрос
MsgBox(0,'Настройка','Наведите мышь на фиолетовый цвет на кнопке')
Do
    $pos = MouseGetPos()
    ToolTip('Пробел для приминения ' & $pos[0] & '.' & $pos[1])
Until _IsPressed(20)

MsgBox(0,'Настройка','Наведите мышь на Точку 1')
Do
    $pos2 = MouseGetPos()
    ToolTip('Пробел для приминения ' & $pos2[0] & '.' & $pos2[1])
Until _IsPressed(20)

MsgBox(0,'Настройка','Наведите мышь на Точку 2')
Do
    $pos3 = MouseGetPos()
    ToolTip('Пробел для приминения ' & $pos3[0] & '.' & $pos3[1])
Until _IsPressed(20)

MsgBox(0,'Настройка','Наведите мышь на Красную зону клавиши отменить в окне процеса рыбалки')
Do
    $pos4 = MouseGetPos()
    ToolTip('Пробел для приминения ' & $pos4[0] & '.' & $pos4[1])
Until _IsPressed(20)
#EndRegion Опрос

#cs Отладка, Удалить эту строку при необходимости
;Что бы постоянно мышкой не тыкать, просто сохраните координаты, удалите регион Опрос и впишите:
Global $pos, $pos2, $pos3, $pos4
$pos[0] = 0 ;x
$pos[1] = 0 ;y
$pos2[0] = 0 ;x
$pos2[1] = 0 ;y
$pos3[0] = 0 ;x
$pos3[1] = 0 ;y
$pos4[0] = 0 ;x
$pos4[1] = 0 ;y
#ce Отладка, Удалить эту строку при необходимости


$color = '0x03D115' ;Цвет круга рыбы "салатовый"
$color2 = PixelGetColor($pos[0],$pos[1]) ;Цвет кнопки рыбалки фиолетовый
$color3 = PixelGetColor($pos4[0],$pos4[1])  ;Цвет кнопки отмена красный

MsgBox(0,'Настройка','Нужные координаты: '&@CRLF&'$pos: x.'&$pos[0]&' y.'&$pos[1]&@CRLF&'$pos2: x.'&$pos2[0]&' y.'&$pos2[1]&@CRLF&'$pos2 Color: '&$color2&@CRLF&'$pos3: x.'&$pos3[0]&' y.'&$pos3[1]&@CRLF&'$pos4: x.'&$pos4[0]&' y.'&$pos4[1]&@CRLF&'$pos4 Color: '&$color3)

ToolTip('')

While 1
    _checkfish() ; Функция в цикле
    Sleep(100)
WEnd

Func _checkfish();                                                        _
    $pixel = PixelSearch($pos2[0],$pos2[1],$pos3[0],$pos3[1],$color,100) ;Ищем рыбу! Квадрат  |  угол 100,10     _|угол 500,500
    If Not @error Then
        For $i = 1 To 9
            If $i = 1 Then
                MouseClick('',$pixel[0] - 10,$pixel[1] - 10,1) ; У нас круг, пытаемся попасть по рыбе 'Левый Верхний угол'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 2 Then
                MouseClick('',$pixel[0] + 10,$pixel[1] + 10,1) ; 'Правый Нижний угол'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 3 Then
                MouseClick('',$pixel[0] - 10,$pixel[1] + 10,1) ; 'Левый Нижний угол'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 4 Then
                MouseClick('',$pixel[0] + 10,$pixel[1] - 10,1) ; 'Правый Верхний угол'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 5 Then
                MouseClick('',$pixel[0],$pixel[1] - 10,1) ; У нас круг, пытаемся попасть по рыбе 'Центр Верх'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 6 Then
                MouseClick('',$pixel[0],$pixel[1] + 10,1) ; У нас круг, пытаемся попасть по рыбе 'Центр Верх'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 7 Then
                MouseClick('',$pixel[0] - 10,$pixel[1],1) ; У нас круг, пытаемся попасть по рыбе 'Лево Центр'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 8 Then
                MouseClick('',$pixel[0] + 10,$pixel[1],1) ; У нас круг, пытаемся попасть по рыбе 'Право Центр'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                    ExitLoop
                EndIf
            EndIf
            If $i = 9 Then
                MouseClick('',$pixel[0] - 10,$pixel[1],1) ; У нас круг, пытаемся попасть по рыбе 'Центр Центр'
                $pixel = PixelSearch($pos[0] - 10,$pos[1] - 10,$pos[0] + 10,$pos[1] + 10,$color2,100) ;Проверяем цвет кнопки поймали рыбу или нет.
                If @error Then
                    MouseClick('left',$pixel[0],$pixel[1]) ; Тыкаем по кнопке, ПРОФИТ рыба поймана.
                EndIf
            EndIf
        Next
        While 1
            $pixel = PixelSearch($pos4[0] - 20, $pos4[1] - 5, $pos4[0] + 20, $pos4[1] + 5, $color3, 100)
            If @error Then
                MouseClick("left",$pixel[0],$pixel[1])
                ExitLoop
            EndIf
            Sleep(50)
        WEnd
    EndIf
EndFunc

Func _exit()
    Exit
EndFunc
 

Описал все в комментариях, должно быть просто и понятно...
(нажмите для показа/скрытия)
« Последнее редактирование: Февраль 28, 2017, 16:47:10 от Dima1337 »

Оффлайн MME [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Навёл на фиолетовый цвет нажал пробел --> навёл на точку1 нажал пробел --> навёл на точку2 нажал пробел --> потом сам начал собирать рыбу навёл на кнопочку отмена нажал пробел получил ошибку скрин приложу
Я не чё не напутал ? :)


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Русское сообщество AutoIt


Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3679
  • Репутация: 934
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
MME  [?]
Цитировать
получил ошибку
В строке №32 уберите пробелы между $po и s4[0]. Это массив $pos4.
Код: AutoIt [Выделить]
ToolTip('Пробел для применения ' & $po    s4[0] & '.' & $pos4[1])


Оффлайн Dima1337 [?]

  • Новичок
  • *
  • Сообщений: 141
  • Репутация: 14
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
 :blink: понятия не имею как туда прокрались пробелы  :stars: исправил

Оффлайн MME [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Сделал как посоветовали спасибо дальше появилось картинка номер1 после этого мышка маленько побегала по фиолетовому кружку и появилась картинка2 :)


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Оффлайн Dima1337 [?]

  • Новичок
  • *
  • Сообщений: 141
  • Репутация: 14
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Попробуйте так:
(нажмите для показа/скрытия)
Отличие в том что вам нужно нажать на голубой цвет на кнопке когда рыба выделена.
И на бежевый цвет кнопки закрыть когда завершится поимка рыбы.

Оффлайн MME [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Ну сделал не уверен что правильно не кидайте камнями скрины прилепил если делаю так как на скрине мышка довольно быстро бегает по траектории примерно треугольника  :) иногда меняет немного траекторию  :-\  (при успешной поимке рыбы табличка закрыть не появляется) возможно она имелась ввиду :-\

Возможно мне нужно спровоцировать неудачную поимку рыбы и нажать на слово закрыть?


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Февраль 28, 2017, 18:15:23 от MME »

Оффлайн Dima1337 [?]

  • Новичок
  • *
  • Сообщений: 141
  • Репутация: 14
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Теперь понял.
(нажмите для показа/скрытия)
1 тык по бирюзовой
2 тык по красной части кнопки отмена

Оффлайн MME [?]

  • Новичок
  • *
  • Сообщений: 20

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Так опишу что получилось всё сделал как написано далее появляется табличка с координатам  :) жму ОК мыша бежит на зелёный кружок промахивается как я понял по нему и ползёт к бирюзовому кружку но он фиолетовый т.к мы промазали по рыбке  :)

Ещё столкнулся с такой проблемой иногда кружок зелёный с рыбой на половину за экраном и он как я понимаю пытается кликнуть на верхнюю часть кружка и попадает на коричневое поле интерфейса вот как-то так :think: :-\

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
2173 Просмотров
Последний ответ Сентябрь 12, 2012, 06:28:17
от madmasles