DK Mapa
Program slouží k vizualizaci dat poskytovaných provozovateli on-line her "Divoké kmeny" a "Tribal Wars":Verze 0.5 je první samostatně fungující verzí. To znamená, že dokáže sama zpracovat data světů a nevyžaduje spojení se speciálním mapovým serverem "Ghaata Royal Cartographic Service".
Updaty 0.5.1, 0.5.2 a 0.5.3 přináší kromě kosmetických úprav i několik nových funkcí, které si vyžádali uživatelé (viz níže).
1. Screenshot
Jak známo, jeden obrázek vydá za tisíc slov:
2. Historie verzí
- v0.1 - jednoduchý generátor mapy kmene v Perlu s raw výstupem
- v0.2 - jednoduchý generátor XML dat v Perlu pro flashovou aplikaci "DYI Map"
- v0.3 - generátor obrázku mapy v jazyce C spojený se sadou scriptů v Perlu
pro generování webové stránky (spojení klikací mapy a onMouseOver)
- v0.4 - první Java verze aplikace, běžící jako applet na stránkach
"Ghaata Royal Cartographic Service", k běhu
vyžaduje SQL backend běžící tamtéž
- v0.5 - (18.2.2008) - první samostatně fungující verze
- v0.5.1 - (27.2.2008) - oproti verzi 0.5 byly provedeny tyto úpravy:
- souřadnice se nyní ukazují stále, kvůli tomu byly přesunuty a ukazují
se jako první položka výpisu informací
- barevně označené vesnice jsou již také vidět na zmenšené mapě světa,
v souvislosti s tím se změnila barva čtverce označujícího výřez na bílou
- zmenšená mapa světa nyní reaguje na pouhé stisknutí tlačítka myši a je
možné tažení
- začíná se teď nad středem mapy, ne nad mou vesnicí :-)
- tag kmene pro žlutou barvu již není předvyplněn
- doplněny scripty pro Svět 4
- souřadnice se nyní ukazují stále, kvůli tomu byly přesunuty a ukazují
se jako první položka výpisu informací
- v0.5.2 - (7.3.2008) - oproti verzi 0.5.1 byly provedeny tyto úpravy:
- nyní je možné označovat barvami nejen kmeny, ale i jednotlivé hráče
- jednotlivou barvou je možné označit více kmenů nebo hráčů
- v položce "Kmen:" se nyní ukazuje i tag kmene (oddělený pipe, tedy Kmen: tag | jméno kmene)
- aplikace si nyní mezi spouštěními pamatuje vyplněné položky a to pro každý svět samostatně
- bylo odstraněno vyhledávání podle ID (používal to snad někdo?)
- nyní je možné označovat barvami nejen kmeny, ale i jednotlivé hráče
- v0.5.3 - (10.3.2008) - oproti verzi 0.5.2 byly provedeny tyto úpravy:
- bylo znovu přidáno vyhledávání kmenů podle ID (ejhle, on to vážně někdo používá!)
- bylo znovu přidáno vyhledávání kmenů podle ID (ejhle, on to vážně někdo používá!)
- v0.5.3a - (10.3.2008) - oproti verzi 0.5.3 byly provedeny tyto úpravy:
- Program DKMapaUpdate byl aktualizován na verzi 0.2.1. Tato verze umí obejít chyby
zanesené do databáze Světa 2 provozovateli serveru divokekmeny.cz. DKMapa je beze změny.
- Program DKMapaUpdate byl aktualizován na verzi 0.2.1. Tato verze umí obejít chyby
zanesené do databáze Světa 2 provozovateli serveru divokekmeny.cz. DKMapa je beze změny.
3. Požadavky na systém
Program je napsán v jazyce Java, proto musíte mít v počítači nainstalovánu aktuální verzi JRE (Java Runtime Environment), kterou si můžete stáhnout například zde: http://java.com/en/download/index.jsp.Ač při programování nepoužívám nejnovější výdobytky jazyka, kompiluji pod Sun JDK 1.6.0, což znamená, že program zřejmě vyžaduje JRE stejné verze (zatím jsem neměl příležitost ověřit).
4. Download
DKMapa-0.5.3a.zip(Předchozí verze: DKMapa-0.5.zip, DKMapa-0.5.1.zip, DKMapa-0.5.2.zip DKMapa-0.5.3.zip)
5. Jak na to
a) Aktualizace dat
K aktualizaci dat se používá program "DKMapaUpdate.jar". Můžete jej spustit manuálně příkazem:java -jar DKMapaUpdate.jar <adresa_serveru>
tedy například pro český "Svět 1":
java -jar DKMapaUpdate.jar cs1.divokekmeny.cz
Pro zjednodušení jsou pro české uživatele Světů 1, 2, 3 a 4 připraveny scripty, jejichž jméno začíná "update-Svet...". Jsou k dispozici scripty pro Windows a Unix (Linux). Aktualizace se pak zahájí prostým spuštěním příslušného souboru se scriptem.
Poznámky:
- Provozovatelé serveru mají v provozních podmínkách uvedeno, že stahování
aktuálních dat je povoleno maximálně jedenkrát za hodinu. Protože i hodinové
aktualizace jsou zbytečně časté, aplikace odmítne provést aktualizaci dat
z příslušného serveru, pokud od předchozí aktualizace neuběhlo více než osm
hodin.
- Protože data jsou na straně provozovatelů exportována z živé databáze, není
zaručena jejich stoprocentní konzistence. I když se snažím tyto inkonzistence
předvídat a vyhnout se problémům z nich plynoucím, může se občas stát, že
nastane situace, se kterou nepočítám a aktualizace se korektně neprovede.
Pak nezbýva než počkat až provozovatel vytvoří nové soubory s daty. Typická
chybová hláška v tomto případě vypadá asi takto:
java.lang.ArrayIndexOutOfBoundsException: 338896 at DKMapaUpdate.doVillages(DKMapaUpdate.java:188) at DKMapaUpdate.doUpdate(DKMapaUpdate.java:56) at DKMapaUpdate.<init>(DKMapaUpdate.java:29) at DKMapaUpdate.main(DKMapaUpdate.java:211)V další řadě programu bude tento problém odstraněn.
b) Prohlížení
Po úspěšné aktualizaci si již můžete prohlížet vlastní mapu. K prohlížení se používá program "DKMapa.jar". Můžete jej spustit manuálně příkazem:java -jar DKMapa.jar <adresa_serveru>
tedy například pro český "Svět 1":
java -jar DKMapa.jar cs1.divokekmeny.cz
Pro zjednodušení jsou opět připraveny scripty, tentokrát se jmény "view-Svet...".
Po úspěšném spuštění programu se objeví okno. Několik sekund se importují dříve aktualizovaná data o vesnicích a pak se zobrazí mapa.
Vlevo dole je zobrazena zmenšená mapa celého světa, bílý čtverec v ní ukazuje, na jaký výřez mapy se právě díváte. Vlastní výřez/mapa je v pravé části okna. Podklad mapy je zelený, na něm jsou šedě zobrazeny opuštěné vesnice a hnědě aktivní vesnice. Přejetím myši nad aktivní vesnici se o ní vlevo zobrazí dostupné informace.
Pohyb po mapě je možný více způsoby. Stiskem tlačítka myši na zmenšené mapě světa, stiskem a následným tažením tamtéž a nebo stiskem a tažením myši ve výřezu.
Důležitou funkcí programu je zvýrazňování vesnic. V každém barevném poli je možné přepínačem (K/H) určit, zda text zadaný v textovém okénku vedle něj je tag (nebo ID) kmene a nebo jméno hráče. Do okénka je možné zapsat i více kráčů nebo kmenů (ne však kombinace obojího) oddělených středníkem (bez mezery!). Po stisknutí "Označit" budou vesnice zobrazeny příslušnou barvou.
Pár tipů pro označování:
- Interní postup označování je shora dolů ve smyslu barev (tedy žlutá, azur,
purpur a nakonec modrá), přičemž následující výběr vždy přebarví i dříve
jinak obarvené vesnice (proto se také může stát, že program napíše, že
obarvil čtyři vesnice žlutí, leč obarvené nejsou žádné - některá z následujících
barev je přebarvila). Pokud tedy například chcete obarvit vesnice svého
kmene jednou barvou a své vlastní vesnice jinou barvou, musíte k jedné
z barev uvést kmen a k některé z následujících barev hráče, nikoliv naopak.
- Místo tagu kmene lze při vyhledávání zadávat ID. Hlavní výhodou je to, že ID
zůstává stejné i pokud dojde ke změně tagu/názvu kmene. Také se tak lze
vyhnout zadávaní některých problematických znaků z klávesnice.
ID se dá zjistit například tak, že na stránkach hry klepnete na "Žebříček" a najedete myší na požadovaný tag kmene. Dole ve stavovém řádku se vám pak objeví dlouhý odkaz končící například "...info_ally&id=4156". ID je číslo uvedené za "id=", v tomto případě 4156.
- Pokud v soupisu kmenů uvedete jako poslední znak středník a nebo vyplníte
pouze středník, označí se příslušnou barvou i všechny vesnice, které
nepatří do žádného kmene. Původně jsem to považoval za chybu, ale nechal
jsem ji tam, může se to hodit.
6. Chyby
O drobných nedostatcích v návrhu, daných přepisem z Java Appletu, vím.Chyby tam určitě také jsou, jen o nich zatím třeba nevím, pište tedy, když na nějakou narazíte.
7. Licence
Tento program je freeware s jedinou výjimkou. Pokud uživatel programu zaútočí na hráče "Settler", ztrácí právo tento program používat. ;-)8. Motto
Víc mě baví toto programovat, než Divoké kmeny hrát, aneb chtěl jsem se naučit Javu.9. Kontakt
O programu, jeho nedostatcích, chybách a požadavcích na další funkcionalitu se živě diskutuje zde: http://forum.divokekmeny.cz/showthread.php?t=1757Pro přímý kontakt v souvislosti s tímto programem použijte prosím mail jirkas72 (zavináč) centrum (tečka) cz.

created: February 18, 2008, last modification: March 10, 2008





