Gladiators API позволяет получить различные игровые данные в удобном для анализа виде.
С помощью Gladiators API вы сможете создавать различные дополнительные сервисы к Миру Гладиаторов: различные информеры, локаторы(поиск персонажей), сможете составлять свои рейтинги и строить диаграммами, конечно если вы – программист или знаете оного.
Получение информации о персонаже
Получение списка последних поединков персонажа
Пример PHP-скрипта для работы с GladiatorsAPI
Если вы хотите получить данные, к которым нет доступа через Gladiators API, напишите нам на: admin@gladiators-ua.com, обсудим :)
Получение информации о персонаже
Для получения информации о персонаже вам необходимо отправить следующий HTTP-запрос:
http://www.gladiators-ua.com/char/?login=Император&robot=1, где Император – логин персонажа, может быть любой, который вам нужен.
В ответе сервер показывает XML-данные, которые можно проанализировать. Почти любой язык программирования предоставляет встроенные функции для анализа XML-данных.
Пример хорошего ответа сервера
<gluser>
<login>Император</login>
<level>20</level>
<clan>Administration</clan>
<post>
<![CDATA[ <b>Глава структуры</b> ]]>
</post>
<align>2</align>
<sex>1</sex>
<udar>260</udar>
<gibkost>240</gibkost>
<logika>240</logika>
<zdorovie>240</zdorovie>
<svoboda>2</svoboda>
<hp>1200</hp>
<maxhp>1200</maxhp>
<exp>501962335</exp>
<battleID>0</battleID>
<victory>81</victory>
<lose>33</lose>
<noone>3</noone>
<name>Император</name>
<country>Украина</country>
<city>Greece</city>
<online>0</online>
</gluser>
Каждый тег представляет собой определенный вид данных.
Что означает каждый из тегов, написано ниже:
<id> – ID-номер персонажа
<login> – логин персонажа в игре
<level> – уровень персонажа
<clan> – клан, в котором находится персонаж
<post> – должность, которую занимает персонаж в клане
<align> – склонность персонажа
<sex> – пол персонажа: 0 – девочка, 1 – мальчик
<udar> – стат «Удар»
<gibkost> – стат «Гибкость»
<logika> – стат «Логика»
<zdorovie> – стат «Здоровье»
<svoboda> – стат «Свобода»
<hp> – текущее HP персонажа
<maxhp> – максимальное HP персонажа
<exp> – количество опыта персонажа
<battleID> – ID-номер поединка, 0 – персонаж не в поединке
<victory> – количество побед
<lose> – количество поражений
<noone> – количество ничьих
<name> – имя персонажа
<country> – страна персонажа
<city> – город персонажа
<online> – статус онлайн: 0 – не в онлайн, 1 – в онлайн.
Пример плохого ответа сервера
404 – означает, что персонаж не найден.
Получение информации о 20 последних боях персонажа
Для получения информации о 20 последних боях персонажа вам необходимо отправить следующий HTTP-запрос:
http://www.gladiators-ua.com/API/?act=get_user_battles_archive&char=1, где в переменную char необходимо поместить ID персонажа (как в данном примере 1, – это ID персонажа «Император») либо его ник.
В ответе сервер показывает XML-данные, которые можно проанализировать. Почти любой язык программирования предоставляет встроенные функции для анализа XML-данных.
Пример хорошего ответа сервера
<archive>
<battle>
<id>366332</id>
<start_time>Mon, 20 Aug 2007 13:38:16 +0200</start_time>
<finish_time>Mon, 20 Aug 2007 13:39:36 +0200</finish_time>
<timeout>10</timeout>
<winner_side>side1</winner_side>
<type>bot</type>
<arm_type>fisticuffs</arm_type>
<where>middle</where>
</battle>
<battle>
<id>360808</id>
<start_time>Tue, 14 Aug 2007 15:46:08 +0200</start_time>
<finish_time>Tue, 14 Aug 2007 15:46:50 +0200</finish_time>
<timeout>10</timeout>
<winner_side>side1</winner_side>
<type>bot</type>
<arm_type>fisticuffs</arm_type>
<where>middle</where>
</battle>
<battle>
<id>351248</id>
<start_time>Fri, 3 Aug 2007 15:49:15 +0200</start_time>
<finish_time>Fri, 3 Aug 2007 15:50:48 +0200</finish_time>
<timeout>3</timeout>
<winner_side>side1</winner_side>
<type>group</type>
<arm_type>arm</arm_type>
<where>street</where>
</battle>
</archive>
Каждый тег представляет собой определенный вид данных.
Что означает каждый из тегов, написано ниже:
<archive> – Глобальный тег, который содержит список 20 последних боев персонажа – <battle>
<battle> – Содержит подробную информацию о бое
<id> – ID-номер поединка
<start_time> – Дата и время начала поединка
<finish_time> – Дата и время окончания поединка
<timeout> – Таймаут поединка в минутах
<winner_side> – Победитель: side1 – первая команда, side2 – вторая команда.
<type> – Тип боя: normal – одиночный, bot – с клоном, group – групповой, mix – смешанный, street – уличный.
<arm_type> – Тип боя: arm – с оружием, fisticuffs – без оружия.
<where> – Место проведения боя: small – Малый зал, middle – Средний зал, big – Большой зал, tournament – Турнирный зал, street – на улице.
Пример плохого ответа сервера
404 – означает, что персонаж не найден.
100 – означает, что не найдено ниодного боя у персонажа.
Скрипт написан на языке PHP и проверяет онлайн состояние персонажа в Мире Гладиаторов.
<?php
/* Скрипт для проверки онлайн-состояния персонажа в игре
* "Мир Гладиаторов" - http://www.gladiators-ua.com
* Разработка: Юрий Борунов ("Мир Гладиаторов"), 20 Июня 2007 года
-----------------------------------------------------------------*/
/* Если скрипту передан логин персонажа
--------------------------------------*/
if(isset($_GET["login"])) {
$_GET["login"] = str_replace(" ","%20",$_GET["login"]);
$file = "http://www.gladiators-ua.com/char/?login=".$_GET["login"]."&robot=1";
$pos = 0;
// Проверка на доступности данных о персонаже в МГ
if (!($fp = fopen($file, "r")))
die("could not open XML input");
// Если XML-данные доступны, то считываем их в $data
while ($getline = fread($fp, 4096))
$data = $data . $getline;
// Разбираем XML-данные
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
for($n = 0; $n < count($vals); ++$n){
$e = $vals[$n];
// Записываем уровень персонажа
if($e["tag"]=="ONLINE")
$online = $e["value"];
// Записываем код ошибки
elseif ($e["tag"]=="ERROR")
$error = $e["value"];
}
// Если персонаж найден
if(isset($error) && $error=="404")
echo "Персонаж не найден!";
elseif(isset($online) && $online==1)
echo "Персонаж сейчас в онлайн!";
else // Иначе
echo "Персонаж сейчас не в игре!";
echo "<br /><br />";
}
echo <<<HTML_DATA
<form action="" method="GET">
Логин персонажа: <input type="text" name="login" />
<input type="submit" value="Искать!" />
</form>
HTML_DATA;
?>