Автосохранение флота для Ogame или бот-нянька

Так как полет в Ogame продолжается, а времени безумно мало, то нужно что то делать. И так как к программированию я имею какое то отношение, то в воспаленном недосыпом мозгу созрел коварный план. А что если написать нам робота-няньку, который будет прятать флоты в случае угрозы вторжения? Тогда можно было бы со спокойной душой идти спать, как все прочие нормальные люди и при этом резко сократить шансы потерять весь свой нелегким трудом построенный флот.

Теория такова — обнаруживается противник, на подлете его к планете, ваш флот подхватывает с планеты все какие может ресурсы и отправляется самым дешевым маршрутом в путешествие (куда то, не суть важно куда). Как только опасность миновала — флот возвращается. Просто? Да!

Не долго думая, я сел писать скрипт на php. На данный момент получилась некая вполне рабочая бета-версия, которую могу предложить для скачивания в виде архива.

СКАЧАТЬ БОТА-НЯНЬКУ v 0.2Бетта

Скрипт-нянька

  • Дистрибутив. В архиве несколько файлов. Они предназначены для выполнения на веб-сервере (можно и на локальном компьютере, к примеру, с помощью пакета — Denver). Точка входа скрипт — index.php, остальные файлы содержат описания используемых классов.
  • Установка. Запишите файлы в какую то папку на вашем веб-сервере. Настроек подключения к базе данных не нужно, я переписал проект так, что временные данные сохраняются в файл в той же папке, что и сам проект. Я не тестировал проект на иных серверах кроме apache. Для просмотра состояния, вам нужно будет перейти на страницу файла index.php. Вы должны увидеть такую вот картинку:



Статусная страница бота-няньки для Ogame



Это будет означать не что иное как то, что половина дела сделана и сам бот способен запускаться на вашем сервере. А требуется не много и не мало — PHP5.

  • Настройка. Далее необходимо настроить некоторые константы, чтобы робот смог эффективно работать. Откройте файл index.php любым текстовым редактором, который поддерживает кодирование в UFT-8. Например, notepad++. В начале файлы вы увидите —

    Это как раз настройки, описывающие контролируемые вами планеты, настройки подключения,  и настройки таймеров. Рассмотрим их подробнее.

    • login, password — это ваши реквизиты подключения к серверу ogame, которые вы набираете каждый раз авторизируясь. Чтобы «няньке» выполнить какие то действия, нужно войти в игру с вашими реквизитами.
    • uniUrl — это имя сервера, на котором вы играете. Для byrem, это, например, «uni102.ogame.ru». Поглядите, что написано в браузере после авторизации и возьмите соответствующую часть для настройки.
    • planets — это массив описаний ваших планет, с которыми будет работать робот-нянька. Каждое описание, это в свою очередь массив параметров. Вот те параметры, которые понятны роботу.
      Название параметра Описание Обязателен
      0 всегда идет на первом месте в массиве, либо явно указывается ключ — 0 (ноль). Координаты вашей планеты. да
      1 всегда идет на втором месте в массиве, либо явно указывается ключ — 1. Числовой идентификатор вашей планеты в системе ogame. Где его брать? Когда вы в игре, справа вы видите список планет, переключитесь на какую либо планету и вы окажетесь на странице с адресом вида: «http://{uniUrl}/game/index.php?page=overview&session=9857635ab487&cp=842759845«. Именно этот код для параметра «cp» нам и нужен. да
      norefuge Если этот параметр задан как true, то нянька не будет эвакуировать флот с этой планеты. По умолчанию параметр установлен как false. нет
      refugeVars Можно в явном виде указать к какой планете лететь флотам и с каким кодом миссии. 3 — это «транспорт», 4 — это миссия «оставить». Остальные коды миссий я описывать не буду, т.к. они могут не подойти для некоторых комбинаций отправляемого флота. Координаты планеты назначения задаются в параметре — «to», а код миссии — параметром «mission». нет
    • report-mail — часть отчетов робот отправляет по почте на указанный emai. Можете оставить параметр пустым, тогда сообщения по email приходить не будут, а будет накапливаться только лог на страницу index.php.
  • Настройка таймеров. Смысл работы скрипта в том, чтобы периодически поглядывать — не летит ли чего то к вам? Потому, он должен периодически запускаться и выполнять подключение к игровому серверу, анализировать ситуацию, отдавать приказы флотам и т.п. Для этого предусмотрена специальная точка входа в программу, которая реализуется, когда скрипт вызывается с параметром index.php?auto=1. Т.е. вызов скрипта с данным флажком нужно настроить для вызова по таймеру.

    Если вы настраиваете все это хозяйство локально, то скорее всего захотите воспользоваться  планировщиком задач Windows. Если же скрипт планируется расположить на удаленном веб-сервере, то скорее всего вам понадобится настроить сron.

    Для крона это будет запись вроде:
    0,10,20,30,40,50 * * * * /usr/bin/wget -O — -q http://сайт.ru/nun-bot-ogame/index.php?auto=1
    что задаст интервал сканирования 10 минут. При этом по адресу http://сайт.ru/nun-bot-ogame/index.php — вы будете видеть в логах отметки подключения к серверу.



    Логи подключений бота-няньки на статусной странице.



    Если вы используйте другой интервал сканирования (не 10 мин) не забудьте установить это значение в переменной $crontime в index.php. Оптимально это — 5-10 минут.

  • Запуск режима охраны. Когда с таймерами все решено, и на статусной странице периодически добавляются в лог записи с темой «cron tick», остаётся включить режим охраны (кнопка — «Скорее включить»).
  • Тест. Обязательно проведите мало-мальский тест. Попросите кого либо направить на вас атаку. В очередной период сканирования атака должны быть обнаружена. После этого дождитесь когда атакующий флот подлетит ближе чем время сканирования — робот должен будет эвакуировать флоты. Когда же угрозы уже не будет — то флот будет отправлен назад на планету (опять же самим роботом).

Осторожно! Вы используете данный скрипт на ваш страх и риск. Помните, этот скрипт не является одобренным скриптом со стороны ogame. Если станет известно о том, что вы используете данный скрипт, то ваша учетная запись скорее всего отправить в бан до конца ваших дней.

Скрипт рассчитан на определенную версию самой ogame, и потому будет дорабатываться и модифицироваться без каких либо дополнительных уведомлений. Я выкладываю его здесь, чтобы привлечь энтузиастов и любителей скриптинга, т.к. в библиотеках скрипта реализованы многие рутинные моменты, и нужно приложить не так много фантазии и сил, чтобы сделать на его основе что то ещё более полезное.

Когда скрипт авторизуется на сервере, ваша сессия в браузере аннулируется игрой (вам придется снова авторизоваться, что войти в игру). Это происходит только в режиме охраны. Потому перед тем как зайти в игру, отключайте режим охраны на статусной странице.

Это только первая версия, скорее всего я буду совершенствовать её дальше как в направлении улучшения маскировки самого бота, так и в направлении упрощения установки и настройки.

Написать комментарий

Мало букафф? Читайте есчо !

Как получить FID по URI в Drupal?

Ноябрь 7, 2017 г.

При работе с private файлами в Drupal, можно использовать зацепку hook_file_download($uri), в которой вы можете реализовать проверку прав доступа к скачиваемому файлу. Но на входе функции - только uri, вместо fid, по которому было бы удобно вытащить всю ...

Читать

Установка виджета ленты произвольного пользователя twitter на свой сайт

Август 7, 2015 г.

Вы можете установить ленту сообщений любого пользователя twitter на собственный сайт. Далее я покажу как это сделать, а также расскажу о некоторых дополнительных ...

Читать

 

Комментарии к «Автосохранение флота для Ogame или бот-нянька»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Автосохранение флота для Ogame или бот-нянька”

  1. Одичавший егерь:

    Посмотрим. Раскурочим. Применим )

    • Давай, Егор, дерзай. :) Там смотри, я уж вторую версию выложил. Но суть та же, там просто интерфейс для настройки прикрутил, и сделал возможность работы с локальной машины без Cron и планировщика задач.

  2. Антон:

    День добрый! Мне интересна больше функция не няньки даже а точная запись во сколько на меня вылетел противник с заданием атака, и сколько ему до меня лететь…зачем мне это нужно объяснять думаю излишне…просто обновлять игру каждую мин. проблематично, а если бот это будет делать — это легче. Данный бот к стати засеч администрация не сможет , потому что его можно запускать только тогда, когда провоцируешь противника и ожидаешь атаки, а не регулярно.

    Что скажите? Может Ваше решение уже улавливает этот момент?

    • Нянька — это прежде всего скрипт с массой функций общего назначения. Т.е. описан ряд классов по извлечению данных, авторизации в игре и т.п. На базе это т.н. API можно написать любую логику. Сейчас написана программа по автоматизации cохранения флота. А можно написать как вам нужно — регистрацию атак противника. Или как меня спрашивали не давно — воспроизведение звукового сигнала, оповещающего об атаке. А если развивать идею, то можно, например, высылать SMS при обнаружении атаки.

  3. Антон:

    Да..это было бы здорово. Вот только это скорее не для того, чтобы просто узнать что атакуют, и увести флот. Этот механизм позволит ловить флот на прилете в родную планету. Так же как и с помощью сенсерной фаланги, но без луны так сказать! Это будет бомба!

    • Я уже довольно долго не играю в Огу, поэтому нянька не обновляется и не развивается. Исходники выложены для всех желающих, и там довольно прилично с комментариями. Возможно, кто то бы подхватил развитие няньки, было бы здорово. Наиболее последняя версия не в этой записи — смотрите более свежую.