Veřejně dostupná data: Porovnání verzí

Z Tribalwars Wiki CZ
Jump to navigation
Bez shrnutí editace
(Není zobrazeno 11 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
=Konfigurace světa=


Každý svět má svá nastavení - jako jsou např. rychlosti jednotek, rychlosti obchodníků, omezení typu jednotek a podobně. Aby mohly externí programy plnohodnotně pracovat s ostatními veřejnými daty, poskytují Divoké Kmeny "výcuc" z jejich konfigurace a dávají některé informace o nastavení veřejně k dispozici.
= Veřejně dostupná data =


Konfiguraci lze získat ve formátu XML a je k nalezení na URL adrese světa přidáním cesty '''"/interface.php?func=get_config"'''. Tedy například, pro 1. zdejší svět platí kompletní adresa <br>
Firma InnoGames dává pro Divoké Kmeny (Tribal Wars) k dipozici veřejně dostupná data. Data využitelná pro statistiky, mapy či jiné uživatelské programy.


<center>'''http://cs1.divokekmeny.cz/interface.php?func=get_config'''.</center><br><br>
'''Nabízené informace řadím do třech kategorií:'''


==Seznamy světů a jejich konfigurace==
'''1)''' Obecná data: takřka neměnná, společná pro všechny servery (země) nebo alespoň společná pro daný server.


[[Soubor:Cz.gif]] [http://www.divokekmeny.cz/]([http://cz.twstats.com/ TW Stats])<br>
'''2)''' Data konfigurační: individuální pro každý svět, ale v čase takřka neměnná.


[http://cs1.divokekmeny.cz/interface.php?func=get_config cs1] [http://cs2.divokekmeny.cz/interface.php?func=get_config cs2] [http://cs3.divokekmeny.cz/interface.php?func=get_config cs3] [http://cs4.divokekmeny.cz/interface.php?func=get_config cs4] [http://cs5.divokekmeny.cz/interface.php?func=get_config cs5] [http://cs6.divokekmeny.cz/interface.php?func=get_config cs6] [http://cs7.divokekmeny.cz/interface.php?func=get_config cs7] [http://cs8.divokekmeny.cz/interface.php?func=get_config cs8] [http://cs9.divokekmeny.cz/interface.php?func=get_config cs9] [http://cs10.divokekmeny.cz/interface.php?func=get_config cs10] [http://cs11.divokekmeny.cz/interface.php?func=get_config cs11] [http://cs12.divokekmeny.cz/interface.php?func=get_config cs12] [http://cs13.divokekmeny.cz/interface.php?func=get_config cs13] [http://cs14.divokekmeny.cz/interface.php?func=get_config cs14] [http://cs15.divokekmeny.cz/interface.php?func=get_config cs15] [http://cs16.divokekmeny.cz/interface.php?func=get_config cs16] [http://cs17.divokekmeny.cz/interface.php?func=get_config cs17] [http://cs18.divokekmeny.cz/interface.php?func=get_config cs18] [http://cs19.divokekmeny.cz/interface.php?func=get_config cs19] [http://cs20.divokekmeny.cz/interface.php?func=get_config cs20]
'''3''') Data proměnná: individuální pro každý svět a proměnná v čase.
[http://cs21.divokekmeny.cz/interface.php?func=get_config cs21]
[http://cs22.divokekmeny.cz/interface.php?func=get_config cs22]
[http://cs23.divokekmeny.cz/interface.php?func=get_config cs23]
[http://cs24.divokekmeny.cz/interface.php?func=get_config cs24]
[http://cs25.divokekmeny.cz/interface.php?func=get_config cs25]
[http://cs26.divokekmeny.cz/interface.php?func=get_config cs26]
[http://cs27.divokekmeny.cz/interface.php?func=get_config cs27]
[http://cs28.divokekmeny.cz/interface.php?func=get_config cs28]
[http://cs29.divokekmeny.cz/interface.php?func=get_config cs29]
[http://css1.divokekmeny.cz/interface.php?func=get_config css1]
[http://csp1.divokekmeny.cz/interface.php?func=get_config csp1]


XML soubor konfigurace má "větve" - oddíly (přesněji elementy). Níže se budu věnovat jednotlivým pod-oddílům a pokusím se popsat mně známá nastavení.


==Elementy==
== Obecná data ==


config->'''speed'''
Společná pro mnoho světů či serverů. (Prakticky) neměnná.


- základní rychlost světa<br>
'''1. Podklad mapy'''
- standardní hodnota: 1<br>
- další obvyklé hodnoty: 2, 1.6 a pro speed světy: 50, 100, 200, 300<br>


Většinou je použita coby násobící (dělící) faktor k další konfiguraci. Přímo ovlivňuje tuším rychlost obchodníků - kdy základní je 6 minut/pole a reálná je základ děleno "speed". '''Tedy, pro rychlost světa 2 je rychlost obchodníku (6:2) = 3 minuty/pole.'''
Na mapě DK se zobrazují i lesy, rybníky, a další krajina. Tento základ je stejný pro všechny servery a světy* - jen vesnice se do ní pro každý každý svět generují náhodně. Zdroj informací (link)


----
<i>* ale přímo ve hře se (v kruhu od centra) na zatím neobsazených vnějších kontinentech místo krajiny zobrazuje jen tráva. Zatím jsem nepřišel na to jak pro daný svět zjistit, kam až je "kruh" včetně krajiny a odkud dál je holá zem.</i>
 
'''Binární data:'''<br>
http://die-staemme.de/stuff/world.dat


config->'''unit_speed'''
- Velikost 1.000.000 bytes (odpovídá mapě 1000*1000)<br>
- Pole uložena sekvenčně, nejprve dle osy X, pak Y, každé bajt odpovídá jednomu poli na mapě (adresa = X + 1000*Y)


- koeficient rychlosti jednotek<br>
'''Každý bajt může nabývat hodnot:'''<br>
- standardní hodnota:1<br>
0-3 Grass (tráva)<br>
- další obvyklé hodnoty: 0.5, 0.625<br>
8-11 Mountain (hory)<br>
12 Sea (moře)<br>
16-31 Forest (les)


Spolu s rychlostí z popisu jednotek a rychlostí světa určuje absolutní rychlost jednotek. Přesný vzorec:<br>
<i>(Ve hře na malé mapě (ta vpravo) se vše co je více než tráva (odpovídající bajt z world.dat má hodnotu větší než 3) zobrazuje tmavší zelenou, 0-3 je světle zelená. Pochopitelně mimo vesnic, které mají vlastní barvy.)</i>
'''absolutní rychlost =''' základní_rychlost_z_popisu_jednotek / (config->speed * config->unit_speed) [v minutách na pole]


----
----


config->'''moral'''
'''2. Seznamy světů daného serveru'''
 
Na každém serveru je možno hrát několik světů. A každý server nabízí pro strojové zpracování seznam všech právě běžících světů (Tedy bez již uzavřených. A včetně speedů - objevujících se a mizících dle toho zda speed právě běží či ne).


- morálka při útoku<br>
Seznam je k nalezení na adrese serveru + cesty "/backend/get_servers.php". Pro Divoké Kmeny je to tedy www.divokekmeny.cz/backend/get_servers.php
- standardní hodnoty: 1, 2<br>
- další známá hodnota: 0<br>


Určuje způsob počítání morálky:<br>
Data jsou v tzv. serializovaném tvaru pro php a je možné využít funkci [http://php.net/manual/en/function.unserialize.php PHP:unserialize]<br><br>
1 - morálka se počítá z poměru bodů hráčů.<br>
PHP kód:
2 - time morale - morálka se počítá dle z poměru bodů hráčů (útočníka a obránce). Navíc se morálka zvyšuje, čím déle hráč na daném světě hraje.<br>
$file = file_get_contents('http://www.die-staemme.de/backend/get_servers.php');
0 - morálka je vypnutá (vždy "jakoby" 100%)<br>
$servers = unserialize($file);<br><br>
Poté je vytvořeno pole ve tvaru '''zkratka_světa => URL_světa'''


----
Praktický příklad použití ([http://cs28.divokekmeny.cz/stat.php link])


config->'''build_queue'''


- stavební fronta<br>
== Konfigurační data ==
- standardní hodnoty: 1<br>


Nevím co to je, odhaduji povolení více staveb ve stavební frontě. Čistě jen spekuluji.
Každý svět má své globální nastavení. Nastavení se může lišit svět od světa, ale jakmile je jednou dáno, tak se dobu trvání světa takřka nemění.<i>(Měnit lze např. po dohodě s hráči, u nás to byla třeba změna dosahu šlechtice na cs1).</i>


Data pro daný svět jsou k nalezení na URL adrese světa (ne obecném serveru země, ale už konkrétního světa), přidáním určité cesty.
----
----


'''Element config->misc''', soupis jeho základních pod-elementů, bez větvení (misc = miscellaneous = různé)


config->'''misc->log_losses'''
'''Základní konfigurační soubor: config'''


- standardní hodnota: 1
Cesta: '''"/interface.php?func=get_config"''' (pro cs1: http://cs1.divokekmeny.cz/interface.php?func=get_config)


Popis v DE: [http://forum.die-staemme.de/showthread.php?69629-XML-Bedeutungen #1], [http://forum.die-staemme.de/showthread.php?53077-get_config-bedeutungen #2].
----
----


config->'''misc->kill_ranking'''
'''Budovy - popis nastavení budov'''


- typ počítání bodů útoku a obrany<br>
Cesta: '''"/interface.php?func=get_building_info"''' (pro cs1: http://cs1.divokekmeny.cz/interface...._building_info)
- standardní hodnoty: 1 (světy otevřené do cca březen 2008), 2 (nové světy od cca březen 2008)<br><br>
----
 
Způsob, jakým se počítají body "poražený protivník"<br>
1 - dle hodnoty selského dvora cizích poražených jednotek<br>
2 - dle speciálních vah pro každý typ poražené jednotky<br>
Více viz téma [http://help.divokekmeny.cz/wiki/Pora%C5%BEen%C3%BD_protivn%C3%ADk Poražený protivník]


----
'''Jednotky - popis nastavení jednotek'''


config->'''misc->tutorial'''
Cesta: '''"/interface.php?func=get_unit_info"''' (pro cs1: http://cs1.divokekmeny.cz/interface....=get_unit_info)


- standardní hodnota: 1<br>
Netuším. Asi, zda je ve hře možné vybrat natavení-nastavení-Tutoriál.<br> Zdroj: Čistá spekulace


Obsahuje např. základní rychlost jednotek - každé jednotky zvlášť. <i><i>(Reálná, absolutní, rychlost se bere z této základní, násobené rychlostí světa a rychlostí jednotek z konfiguračního souboru)</i>
----
----


config->'''misc->millis_arrival'''
V čitelné podobě nabízí zobrazení konfigurace různé externí servery, např. twstats, pro daný server a svět pod odkazem [http://cz.twstats.com/cs1/index.php?page=settings Nastavení světa]. Twplus dává seznam [http://cz1.twplus.org/ výpis vč jednotek a budov].
 
- Jaké je pořadí útoků, pokud dojdou ve stejné sekundě<br>
- standardní hodnota: 1<br>
- další známá hodnota: 0<br>


0 - útok, který byl vyslán první, první dorazí<br>
1 - pořadí útoku je počítáno na milisekundy, takže nezáleží na tom, který útok byl dříve vyslán


----
== Proměnná data světa ==


config->'''misc->command_cancel_time'''
Každý svět jak se vyvíjí, mění se. Přibývají hráči, mění se majitelé vesnic, kmeny a podobně. Pro externí statistiky a mapy dává InnoGames k dispozici "aktuální" stav. Aktuální píši v uvozovkách, protože dle pravidel nelze statistiky stahovat více než 1* za hodinu (přetížil by se server). Navíc by nám to nebylo nic platné. Odzkoušel jsem, že níže zmiňované údaje (až na výjimky) jsou stejně na serveru připraveny jednou za cca dvě hodiny a pak po dobu té hodiny-dvou stahujeme stále stejné hodnoty.


- dokdy lze zrušit příkaz jednotkám [v sekundách]<br>
Všechny soubory jsou ve formátu "comma delimited" - texty oddělené čárkou (zde vždy bez případného uvození), každá řádka ukončená UNIXovým typem konce řádky (tedy jen samotné '\n').
- standardní hodnota: 600 (10 minut)<br>
- další obvyklé hodnoty: (speed světy) 60, 180, ...<br>


Hodnota (v sekundách) dokdy lze zrušit již vydaný povel k útoku či podpoře. Změnit/zrušit již vydaný povel pro stažení podpor nelze.
Všechny soubory používají pro národní a speciální znaky kódování [http://cs.wikipedia.org/wiki/UTF-8 UTF-8]. Některé údaje (typicky názvy) jsou navíc zakódovány pro přímé zobrazení v adresové řádce prohlížeče. Pro srozumitelnější formát nutné použít [http://cz2.php.net/urldecode urldecode] a případně ještě navíc [http://cz2.php.net/html_entity_decode html_entity_decode] (po urldecode).


<i>Opět, adresa dat se získá z URL adresy světa přidáním místní cesty. (Přímé odkazy tentokrát nedávám, některé soubory mají i 4MB zabalené, 12MB v rozbaleném tvaru. Nechci zbytečně zatěžovat server, jak by na .txt klepnul každý BFU co sem zabrousí)</i>
----
----


config->'''misc->trade_cancel_time'''
Informace o vesnicích:<br>  
 
'''-/map/village.txt''' nebo '''-/map/village.txt.gz:'''
- dokdy lze zrušit příkaz na tržišti [v sekundách]<br>
- standardní hodnota: 300 (5 minut)<br>
- další obvyklé hodnoty: (speed světy) 30, 120, ...<br>


Hodnota (v sekundách) dokdy lze zrušit již vydaný povel k odeslání surovin. Změnit/zrušit již vydaný povel pro nákup surovin nelze.
$id, $name, $x, $y, $tribe, $points, $bonus


$id - id vesnice<br>
$name - jméno vesnice /html_entity_decode(urldecode($name)/<br>
$x,$y - souřadnice vesnice na mapě<br>
$tribe - ID hráče, kterému vesnice právě patří (0 pro šedivky)<br>
$points - kolik bodů má vesnice<br>
$bonus- jaký typ bonusu má vesnice<br>
----
----


config->'''misc->free_premium_points'''
Informace o hráčích:<br>
 
'''-/map/tribe.txt''' nebo '''-/map/tribe.txt.gz'''
- prémiový účet na týden zdarma<br>
- standardní hodnota: 500 [bodů]<br>
- další známá hodnota: 0<br>


Po dosažení kolika bodů dostane hráč možnost vybrat si prémiový účet na týden zdarma.<br>
$id, $name, $ally, $villages, $points, $rank
Pro daný svět lze získat týdenní účet zdarma automaticky pouze jednou. Neopakuje se při opětovném překročení dané bodové hranice (např. při "začít znovu")<br>
"0 " pravděpodobně znamená, že prémiový účet na týden zdarma získat nelze


$id - ID hráče<br>
$name - jméno hráče /urldecode($name)/<br>
$ally - ID kmenu, ve kterém hráč právě je (0 bez kmenu)<br>
$villages - počet vesnic hráče<br>
$points - počet bodů hráče<br>
$rank - pořadí hráče v žebříčku hráčů<br>
----
----


config->'''misc->free_premium_points2'''
Informace o kmenech:<br>
 
'''-/map/ally.txt''' nebo '''-/map/ally.txt.gz'''
- prémiový účet na tři dny zdarma<br>
- standardní hodnota: 15000 [bodů]<br>


Po dosažení kolika bodů dostane hráč možnost vybrat si prémiový účet na tři dny zdarma.<br>
$id, $name, $tag, $members, $villages, $points, $all_points, $rank
Pro daný svět lze získat třídenní účet zdarma automaticky pouze jednou. Neopakuje se při opětovném překročení dané bodové hranice.


$id - ID kmenu<br>
$name - jméno kmenu /html_entity_decode(urldecode($name)/<br>
$tag - tag kmenu /html_entity_decode(urldecode($tag)/<br>
$members - počet členů kmenu<br>
$villages - počet vesnic kmenu (součet vesnic všech hráčů kmenu)<br>
$points - součet bodů prvních 40 hráčů kmenu<br>
$all_points - součet bodů všech hráčů kmenu<br>
$rank - pořadí kmenu v žebříčku kmenů (tedy, počítáno dle bodů prvních 40 hráčů)<br>
----
----


Informace o profilech hráčů:<br>
'''-/map/profile.txt''' nebo '''-/map/profile.txt.gz'''


config->'''misc->more_premium'''
$tribe_id, Geburtstag, Geschlecht, Wohnort
 
- některé výhody zdarma<br>
- standardní hodnota: 1<br>
- další známé hodnoty: 0<br>


Pokud je nastavena hodnota 0 je pro všechny hráče k dispozici rozšířená stavební fronta a menu "Poznámky" aniž by museli mít Pú. Při hodnotě 1 musí mít hráč k daným výhodám aktivovaný Pú.
<i>EN/DE nápověda zmiňuje i další data /Profiltext (als XHTML), Profilbild-Dateiname/ ale ta jsem nikdy neviděl, že by byla poskytována.</i>


$tribe_id - ID hráče, jehož profil je zmiňován<br>
Geburtstag - datum narození /ve tvaru YYYY-MM-DD/<br>
Geschlecht - pohlaví /nevyplněno, m, f/<br>
Wohnort - bydliště<br>
----
----


config->'''misc->online_time'''
Informace o bodech poražený protivníky:<br>
v útoku: '''-/map/kill_att.txt''' nebo '''-/map/kill_att.txt.gz'''<br>
v obraně: '''-/map/kill_def.txt''' nebo '''-/map/kill_def.txt.gz'''<br>
celkem: '''-/map/kill_all.txt''' nebo '''-/map/kill_all.txt.gz''' (pouhý součet att+def)<br>


- jak dlouho je hráč považován za on-line<br>
$rank, $tribe_id, $kills
- standardní hodnota: 300 [sekundy]<br>


Podle tohoto nastavení je určováno, jak dlouho je ještě hráč považován za online ... od poslední akce (akce = i jen zobrazení v prohlížeči, ne nutně výkonný čin). Odráží se to v online statusech např. v menu "Přátelé"
$rank - pořadí v žebříčku poražených protivníků (útoku / obrany / celkovém)<br>
$tribe_id - ID hráče, jehož body poražených protivníků řádka popisuje<br>
$kills - počet bodů poražených protivníků<br>
----


----
Informace o zabírání vesnic:<br>
'''-/map/conquer.txt''' nebo '''-/map/conquer.txt.gz'''


config->'''misc->gm_scan'''
Kompletní seznam všech záborů od začátku světa. Pozor, zešednutí vesnice soubor neobsahuje (ale obráceně, zabrání šedivek ano). Stejně tak zde nejsou nové vesnice (když se přihlásí nový hráč do světa). Je to seznam záborů pomocí šlechtice v doslovném výrazu.


- standardní hodnoty: 0.05
$village_id, $unix_timestamp, $new_owner, $old_owner


$village_id - ID vesnice která byla zabrána<br>
$unix_timestamp - čas záboru ve formátu unix timestamp<br>
$new_owner - ID hráče nového vlastníka (vždy různé od 0)<br>
$old_owner - ID starého hráče (0, šlo-li o šedivku)<br>
----
----


config->'''misc->start_christmas_tree'''
A speciální soubor záborů (max. za posledních 24h):<br> '''-/interface.php?func=get_conquer&since=unix_timestamp'''
config->'''misc->end_christmas_tree'''


- Vánoční stromek<br>
Jedná se o soubor ve stejném formátu jako "conquer.txt" a popisuje zábory během poslední doby. Místo unix_timestamp je nutné dosadit reálný čas (ne starší 24h), odkdy chceme zábory zjistit. Dostaneme seznam záborů od unix_timestamp až do současné chvíle.
Čas (ve formátu [http://en.wikipedia.org/wiki/Unix_time Unix time] ), kdy se v grafickém náhledu vesnice objeví (a zmizí) vánoční stromek.


----
Také je to asi jediný případ, kdy se na serveru (asi) sahá přímo do databáze a dostaneme tak údaje opravdu aktuální. Ne zpožděné o hodinu-dvě. <i>Dlužno poznamenat, že v CZ nápovědě není tento odkaz zmiňován a v EN či DE jsem nenašel povolení z něj tahat častěji (než onu povolenou 1* za hodinu) - nevím, zda jde opět o nedotaženost pravidel nebo úmysl - takže častěji jak 1* za hodinu se zvenku o zabrání vesnic stejně nemáme šanci legálně dozvědět.</i>


config->'''misc->online_time_reminder'''


- standardní hodnoty: 0
''Autor: Turgon''

Verze z 28. 8. 2017, 06:19

Veřejně dostupná data

Firma InnoGames dává pro Divoké Kmeny (Tribal Wars) k dipozici veřejně dostupná data. Data využitelná pro statistiky, mapy či jiné uživatelské programy.

Nabízené informace řadím do třech kategorií:

1) Obecná data: takřka neměnná, společná pro všechny servery (země) nebo alespoň společná pro daný server.

2) Data konfigurační: individuální pro každý svět, ale v čase takřka neměnná.

3) Data proměnná: individuální pro každý svět a proměnná v čase.


Obecná data

Společná pro mnoho světů či serverů. (Prakticky) neměnná.

1. Podklad mapy

Na mapě DK se zobrazují i lesy, rybníky, a další krajina. Tento základ je stejný pro všechny servery a světy* - jen vesnice se do ní pro každý každý svět generují náhodně. Zdroj informací (link)

* ale přímo ve hře se (v kruhu od centra) na zatím neobsazených vnějších kontinentech místo krajiny zobrazuje jen tráva. Zatím jsem nepřišel na to jak pro daný svět zjistit, kam až je "kruh" včetně krajiny a odkud dál je holá zem.

Binární data:
http://die-staemme.de/stuff/world.dat

- Velikost 1.000.000 bytes (odpovídá mapě 1000*1000)
- Pole uložena sekvenčně, nejprve dle osy X, pak Y, každé bajt odpovídá jednomu poli na mapě (adresa = X + 1000*Y)

Každý bajt může nabývat hodnot:
0-3 Grass (tráva)
8-11 Mountain (hory)
12 Sea (moře)
16-31 Forest (les)

(Ve hře na malé mapě (ta vpravo) se vše co je více než tráva (odpovídající bajt z world.dat má hodnotu větší než 3) zobrazuje tmavší zelenou, 0-3 je světle zelená. Pochopitelně mimo vesnic, které mají vlastní barvy.)


2. Seznamy světů daného serveru

Na každém serveru je možno hrát několik světů. A každý server nabízí pro strojové zpracování seznam všech právě běžících světů (Tedy bez již uzavřených. A včetně speedů - objevujících se a mizících dle toho zda speed právě běží či ne).

Seznam je k nalezení na adrese serveru + cesty "/backend/get_servers.php". Pro Divoké Kmeny je to tedy www.divokekmeny.cz/backend/get_servers.php

Data jsou v tzv. serializovaném tvaru pro php a je možné využít funkci PHP:unserialize

PHP kód: $file = file_get_contents('http://www.die-staemme.de/backend/get_servers.php'); $servers = unserialize($file);

Poté je vytvořeno pole ve tvaru zkratka_světa => URL_světa

Praktický příklad použití (link)


Konfigurační data

Každý svět má své globální nastavení. Nastavení se může lišit svět od světa, ale jakmile je jednou dáno, tak se dobu trvání světa takřka nemění.(Měnit lze např. po dohodě s hráči, u nás to byla třeba změna dosahu šlechtice na cs1).

Data pro daný svět jsou k nalezení na URL adrese světa (ne obecném serveru země, ale už konkrétního světa), přidáním určité cesty.



Základní konfigurační soubor: config

Cesta: "/interface.php?func=get_config" (pro cs1: http://cs1.divokekmeny.cz/interface.php?func=get_config)

Popis v DE: #1, #2.


Budovy - popis nastavení budov

Cesta: "/interface.php?func=get_building_info" (pro cs1: http://cs1.divokekmeny.cz/interface...._building_info)


Jednotky - popis nastavení jednotek

Cesta: "/interface.php?func=get_unit_info" (pro cs1: http://cs1.divokekmeny.cz/interface....=get_unit_info)


Obsahuje např. základní rychlost jednotek - každé jednotky zvlášť. (Reálná, absolutní, rychlost se bere z této základní, násobené rychlostí světa a rychlostí jednotek z konfiguračního souboru)


V čitelné podobě nabízí zobrazení konfigurace různé externí servery, např. twstats, pro daný server a svět pod odkazem Nastavení světa. Twplus dává seznam výpis vč jednotek a budov.


Proměnná data světa

Každý svět jak se vyvíjí, mění se. Přibývají hráči, mění se majitelé vesnic, kmeny a podobně. Pro externí statistiky a mapy dává InnoGames k dispozici "aktuální" stav. Aktuální píši v uvozovkách, protože dle pravidel nelze statistiky stahovat více než 1* za hodinu (přetížil by se server). Navíc by nám to nebylo nic platné. Odzkoušel jsem, že níže zmiňované údaje (až na výjimky) jsou stejně na serveru připraveny jednou za cca dvě hodiny a pak po dobu té hodiny-dvou stahujeme stále stejné hodnoty.

Všechny soubory jsou ve formátu "comma delimited" - texty oddělené čárkou (zde vždy bez případného uvození), každá řádka ukončená UNIXovým typem konce řádky (tedy jen samotné '\n').

Všechny soubory používají pro národní a speciální znaky kódování UTF-8. Některé údaje (typicky názvy) jsou navíc zakódovány pro přímé zobrazení v adresové řádce prohlížeče. Pro srozumitelnější formát nutné použít urldecode a případně ještě navíc html_entity_decode (po urldecode).

Opět, adresa dat se získá z URL adresy světa přidáním místní cesty. (Přímé odkazy tentokrát nedávám, některé soubory mají i 4MB zabalené, 12MB v rozbaleném tvaru. Nechci zbytečně zatěžovat server, jak by na .txt klepnul každý BFU co sem zabrousí)


Informace o vesnicích:
-/map/village.txt nebo -/map/village.txt.gz:

$id, $name, $x, $y, $tribe, $points, $bonus

$id - id vesnice
$name - jméno vesnice /html_entity_decode(urldecode($name)/
$x,$y - souřadnice vesnice na mapě
$tribe - ID hráče, kterému vesnice právě patří (0 pro šedivky)
$points - kolik bodů má vesnice
$bonus- jaký typ bonusu má vesnice


Informace o hráčích:
-/map/tribe.txt nebo -/map/tribe.txt.gz

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

$id - ID hráče
$name - jméno hráče /urldecode($name)/
$ally - ID kmenu, ve kterém hráč právě je (0 bez kmenu)
$villages - počet vesnic hráče
$points - počet bodů hráče
$rank - pořadí hráče v žebříčku hráčů


Informace o kmenech:
-/map/ally.txt nebo -/map/ally.txt.gz

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

$id - ID kmenu
$name - jméno kmenu /html_entity_decode(urldecode($name)/
$tag - tag kmenu /html_entity_decode(urldecode($tag)/
$members - počet členů kmenu
$villages - počet vesnic kmenu (součet vesnic všech hráčů kmenu)
$points - součet bodů prvních 40 hráčů kmenu
$all_points - součet bodů všech hráčů kmenu
$rank - pořadí kmenu v žebříčku kmenů (tedy, počítáno dle bodů prvních 40 hráčů)


Informace o profilech hráčů:
-/map/profile.txt nebo -/map/profile.txt.gz

$tribe_id, Geburtstag, Geschlecht, Wohnort

EN/DE nápověda zmiňuje i další data /Profiltext (als XHTML), Profilbild-Dateiname/ ale ta jsem nikdy neviděl, že by byla poskytována.

$tribe_id - ID hráče, jehož profil je zmiňován
Geburtstag - datum narození /ve tvaru YYYY-MM-DD/
Geschlecht - pohlaví /nevyplněno, m, f/
Wohnort - bydliště


Informace o bodech poražený protivníky:
v útoku: -/map/kill_att.txt nebo -/map/kill_att.txt.gz
v obraně: -/map/kill_def.txt nebo -/map/kill_def.txt.gz
celkem: -/map/kill_all.txt nebo -/map/kill_all.txt.gz (pouhý součet att+def)

$rank, $tribe_id, $kills

$rank - pořadí v žebříčku poražených protivníků (útoku / obrany / celkovém)
$tribe_id - ID hráče, jehož body poražených protivníků řádka popisuje
$kills - počet bodů poražených protivníků


Informace o zabírání vesnic:
-/map/conquer.txt nebo -/map/conquer.txt.gz

Kompletní seznam všech záborů od začátku světa. Pozor, zešednutí vesnice soubor neobsahuje (ale obráceně, zabrání šedivek ano). Stejně tak zde nejsou nové vesnice (když se přihlásí nový hráč do světa). Je to seznam záborů pomocí šlechtice v doslovném výrazu.

$village_id, $unix_timestamp, $new_owner, $old_owner

$village_id - ID vesnice která byla zabrána
$unix_timestamp - čas záboru ve formátu unix timestamp
$new_owner - ID hráče nového vlastníka (vždy různé od 0)
$old_owner - ID starého hráče (0, šlo-li o šedivku)


A speciální soubor záborů (max. za posledních 24h):
-/interface.php?func=get_conquer&since=unix_timestamp

Jedná se o soubor ve stejném formátu jako "conquer.txt" a popisuje zábory během poslední doby. Místo unix_timestamp je nutné dosadit reálný čas (ne starší 24h), odkdy chceme zábory zjistit. Dostaneme seznam záborů od unix_timestamp až do současné chvíle.

Také je to asi jediný případ, kdy se na serveru (asi) sahá přímo do databáze a dostaneme tak údaje opravdu aktuální. Ne zpožděné o hodinu-dvě. Dlužno poznamenat, že v CZ nápovědě není tento odkaz zmiňován a v EN či DE jsem nenašel povolení z něj tahat častěji (než onu povolenou 1* za hodinu) - nevím, zda jde opět o nedotaženost pravidel nebo úmysl - takže častěji jak 1* za hodinu se zvenku o zabrání vesnic stejně nemáme šanci legálně dozvědět.


Autor: Turgon