Робот для Ogame, третья редакция

Как результат долгой игры и серии банов за «бота» появилась третья и, наверное, последняя редакция бота-няньки. Расскажу здесь более подробно о сути няньки и том, что ещё было бы замечательно сделать в программе.

СКАЧАТЬ НЯНЬКУ-РОБОТА для OGAME v.03

Установка няньки

Установка няньки не претерпела существенных изменений, нужен apache в качестве веб сервера с включенным модулем curl. Кстати, именно то как включить curl в apache сконфигурированном в рамках DENVER вызвало у людей вопросы. Я понимаю — многие вообще далеки от того, что такое веб-сервер, им просто нужно установить робота. После установки DENVER, загляните в файл /ПапкаГдеВашДенверУстановлен/usr/local/php5/php.ini. Найдите там строчку

Удалите «;», перезапустите сервер. Так вы включите модуль curl. Самой библиотеки curl может не оказаться в составе php комплекта denver. Скачайте тогда полную версию php c cайта php.net той версии, что установлена в вашем denver. Версию php в составе вашего denver можно обычно посмотреть на странице http://localhost/Test/PHP/phpinfo.php. Возьмите из полного дистрибутива нужную вам библиотеку php_curl.dll и запишите её в папку

или

— это зависит уже от версии самого php. Выложу тут php_curl.dll для php 5.2.6.

Куда копировать файлы няньки в случае использования локального сервера?

Этот вопрос также встречается, и встречается он по той же причине что и первый. Чтобы не вдаваться в подробности настройки DENVER-а, выполните следующие инструкции:

  • Создайте папку /ПапкаГдеВашДенверУстановлен/home/bot.local/www
  • Скопируйте туда файлы няньки.
  • Перезапустите DENVER (/ПапкаГдеВашДенверУстановлен/etc/restart.exe).
  • Откройте в браузере ссылку — http://bot.local/setup.php

Большинство настроек будет вам понятно. Наиболее сложными для понимания являются настройки секции «тайминг». Если так — читаем дальше :)

Параметры тайминга для локальной установки бота.

Для начала почитайте описание на странице установки и потом сделайте то, что я расскажу далее.

  • Период таймера — для нашего случая (а мы установим режим «методами JS, локально»), задаёт минимальный интервал времени, который остаётся до атаки вашей планеты и когда надо уже взлетать (поставьте 5 мин).
  • Перекрытие по сканированию — специальный интервал времени, чтобы не вести расчеты «в стык». Это чисто технический параметр, он не очень важен для нас, оставьте то значение, которое встало по умолчанию (0.5).
  • Период времени между cканированиями — это тот диапазон времен, когда на нас не ожидается атаки, горизонт чист и мы можем иногда поглядывать не литит ли кто то к нам в гости? На сервере с нормальной скоростью установите интервал от 20 до 30 мин. Вообще, лучше оценить минимальное время требуемое противнику для атаки. Т.е. посмотреть от куда и кто может атаковать. Чем больше будет верхний интервал времени сканирования, тем меньше подозрений вы в итоге будет вызывать у администраторов сервера. Потому что в итоге вы будете реже обращаться к серверу.
  • Период времени между сканированиями во время угрозы атаки и возврата флота. Когда вас атакуют, и осталось не так много времени, то частота сканирования требуется иная. Чтобы взлететь почти перед атакой, а вернуться назад почти сразу после атаки. Рекомендуемое время — 5-10 мин.
  • Период не возврата. Это то время, которое флот уже провел в эвакуации, и после которого отмена эвакуации опасна по причине возможного перехвата на возврате. Имеет смысл поставить тоже время что и максимум времени между сканированиями (35 мин).
  • Тип вызова — ставим «методами JS, локально».

Если нянька работает локально — то вы не застрахованы от всех сопутствующих проблем: перебои со связью, электричеством, глюки операционной системы. Просто помните об этом.

Перспективы

Честно говоря, в ogame  я наигрался уже и нашел ещё более увлекательную космическую браузерку — imperion.com. И едва ли я сам продолжу развитие проекта. Но так как проект — open source, то предлагаю всем желающим продолжить его развитие. Я вижу два ключевых момента, требующих доработки:

  • Анализ состава атакующего флота и оценка успешности боя. Этот момент интересен, во-первых, потому что бота станет сложнее отличить от реального игрока, т.к.  игрок не станет поднимать флоты, если угрозы поражения нет, а, во-вторых, если реальной угрозы нет, то не нужно будет лишний раз взлетать флоту и тратить ценный дейтерий. Здесь не требуется точного расчета боя. Нужно просто прикинуть — нужно взлетать или нет.
  • Маскировка тайминга. Так как при работе по cron авторизации идут точно по расписанию, то это явно изобличает вас как ботовода. И если администратор хорошо исполняет свои обязанности, то рано или поздно вас заметят и отправят в бан до конца дней ваших. Потому надо подумать над тем, как размыть или замаскировать интервалы авторизации на сервере. Один из путей это сделать подключение непрерывным. Т.е. скрипт не должен завершаться, чтобы сессия подключения не прерывалась. Тогда сократится число самих авторизаций с сервером. Второй подход (а возможно в сочетании  с первым) — это перед запуском скрипта можно выполнять произвольную паузу в пределах времени перекрытия по сканированию (от 0 до 30 сек), тогда логи авторизаций не будут выглядеть так равномерно монотонными.
Написать комментарий

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

Создание ветки на основе существующей в GIT

Июль 30, 2018 г.

Создание новой ветки - это рутинная операция в GIT. Как указать на основе какой существующей ветки нужно создать новую? По умолчанию, за основу будет взята текущая ветка, в которой вы находитесь. Например: [crayon-5ba6aca37121c838860497/] Сначала ...

Читать

Включаем сессии в Wordpress

Апрель 17, 2016 г.

В сессиях удобно хранить что то, связанное с текущей деятельностью пользователя. Оказалось, что в Wordpress сессии не запускаются движком. Стартовать их нужно самостоятельно. Впрочем, запуск сессий где то посреди шаблона не прокатит. Нужно подключить ...

Читать

 

Комментарии к «Робот для Ogame, третья редакция»

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



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

Много комментариев в “Робот для Ogame, третья редакция”

  1. Judge:

    Подскажите, попал на проблему как у Михалыча, но так как особо не шарю, то что за модуль я так и не понял. Fatal error: Call to undefined function curl_init() in Z:\home\bot.loc\www\s_http.php on line 41 . Да, еще вчера http://bot.local/setup.php показывал кракозябры, которые я перевел, но сегодня сайт вообще не открывается. Подскажите что сделать))

    • Нужно разрешить использование модуля curl в php. Как это делается — описано в самом начале статьи. (см установка няньки). Сейчас я уже в огу не играю, потому что нашел более интересную браузерку с космической тематикой — imperion.org. Новый сервер был запущен буквально в прошлом месяце. Ну и основного геммора, что есть в Ogeme, там нет — т.е. флоты можно совершенно легально сейвить в специальных ангарах (название постройки зависит от расы). Никакие няньки не нужны.

  2. Judge:

    Видимо что-то я не понимаю. Все делаю как написано, разные версии пробовал. Нашел строчку, удалил ;, перезапустил денвер.. либо страница грузится, но показывает ошибку, либо не открывает совсем. Пробовал уже несколько раз…

  3. Judge:

    Чтобы не создавать непоняток я скрин сделал. http://clip2net.com/s/v47i

    • Ну, хотелось бы конечно что то внятное ответить, но ясно лишь что curl так и не подключен. Скорее всего проблема в том, что установлен усеченный вариант php, который идет прямо вместе с денвер. А там скорее всего кроме библиотеки GD ничего нет. Что можно сделать. Скачать дистриб соответствующего php (нужной версии) и взять нужную dll от туда (более подробно в самой статье описал).

  4. Inferno:

    Подскажите как добавить в список собственные сервера для игры. Т.е. добавить в список не проблема, но в итоге выводит «Не удалось подключиться с указанными реквизитами !». Как сделать чтобы все же можно было залогиниться на другом серваке??

    • Это зависит от того как реализована авторизация на конкретном сервере. Если вы чуть чуть владеете программированием на php, дам вводную, где менять и что.
      В файле cm.php описан класс для извлечения данных из кода ogame. В строках 425-226 производится подключение к одному из серверов, который вы выбрали из списка. Для этого собирается строка URL, куда нужно отправить данные для подключения. Выглядит она так:
      http://'. $this->ud['uniUrl'] . '/game/reg/login2.php
      Вам надо посмотреть какие данные (с какими именами переменных) и куда (url) отправляются в вашем случае. И немного переписать этот кусочек под вас.

  5. Inferno:

    там на главной странице стоит флэшка. Скачав ее и декомпилировав начал капаться в экшен-скриптах. Вот что я нашел
    btnKey.onPress = function ()
    {
    m_name = UName;
    m_pass = UPass;
    mm._visible = false;
    btnKey._visible = false;
    btnSave._visible = false;
    var result_lv = new LoadVars();
    var _loc2 = new LoadVars();
    _loc2.username = m_name;
    _loc2.password = m_pass;
    trace (m_name);
    trace (m_pass);
    _loc2.totalBytes = _root.getBytesTotal();
    _loc2.Uni = «ogame.by»;
    _loc2.sendAndLoad(«/?p=login», result_lv, «POST»);
    result_lv.onLoad = function (success)
    {
    if (success)
    {
    if (result_lv.sam == «ok»)
    {
    res = «Вход в систему. Пожалуйста подождите…»;

    Т.е. этот кусок кода отвечает за вход в систему, но я не могу разобраться как мне из этих данных составить 426 строчку cm.php
    Если поможете буду очень благодарен )

    • Мне кажется делают следующее — отправляют запрос типа POST по адресу http://ogame.by/?p=login с двумя параметрами — username и password. На actionScript я давно не писал (с тех пор когда flash был ещё Macromedia Flash), так что могу ошибаться. Попробуйте такой код использовать —
      if ($this->http->get('http://ogame.by')) {
      $this->http->post('http://ogame.by/?p=login', "Uni=ogame.by&username={$this->ud['login']}&password={$this->ud['password']}");

  6. Inferno:

    Не вышло
    trace (m_name);
    trace (m_pass);
    _loc2.totalBytes = _root.getBytesTotal(); — здесь он считает количество байт имени и пароля?? А зачем?? может их тоже надо в POST третьим параметром?? или еще чего…

    • Жаль, что не вышло конечно. Но я ради любопытства зашел посмотреть, что это за Ogame.BY такое. Скажу вам сразу — ньняка работать с этой «версией» не будет. Я так понимаю, что это вообще отдельный клон OGame, созданный энтузиастами-любителями. Нянька написана именно под версию соданную Gameforge Productions GmbH — на сайте ogame.ru.

  7. Денис:

    Кто тестил в какой вселенной работает бот?

  8. Andryusha:

    Постоянно им пользуюсь и вас советую :)

  9. Олег:

    выложите пожалуйста видео с пошаговой инструкцией, как это все делать..

  10. Олег:

    стукните в аську пожалуйста, кто разбирается в этом…
    403177710