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

Материал из Tribalwars Wiki RU
Перейти к навигации
Нет описания правки
Нет описания правки
 
(не показано 48 промежуточных версий этого же участника)
Строка 1: Строка 1:
{| border="1"
= Общая информация =
|
 
|
Для того, чтобы игроки могли создавать свои инструменты для игры мы предоставляем данные миров, которые '''обновляются каждый час'''.
|-
 
|
Чтобы уменьшить нагрузку, мы просим вас скачивать данные не чаще, чем '''один раз в час'''. Программы, скачивающие данные более раза в час в постоянном режиме, запрещены. В этом случае попробуйте сохранять данные на внешнем сервере. Данные обновляются через равные промежутки времени, зависящие от сервера.
|
 
|-
Файлы также доступны в сжатом виде (с суффиксом .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'");
|
}
|
|-
|
|
|-
|
|
|-
|
|
|-
|
|
|-
|
|
|-
|
|
|-
|
|
|-
|
|
|-
|
|
|-

Текущая версия от 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'");

}