Данные миров (API игры): различия между версиями

Материал из Tribalwars Wiki RU
Перейти к навигации
Нет описания правки
Нет описания правки
 
(не показана 31 промежуточная версия этого же участника)
Строка 1: Строка 1:
= Общая информация =
= Общая информация =


Для того, чтобы игроки могли создавать свои инструменты для игры мы предоставляем регулярно обновляемые данные миров.
Для того, чтобы игроки могли создавать свои инструменты для игры мы предоставляем данные миров, которые '''обновляются каждый час'''.


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


Файлы также доступны в сжатом виде (с суффиксом .txt.gz). По возможности, используйте эти файлы.
Файлы также доступны в сжатом виде (с суффиксом .txt.gz). По возможности, используйте эти файлы.


Всего для скачивание предоставлено 5 файлов. Каждый состоит из произвольного числа строк, содержащих данные через запятую. Каждый элемент данных закодирован с помощью функции PHP urlencode(), что в частности, означает, что запятая представлена как %2C.
Каждый файл состоит из произвольного числа строк, содержащих данные через запятую. Каждый элемент данных закодирован с помощью функции PHP urlencode(), что в частности, означает, что запятая представлена как '''%2C'''.




'''/map/village.txt - /map/village.txt.gz'''
'''/map/village.txt'''
'''/map/village.txt.gz'''


В этом файле находится информация о деревнях. Данные представлены в следующем порядке:
В этом файле находится информация о деревнях. Данные представлены в следующем порядке:
Строка 17: Строка 18:




'''/map/player.txt - /map/player.txt.gz'''
'''/map/player.txt'''
'''/map/player.txt.gz'''


В этом файле находится информация об игроках. Данные представлены в следующем порядке:
В этом файле находится информация об игроках. Данные представлены в следующем порядке:
Строка 24: Строка 26:




'''/map/ally.txt - /map/ally.txt.gz'''
'''/map/ally.txt'''
'''/map/ally.txt.gz'''


В этом файле находится информация о племенах. Данные представлены в следующем порядке:
В этом файле находится информация о племенах. Данные представлены в следующем порядке:
Строка 31: Строка 34:




'''/map/conquer.txt - /map/conquer.txt.gz'''
'''/map/conquer.txt'''
'''/map/conquer.txt.gz'''


В этом файле хранится информация обо всех переходах власти с сотворения мира. Данные представлены в следующем порядке:
В этом файле хранится информация о всех захватах со старта мира. Данные представлены в следующем порядке:


''$village_id, $unix_timestamp, $new_owner, $old_owner''
''$village_id, $unix_timestamp, $new_owner, $old_owner''
Строка 40: Строка 44:
'''/interface.php?func=get_conquer&since=unix_timestamp'''
'''/interface.php?func=get_conquer&since=unix_timestamp'''


С помощью этой функции можно получить информацию обо всех сменах власти с указанного момента, представленного в виде unix timestamp. Момент не может быть более, чем 24 часа назад. Данные представлены в следующем порядке:
С помощью этой функции можно получить информацию о всех захватах с момента, указанного в виде unix timestamp. Дата не может быть старше, чем 24 часа назад. Данные представлены в следующем порядке:


''$village_id, $unix_timestamp, $new_owner, $old_owner''
''$village_id, $unix_timestamp, $new_owner, $old_owner''




'''/map/profile.txt - /map/profile.txt.gz'''
'''/map/kill_att.txt'''


В этом файле представлены данные профилей игроков в следующем порядке:
'''/map/kill_def.txt'''


''$player_id, Geburtstag, Geschlecht, Wohnort, Profiltext (als XHTML), Profilbild-Dateiname''
'''/map/kill_sup.txt'''
 
'''/map/kill_all.txt'''
В этих файлах представлена информация об '''очках'''поверженных противников (в атаке, в обороне, в подкреплении, все). Структура данных:
''$rank, $id, $kills''




Строка 55: Строка 63:


С помощью этой функции можно получить конфигурацию мира в формате XML.
С помощью этой функции можно получить конфигурацию мира в формате XML.
'''/interface.php?func=get_unit_info'''
С помощью этой функции можно получить информацию о войсках в формате XML.
'''/interface.php?func=get_building_info'''
С помощью этой функции можно получить информацию о постройках в формате XML.


----
----


Простейший пример на PHP, сохраняющий деревни и имена первого мира в базу данных MySQL:
Простейший пример на PHP, сохраняющий деревни и имена первого мира в базу данных MySQL:


$lines = gzfile(http://ds1.die-staemme.de/map/village.txt.gz);
$lines = gzfile(http://ds1.die-staemme.de/map/village.txt.gz);
if(!is_array($lines)) die("Невозможно открыть файл");
if(!is_array($lines)) die("Невозможно открыть файл");
foreach($lines as $line) {
foreach($lines as $line) {
list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line);
$name = urldecode($name);


$name = addslashes($name);
:list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line);
mysql_query("INSERT INTO village SET id='$id', name='$name', x='$x', y='$y',
 
player='$player', points='$points', rank='$rank'");
:$name = urldecode($name);
}
 
:$name = addslashes($name);




== Данные мира 1 ==
:mysql_query("INSERT INTO village SET id='$id', name='$name', x='$x', y='$y', player='$player', points='$points', rank='$rank'");
}

Текущая версия от 09:40, 8 апреля 2020

Общая информация

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

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

Файлы также доступны в сжатом виде (с суффиксом .txt.gz). По возможности, используйте эти файлы.

Каждый файл состоит из произвольного числа строк, содержащих данные через запятую. Каждый элемент данных закодирован с помощью функции PHP urlencode(), что в частности, означает, что запятая представлена как %2C.


/map/village.txt /map/village.txt.gz

В этом файле находится информация о деревнях. Данные представлены в следующем порядке:

$id, $name, $x, $y, $player, $points, $rank


/map/player.txt /map/player.txt.gz

В этом файле находится информация об игроках. Данные представлены в следующем порядке:

$id, $name, $ally, $villages, $points, $rank


/map/ally.txt /map/ally.txt.gz

В этом файле находится информация о племенах. Данные представлены в следующем порядке:

$id, $name, $tag, $members, $villages, $points, $all_points, $rank


/map/conquer.txt /map/conquer.txt.gz

В этом файле хранится информация о всех захватах со старта мира. Данные представлены в следующем порядке:

$village_id, $unix_timestamp, $new_owner, $old_owner


/interface.php?func=get_conquer&since=unix_timestamp

С помощью этой функции можно получить информацию о всех захватах с момента, указанного в виде unix timestamp. Дата не может быть старше, чем 24 часа назад. Данные представлены в следующем порядке:

$village_id, $unix_timestamp, $new_owner, $old_owner


/map/kill_att.txt

/map/kill_def.txt

/map/kill_sup.txt

/map/kill_all.txt В этих файлах представлена информация об очкахповерженных противников (в атаке, в обороне, в подкреплении, все). Структура данных: $rank, $id, $kills


/interface.php?func=get_config

С помощью этой функции можно получить конфигурацию мира в формате XML.

/interface.php?func=get_unit_info С помощью этой функции можно получить информацию о войсках в формате XML.

/interface.php?func=get_building_info С помощью этой функции можно получить информацию о постройках в формате XML.



Простейший пример на PHP, сохраняющий деревни и имена первого мира в базу данных MySQL:


$lines = gzfile(http://ds1.die-staemme.de/map/village.txt.gz);

if(!is_array($lines)) die("Невозможно открыть файл");

foreach($lines as $line) {

list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line);
$name = urldecode($name);
$name = addslashes($name);


mysql_query("INSERT INTO village SET id='$id', name='$name', x='$x', y='$y', player='$player', points='$points', rank='$rank'");

}