Онлайн игра «Эсцилон»
Логин
Пароль
Регистрация
Забыли пароль?

API для племенных сайтов

В данной статье описываются различные API для сервисов племенных сайтов. Если ты не являешь программистом и разработчиком племенного сайта, то данная статья будет тебе безинтересна.

Краткая информация персонажа

Использование полной информации персонажа (https://escilon.ru/info/ник%20перса) во внешних сервисах крайне нежелательно, во-первых, из-за лишней нагрузки на сервер проекта, а, во-вторых, из-за возможных изменений структуры страницы информации, в результате чего ваш парсер инфы сломается. Чтобы избежать всех этих неприятностей, нужно использовать короткую информацию персонажа, расположенную по адресу https://escilon.ru/info_short/?login=ник%20перса. Ник перса в адресе регистронезависим, однако желательно указывать его правильно и urlencoded. По умолчанию формат страницы - дамп php-массива. Если передать в get-параметре ненулевой флаг xml, то форматом вывода будет xml в кодировке windows-1251.

Названия большинства атрибутов песонажа достаточно информативны и мы поясним только некоторые из них:

  • health_fix, mana_fix, tiredness_fix - метки времени, для которых актуальны значения health, mana и tiredness соответственно. Здесь и далее метки времени задаются в формате unix timestamp.
  • in_request - непустое значение означает, что персонаж находится в заявке на бой.
  • actual_at - краткая информация кешируется сервером на 3 минуты. В данном поле хранится метка времени, когда были актуальны данные информации.

Фактически в краткой информации есть все данные о персонаже, кроме эффектов и экипировки. Необходимость считывания этих двух факторов может быть единственным оправданием использования полной инфы скриптами племенного сайта. Если выяснится, что вы неоправданно игнорируете краткую информацию и парсите полную, то IP вашего сервера будет заблокирован, а на племя будет наложено строжайшее взыскание.

Краткий лог боя

Для анализа боя может понадобиться парсить его лог. Чтобы облегчить эту задачу и освободить ваш скрипт от ошибок в случае изменения верстки лога, мы сделали краткую форму лога: https://escilon.ru/fight_log/id_боя/?short=1

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

Hash-ip

Часто возникает задача аутентификации пользователя при его регистрации на племенном сайте. Наиболее ее простые решения (требование прийти на специальную редкопосещаемую локацию или прописать у себя в информации оригинальный код) заставляют пользователя совершать какие-то действия, которые, очевидно, усложняют регистрацию. Мы предлагаем довольно простой метод, основанный на сравнении IP регистрируемого пользователя на сайте и IP персонажа в Эсцилоне. Очевидно, что совпадение этих IP является необходимым условием аутентификации. Будете ли вы считать его достаточным - это уже на вашей совести. Мы считаем, что вполне можно сделать такое допущение, ради значительного упрощения регистрации.

Итак, по адресу https://escilon.ru/getip/?login=ник%20перса можно получить md5-хеш IP-адреса персонажа, если он онлайн. Как и для короткой информации, ник перса в адресе регистронезависим, однако желательно указывать его правильно и urlencoded. Если указанного персонажа нет в базе данных Эсцилона, то будет выдан ответ "Can't find user with nick ник перса", если персонаж оффлайн (т.е. определить его IP невозможно), то будет выдан ответ "User ник перса is offline".

Помимо задач аутентификации пользователя при регистрации, данный сервис можно использовать для быстрого ответа на вопрос "существует ли такой персонаж" и "онлайн ли этот персонаж", ибо запрос hash-ip обрабатывается куда быстрее, чем запрос короткой информации.

Рейтинги

Текстовый файл рейтингов персонажей расположен по адресу https://static.escilon.ru/raitings.txt. В штатном режиме он генерируется один раз в сутки в 5.30 по Москве. Формат файла простой и едва ли нуждается в пояснениях. Единственный совет программистам рейтингов - не парсите данный файл каждый раз при запросе рйтинга на сайте. Наш сервер это не загрузит, а вот ваших пользователей заставит ждать пока ваши скрипты будут раз за разом делать одинаковую работу. Кешируйте результаты парсинга рейтинга и раздавайте его посетителям уже из кеша, это сбережет ресурсы вашего сервера и время ваших пользователей.

Помимо рейтингов персонажей (боевого и нескольких мирных) существует рейтинг пещерного квеста. Файл рейтинга расположен по адресу https://static.escilon.ru/cavequest.txt. Первая строка - это метка времени создания файла и текущая стадия квеста. Стадии квеста: prepare - перерождение лабиринта, quest - квестовый этап, draw - ничья, prewin - этап победы, когда победитель еще не выбрал приз, win - этап победы, когда победитель уже выбрал приз. Подробнее о стадиях квеста и условиях их переключения можно прочитать в описании лабиринта.

Племена

Один раз в сутки в 4 часа утра по Москве генерируется файл со списком всех зарегистрированных племен с различной дополнительной информацией (иконка, ники вождя и младшего вождя, состав племени): https://static.escilon.ru/tribes.txt. Формат файла - дамп php-массива. Еще раз напоминаем, что для получения подробной информации о членах племени (уровень, статус в племени и т.д.) необходимо использовать краткую информацию, но никак не полную.

XML-библиотека

Наш каменный век так богат различными вещами, что процесс заполнения их энциклопедии на племенном сайте (и поддержание ее актуальности) может обернуться солидным расходом времени. Чтобы сберечь ваше время мы сделали xml-форму библиотеки вещей, чтобы ее удобно было парсить для автоматического заполнения племенной энциклопедии. К адресам вида https://face.escilon.ru/stitem_stone.html и https://face.escilon.ru/item_88856523ad40d147a0be164f94e4ca99.html можно добавить get-параметр xml=1 чтобы получить краткую xml-версию списка предметов заданного класса или информацию о конкретном предмете. В настоящее время xml-вариант есть только у энциклопедии вещей. Энциклопедии ресурсов, мазей и животных такого функционала пока не имеют.

История персонажа

Персонажы в каменном веке растут, переходят с уровня на уровень, вступают и покидают племена. Проследить жизнь отдельного персонажа можно через API истории персонажа, вызов осуществляется по адресу https://face.escilon.ru/player_history_api.php?login=ИМЯ_ПЕРСОНАЖА Имя персонажа задается в кодировке UTF-8, например, так. Формат вывода - текст с разделителем "|" между полями и "\r\n" между строками. Первое поле - дата и время события, второе - тип (level - взятие уровней, tribe - события, связанные с племенами) и третье поле - текст события.
© «Эсцилон» 2006-2018
Все права защищены.
Дизайн-студия «АртКласс» — разработка сайтов, графический дизайн, фирменный стиль
Дизайн сайта —
дизайн-студия «АртКласс»