Как играть с ботами в агар ио
К ним притягиваемся по обратно квадратичному закону. Кроме того, чтобы бота не зажимали к стенке, добавляем отталкивание от них в перпендирулярних к ним направляниях по тому же закону обратных квадратов. Итого это позволяет убегать от группы врагов поедая попадающуюся по пути еду и сливаться с друзьями образуя более крупную особь. Видео с четырьмя ботами: Код бота без констант - подберите свои значения: На сколько сложным будет добавление возможности делиться пополам, чтобы съесть соперника? Да не очень сложно, правда для этого придётся уже учитывать не только координаты как сейчас, а ещё и скорости. Код там конечно же обфусцирован и всячески пытается не давать себя запускать откуда не следует: Вначале я решил создать локальную копию файлов и соединяться с сервером, отключив в браузере проверку на кроссдомен: Нужен был другой подход. Подменяем файлы по урлу Рабочим решением стала загрузка реального игрового клиента, но подмена для браузера нужных файлов на свои. Для этого устанавливаем замечательную программу Fiddler Web Debugger и указываем нужные пути в табе AutoResponder: Такой подход очевидно требует держать Fiddler запущенным во время игровой сессии. Выручило само API сервера: Вместо нулей надо всего лишь отправлять ботам мои текущие координаты и они сами будут приходить ко мне на ужин! Пишем ботов в текущем окне Код клиента одновременно получает данные и перерисовывает объекты на экране. Достаточно остановить его в любой внутренней функции и мы имеем полный доступ ко внутренним переменным. Так что можно через консоль создать замыкание, вызывающееся по таймеру, и можно творить что угодно. Можно переконнектиться к нужному серверу, зная его IP: Если я не ошибся, то сервер на одном ip содержит много игровых комнат. Потому что я подставляю один и тот же ip для всех ботов. Но ко мне попадает лишь часть. Другие крутятся с другими игроками. В итоге в комнате играет игроков, на сервер может и Тестил со вкладками браузера. Если подключаться довольно быстро, то попадаю в одну комнату, если через некоторое время, то уже кидает в другую. Комнат там действительно довольно много m. Если же решить вопрос с тем, чтобы боты подключались на нужную карту, то тогда есть возможность серьезно потеснить своих менее технически-подкованных соперников. Я же своей маленькой цели достиг: Может быть благодаря ботам, может быть мне повезло самому. Достижения в глубоком обучении за последний год 4,9k 6. Комментарии 35 Reeze Мне единственному кажется, что в этой игре нельзя выиграть благодаря какому-то плану. Рост в размерах происходит только благодаря великому рандому и он глобально не зависит от твоих действий. Пример для GM или аналогов — pastebin. К сожалению работает не для всех браузеров. В треде на reddit уже всё давно обсудили, и даже разработчик ответил: Я пошел по другому пути. Ботов не стал делать, а расковырял оригинальную js и сделал пачку улучшений код на githab. Ага про поля как доберусь, сделаю. Я пошёл дальше и вообще исключил игрока оставив лишь ботов, которые кооперируются для выживания. Свой код я инъектирую с помощью отладчика. В любом случае, деление — довольно рискованная операция, так как нельзя управлять каждой своей частью независимо. Я допускаю, что данное решение может привести в лидерству с куда большей вероятностью, чем это можно сделать самому. Однако люди всё ещё могут хитростью зажать нашего бота в тиски или порвать его простреливая через вирус. Чтобы отреспауниться, достаточно вызвать функцию setNick string. Я её вызываю просто всегда при вызове моего замыкания. Выводы Авторам игры удалось создать замечательный сетевой код, который не ломается от банального хакинга. Однако игра не защищена от ботоводства и немного разобравшись в коде клиента, можно создать себе небольшое техническое преимущество перед остальными. Таким образом можно делать ловушки для близких к растению соперников, разбивая их на части прилетевшим к ним новым растением. Поделюсь своей наработкой немного деобфусцированного скипта, правда, одной из предыдущих версий, gist. Но самый главный вопрос возникающий при борьбе за бОльшее количество своих ботов в комнате — А смысл сего действа? В контексте того, что если вы наводните комнату ботами, которые вас накормят до первого места, то места для реальных игроков не останется. В итоге вы первый среди ботов. Нет конкуренции, нет куража, нет азарта и веселья от ников игроков. А смысл тогда играть то? И находят меня на карте! Однако, все не так радужно. Во-первых, сервер раскидывает игроков по игровым комнатам. Поэтому со мной на карту из 50 ботов попадают Во-вторых, ботов может съесть кто-то другой! Поэтому им удается придти ко мне где-то пару раз в минуту. И, наконец, в-третьих, боты маленькие. Идя ко мне, они не набирают особой массы. Поэтому, с определенного этапа, их вклад в мою победу становится минимальным. Можно подкрадываться и съедать конкурентов делением. Можно кидать приманки, можно растить зеленые растения, чтобы они делились и разрывали бОльшего конкурента на части… Шахматы прям: На самом деле, успех в игре зависит прежде всего от умений игрока, а уже потом от удачи. Для того, чтобы стабильно выбиваться в лидеры нежно освоить несколько приемов: С помощью клавиши W можно кидать массу в зеленое растение — от этого оно распухает и в какой-то момент делится. Пытаемся обмануть сервер Хочу похвалить авторов игры — на сервер не отправляется ничего такого, что можно было бы поменять в свою пользу например: Клиент шлет лишь координаты мыши, куда бы он хотел передвинуть свою клетку и сообщает о желаемых действиях например: Например, когда я увеличил масштаб игровой карты, то сервер все равно присылал лишь то окно объектов, которое я должен был видеть в рамках своей клетки: Казалось бы все пути закрыты: Но тогда можно обмануть сервер в рамках его правил: Но как же ботам находить мою клетку на карте? От них отталкиваемся по обратно квадратичному закону. Друзья — дружеские боты, действующие всоседних вкладках. Их определяем по префиксу в имени. К ним притягиваемся с константной силой. Это позволяет им находить друг друга даже если отреспаунились в разных конца карты. Враги — клетки, которые больше максимального размера, что мы можем съесть. От них отталкиваемся как отвирусов, но с другим коэффициентом. Еда — все остальные клетки, существенно меньше нашей. Этого уже достаточно для игры. Потом дёргаем onmousemove, чтобы сообщить движку в какую сторону мы хотим ускориться. Все чужие клетки делятся на следующие группы: Вирусы — зелёные пассивные клетки, которые могут взрывать остальных. У них стоит флаг isVirus. Можно было бы открыть 20 табов, управляемых ботами и один мой игровой таб. Но тогда надо было бы как-то передавать мои координаты в соседние табы. Плюс рисование каждого таба тормозило бы весь браузер я пробовал — так и есть. Поэтому было решено создавать новые игровые сессии прямо в текущем табе, но выключить для них связь с отображением: Результаты работы Боты создаются. Только полноправные пользователи могут оставлять комментарии. В очередной раз проиграв в ней более везучему сопернику, я тихо выругался про себя и решил как-то взломать эту игрушку, чтобы получить наконец в ней преимущество! В итоге мне удалось создать себе отряд игровых ботов, которые стремятся найти меня на карте, чтобы влиться в мою игровую клетку. Влезаем в клиент игры Сначала надо было понять, как все работает. Игра написана на javascript и общается с игровым сервером через веб-сокет.
Отзывы на Как играть с ботами в агар ио
gaikirikokayo пишет:
Общие -> История просмотра -> Удалить -> Временные.
deulletlo пишет:
Для чего и для кого его брауну в его научных 1) Заходим на один из БД сайтов.
|