Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  
Sign in to follow this  
bLuma

Vytváření HQ map zón z klienta WoW a _princip_ zobrazení hráčů/spawnů na těchto mapách

Recommended Posts

Cílem je vytvořit takovouto mapu, jakou je možno vidět ve hře: (ale bez všech ostatních dekorací)

searinggorgefulloy3.th.png swampofsorrowshg5.th.png

 

== WIKI verze návodu ==

 

Požadavky:

  • Wowklient
    • Extrakce BLP textur
    • Extrakce DBC souborů (WorldMapArea.dbc a WorldMapOverlay.dbc)
  • PHP (www.php.net), knihovna GD2
  • troška pochopení a znalost programování / matematiky
Vše potřebné (kromě PHP) je ke stažení v tomto balíčku: balicek.zip

 

Obsah balíčku

složka extract:

extractMapsGB.bat - extrahuje mapy a dbc z enGB klienta

extractMapsUS.bat - extrahuje mapy a dbc z enUS klienta

MPQE - extraktor z MPQ souborů (autorem je the WRS)

BLPconverter - převádí wow BLP formát na použitelný PNG

složka php:

dbcreader.php - třída k načtení dbc souborů

loader.php - mezistupeň mezi dbc a vlastním skriptem (zachováno z historických důvodů. dříve jsem parsoval csv, tvořený pomocí DBCutil)

maps.php - vlastní skript na vytvoření map, skript je co nejvíce komentován pro pochopení činnosti

 

Trocha teorie jak to vlastně celé funguje:

- Načtení souboru WorldMapArea.dbc - obsahuje název zóny, její id a wow koordináty (pro danou mapu, lze je použít pro přesné zobrazení npc/hráčů na této HQ mapě)

- Projití všech položek ve WMA

Každá mapa ve wow je složena z 12 fragmentů.

skladanimapy1hb7.th.png

Jedná se o 3 řádky po 4 sloupcích, toto je zachováno u každé mapy. Takto získáme slepou mapu (bez vyplněných detailů jako když je postupně objevujete ve wow)

searinggorgeov5.th.png

V první řadě skript složí v paměti z těchto fragmentů celou mapu. Poté se prochází soubor WorldMapOverlay a hledají se dílčí detailní části této mapy (dle id), jsou zapsány do pole fragmentů a poté samostatně zpracovány.

skladanimapy2ri3.th.png

Jednotlivé detailní části (fragmenty) jsou složitější na zpracování, z dbc je možné vyčíst jeho velikost a umístění na mapě. Vlastní rozdělení do souborů je nutné rozpočítat podle velikosti. Jeden soubor nemá nikdy větší rozměry než 256x256px.

Jednotlivé soubory fragmentů jsou pak takto spracovány a zapsány na příslušné pozice do mapy. Jsou vynechávány tzv. pixelfix fragmenty, které zřejmě opravují neschopnost Bl!zzu udělat tu mapu :P a některé další soubory, které způsobovaly individuální problémy.

 

Struktura použitých dbc souborů:

WorldMapArea.dbc

0 - id mapy

3 - jméno mapy

4 - hodnota Y pro levý horní roh

5 - hodnota Y pro pravý spodní roh

6 - hodnota X pro levý horní roh

7 - hodnota X pro pravý spodní roh

 

WorldMapOverlay.dbc

0 - id mapy

8 - název textury

9 - šířka fragmentu

10 - výška fragmentu

11 - X koordinát na mapě

12 - Y koordinát na mapě

 

Vlastní vytvoření těchto HQ map s nulovou prací:

1) nakopírujte obsah složky "extract" do adresáře DATA ve vašem wowu, a poté otevřete extractMapsGB / extractMapsUS podle jazykové lokalizace vašeho klienta. vyčkejte na dokončení operací až se okno zavře

2) někam na disk nahrajte složku php. do složky worldmap přehrajte všechny soubory, které jsou v adresáři u wow - MPQOUT\Interface\WorldMap\, dbc soubory nahrejte k souboru maps.php

3) otevřete příkazový řádek ve složce, kde se nachází soubor maps.php, zadejte cestu k vašemu souboru php.exe s parametrem maps.php (např: c:\php\php.exe maps.php nebo "c:\program files\xampp\php\php.exe" maps.php)

4) čekejte až skript skončí činnost

5) výsledek je vygenerovaný ve složce out.

 

Bombónek na závěr kdopak dokáže na základě tohoto skriptu vygenerovat mapu "Cosmic" (náhled na oba dostupné světy Azeroth i Outlands) :P v dbc není, automaticky ji to neudělá

 

Zdroje informací bez kterých by to nikdy nezvniklo:

- wowdev wiki - informace o struktuře WorldMapArea a WorldMapOverlay

- MaNGOS zdrojové kódy - informace o tom jak načíst DBC soubor

- WRS - program MPQE, původní dávkový soubor na extrakci a konverzi textur z projektu MaNGOSCMS

- bLumova hlava - všechny ostatní výpočty

 

Někdy v budoucnu možná vydám, jak přepočítat souřadnice wowka na mapu a sám se ještě pokusím vygenerovat mapy dungeonů. kdo ví :P

Návod bude v dohledné době transformován na Wowresource Wiki.

Edited by bLuma
wiki

Share this post


Link to post
Share on other sites

Část druhá - generování HQ minimap textur a zobrazení objektů ze hry na mapách

lochmodanva7.jpgcairnebloodhoofyc2.png

 

Požadavky:

  • Wowklient
    • Extrakce BLP textur
    • Extrakce DBC souborů (optimální)
  • PHP (www.php.net), knihovna GD2
  • MyWarcraftStudio (nebo jiný univerzální extraktor MPQ souborů)
  • troška pochopení a znalost programování / matematiky
Vše potřebné (kromě PHP a MyWarcraftStudio) je ke stažení v tomto balíčku: balicek2.zip

 

Obsah balíčku:

složka extract:

BLPconvertor - konverze BLP na PNG

konverze.bat - dávková konverze BLP souborů

složka php:

minimap.php - vytvoření minimap ze souboru md5translate.trs

jinamapa.php - příklad zobrazení na mapě, připraven princip detekce zóny dle obdelníkových bloků

imagestripper.php - DEPRECATED, see doimg.php

blocksgen.php - načtení "bloků" do db

doimg.php - roztrhání velkých textur na jednotlivé zóny

minispecs.php - předvytvořené pole informací o rozměrech jednotlivých zón, pokud změníte nastavení v souboru doimg.php je nutné toto upravit na základě nového soubor out-minimaps.txt

transports.php - testovací soubor, načítá DBC TaxiPathNode.dbc

pouzevypocet.php - příklad a vysvětlení výpočtu pozice na mapě z WOW souřadnic

konverzejpeg.php - konverze PNG map na JPEG formát

 

Použití:

1) Za pomocí MyWarcraftStudio vyextrahujte následující složky/soubor:

  • common.mpq - složka "textures/Minimap/*.*"
  • patch.mpq - složky "textures/Minimap/*.*" a "Textures/Minimap/*.*" (ano jsou tam dvě s různým počátečním písmenem!)
  • patch-2.mpq - složka "textures/Minimap/md5translate.trs"
  • pokud máte nějaký další patch soubor nebo uvnitř MPQ souboru složku textures/Minimap rovněž je vyextrahujte
2) nakopírujte BLPconvertor a konverze.bat k minimapám ve formátu BLP, zapněte konverzi a vyčkejte (celkem se jedná o cca 17000 souborů, konverze může zabrat i hodinu! průběžně můžete kontrolovat počet zbývajících BLP souborů souborovým manažerem)

3) rozpakujte někam balíček, přehrajte tam soubor md5translate.trs

3) do složky Minimap (u rozpakovaného balíčku) nahrajte zkonvertované textury minimapy (nyní ve formátu PNG)

4) konzolově spusťte soubor minimap.php, některé mapy (Azeroth, Expansion01 a Kalimdor) jsou velmi velké, doporučuji vypnout vše ostatní a nechat tento soubor v klidu proběhnout, špičkové využití RAM paměti se vzhledem k velkým rozměrům textury v truecolor režimu může vyšplhat až na 1GB +-)

5) konzolově spusťte soubor konverzejpeg.php (platí shodné upozornění jako u předchozího souboru)

6) konzolově spusťte soubor doimg.php (optimální krok, po tomto se vygenerují mapy jednotlivých zón)

 

Princip generování minimap textur:

1) Je načten soubor md5translate.trs, který obsahuje informaci o původním názvu souboru a jeho md5 podobně, vše je řazeno pod skupiny.

2) Klasické mapy jsou vytvořeny ze znalosti, že mapa je utvořena mřížkou 64x64 tilů, 1tile v texturách má velikost 256x256px. WMO světy nejsou prozatím implementovány

 

Princip přepočtu wow souřadnic:

Toto zřejmě někteří nepochopíte, využívá se zde analytické geometrie a experimentálních zjištění:)

Budu vycházet z:

prepocetbf8.png

z obrázku vyplívá jednak to, že souřadnicové systémy, na kterém budeme projektovat a ze kterého vycházíme má osy inverzní a ještě prohozené (x,y <=> y,x). Na obrázku jsou naznačeny nám známé body, levý horní roh má své wow souřadnice X0,Y0 a v projektovém světě je to počátek tedy 0,0. Koncový pravý dolní bod je rovněž znám. Dále známe souřadnice zobrazovaného bodu Xx,Yx, ale neznáme souřadnice v druhé soustavě a,b. Využil jsem dvou vektorů z počátku a z konce, které si jsou v obou souřadnicových systémech geometricky podobné.

 

z vektoru Va vyplívá (sorry chybí mě tu čárka nad rovnicí, ale tohle fórum vzorečky nebere a já sem línej)

Va = XxX0 = X0 - Xx

ale také pro druhý souřadnicový sytém (je použito b, protože souřadnice jsou inverzní viz vpravo nahoře)

Va = b0 = = 0 - b

 

z vektoru Vb vyplívá

Vb = XxX1 = X1 - Xx

ale také pro druhý souř.s.

Vb = bh = h - b

 

všechny změny ve stejných vektorech jsou navzájem uměrné, pokud se Va zvětší, zmenší se Vb. proto využijeme poměr

Va / Vb = konst.

 

prepocetrovnicehy1.png

 

Praktické použití najdete v souborech jinamapa.php a pouzevypocet.php

 

Zdroje informací bez kterých by to nikdy nezvniklo:

- jsou naprosto stejné jako u minulého tématu

- přepočet wow souřadnic není převzat odjinud, jediné co se shoduje jsou konstanty velikosti světa získané z projektů MaNGOS a Pseuwow

Edited by bLuma
+ obrázek TB
  • Upvote 1

Share this post


Link to post
Share on other sites

Už to můžeš hodit na wiki mělo by to fungovat viz. sekce pro moderátory. Až si toto přečteš klidně to smaž.

Share this post


Link to post
Share on other sites

narazil sem na tenhle clanek a taky ho ted zkousim ale neda mi to :

 

!!POZOR trapna otazka POZOR!!

 

K cemu to slouzi presneji... jsem lama nejak to nechapu je to vlastne jen mapa ktera slouzi k ..... ??

 

tady sem se zasek :D

 

dik za odpoved :)

Share this post


Link to post
Share on other sites

K čemukoliv od toho, že si je vytiskneš až po zahrnutí do lokačního systému. U všech těch map se dá dopočítat přesná pozice a dá se to použít k hledání věcí na webu...

Share this post


Link to post
Share on other sites

K čemukoliv od toho, že si je vytiskneš až po zahrnutí do lokačního systému. U všech těch map se dá dopočítat přesná pozice a dá se to použít k hledání věcí na webu...

 

hmm zajimave to by se mohlo hodi :)

 

a jeste neco mam maly problem s tim minimap.php ....otevrel sem to pres to php.exe v xampp

naskocila tabulka zaclo to pracovat udelalo to kousek ahn quiraj a ahnquirajtemple a pak to

spadlo vzdy kdyz sem to otevrel tak to spadlo hned po tom ahn quiraj temple

 

 

vse sem delal podle navodu.

ten prvni uz mam ty mapy ale ty minimapy ne

Share this post


Link to post
Share on other sites

Bylo to tvořeno kdysi pro patch 2.4.3 +- budeš si to muset projít a zkusit najít chyby nebo změny, které od té doby v souborech wowka nastaly.

Share this post


Link to post
Share on other sites

Bylo to tvořeno kdysi pro patch 2.4.3 +- budeš si to muset projít a zkusit najít chyby nebo změny, které od té doby v souborech wowka nastaly.

 

mam TBC 2.4.3

 

to by melo teda jit ne ??

Share this post


Link to post
Share on other sites

Nejspíše ano, ale nepíšeš chybu proč to spadlo (bude si nejspíše nutné povolit chybové hlášky v php), takže ti neřeknu nic bližšího.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×