04 - Vytváření a editace MPQ archivů


Description

MPQ archivy nám budou sloužit jako hlavní zdroj dat, se kterými budeme pracovat, i jako úložiště dat, kterými budeme obsah hry upravovat.

MPQ archivy, mnohdy známy jako patche, jsou soubory, ve kterých jsou zabalena téměř všechna data, se kterými herní klient pracuje. V tomto tutoriálu si projdeme, jak se s nimi pracuje, což nám otevře dveře k takřka všem úpravám, které bychom mohli na WoW aplikovat (a které jsou uskutečnitelné). Na začátku 1. části této série návodů najdete detailní přehled, které všechny typy souborů lze v MPQ archivech najít a stručný popis, k čemu slouží.

Potřebné programy

MPQEditor

Potřebné počáteční znalosti

Žádné.

Užívaný editor

Pokud chceme vytvořit nebo upravit MPQ archiv, potřebujeme k tomu MPQ Editor. Jeho nejnovější verze jsou dělané na novější datadisky a hry, tím pádem jej nemohu doporučit používat na naše WotLK soubory. V tutoriálovém balíčku přiloženém k 2. dílu návodů najdete ve složce MPQpatche aplikaci MPQEditor. Jedná se o dosti starou, ale podle mých několika let praxe naprosto spolehlivou verzi bez problémů fungující s WotLK. Je tam také novější verze aplikace, ta však může u WotLK občas trochu blbnout, proto ji moc nedoporučuji (už mi jednou zničila data).

Nyní k samotnému editoru. Funguje jako normální aplikace, které můžete přiřadit, že všechny MPQ soubory budou vždy automaticky otevírány jí (věřte nebo ne, ve WoW moddingu vzácný luxus). Když spustíte MPQ Editor, máte v něm haldu funkcí, většinu jsem v životě nevyužil a pochybuji, že je kdy využijete vy. Podíváme se tedy na to, co byste s ním umět měli a co se vám bude určitě hodit.

Vytváření nového MPQ

Otevření MPQčka rozebírat nemusím, otevírá se jako jakýkoliv jiný soubor jakoukoliv jinou aplikací. Důležité je jak si vytvářet patche vlastní. Následující návod platí pro starší verzi editoru, v novější bude postup obdobný.

  1. Spusťte MPQ Editor.
  2. Dejte New MPQ (ikonka bílého listu vlevo nahoře nebo možnost v menu File).
  3. Vyplňte název. Herní klient akceptuje pouze patche s názvem ve formátu patch-[1 znak ACII tabulky], tedy patch-4 nebo patch-x. Cokoliv jiného vám nejspíše nebude fungovat. WoW Model Viewer však sežere jakékoliv názvy, minimálně jsou-li z ASCII určitě, MPQ Editor samotný také - hra už ne.
  4. Mějte na paměti, že herní klient otevírá patche podle abecedy a to, co je otevřeno jako poslední, má nejvyšší prioritu. Pokud budete tedy chtít svým patchem přepisovat obsah patchů jiných, je třeba volit písmena až za nimi. To koneckonců budete dělat se všemi svými patchi - vždy budete přepisovat ty blizzlike. Nicméně custom patche se přepisují i mezi sebou navzájem. Takže pokud budete mít patch-a a patch-b, s tím že některé soubory budou v obou (nicméně v patch-b budou novější verze), nepřejmenovávejte patch-a na třeba patch-c, protože pak by měly vyšší prioritu zastaralé soubory z Ačka.
  5. Další možnost nechte v prvním okně prázdnou. 
  6. V dalším okně nechte Create empty MPQ.
  7. Velikost hashovací tabulky vám určuje, kolik souborů bude možné do archivu vložit. Větší hashovací tabulka způsobuje o něco větší velikost patche na disku. Výchozích 4096 vám bude v 95% případů bohatě stačit.
  8. Nechte zaškrtnuto, že MPQ má být verze 2.0 a nechte vytvořit (attributes).

A to je vše, máte vytvořený vlastní nový a zatím prázdný MPQ archiv, ten se zobrazí v aktuálním pracovním adresáři (tedy buďto ve složce, kde máte MPQ Editor, nebo ve složce, ve které jste otevřeli za jeho pomoci poslední MPQ archiv, nastavit jde ve Vlastnostech zástupce, pokud aplikaci spouštíte přes zástupce). 

Soubory do něj vkládejte obyčejným přetahováním myší na pravou polovinu okna MPQ Editoru, pokud se vám při pokusu vložit soubory něco objeví (většinou otravuje nastavení archivation rules a podobné kraviny, dokud tam neodškrtnete, ať se to znovu nezobrazuje), prostě to odklikněte, tam se není třeba ničím zaobírat. Dodám jen, že MPQ Editor ihned ukládá všechny změny a že neukládá prázdné složky (přesněji neukládá složky vůbec, ty tam jsou zobrazovány jen imaginárně, aby měl uživatel-milovník obrázkových Windows radost). Pokud vytvoříte složku a nevložíte do ní žádný soubor, po restartu MPQ Editoru ji tam již nebudete mít.

Komprese archivu, nastavení hashovací tabulky, extrakce dat

Pokud v MPQ archivu nějaký již existující soubor přepíšete či odstraníte, berte v potaz, že stará data nejsou z archivu odstraněna, ne úplně. Jsou pouze vyškrtnuta z hashovací tabulky a již k nim není žádný přístup. Fyzicky tam ale stále jsou a zabírají místo na disku. Řešení jsou v podstatě dvě. První, zbytečně pracné, je označit všechna data, dát ctrl+e a vyextrahovat vše ven, patch smazat, znovu vytvořit a data do něj naházet. Zmiňuji to tady vlastně jen proto, že samotná extrakce dat ven se vám může také někdy hodit.

Soubory jdou z patche samozřejmě jen vytáhnout myší, ale pokud jich je hodně, musíte vždy počkat, až po vytažení kurzoru z patche proběhnou všechny lišty, které se tam začnou míhat. Když pustíte myš dříve, extrakce neproběhne. Ctrl+e je tak mnohem elegantnější a rychlejší. Pokud však nechcete data extrahovat a skutečně chcete jen celý archiv zkomprimovat tak, aby měl takřka optimální velikost, běžte do menu Operations a zvolte úplně dole Compact archive. Pokud byste chtěli naprosto optimalizovat velikost patche, bylo by třeba také minimalizovat velikost hashovací tabulky. Velikost hashovací tabulky se nastavuje opět v menu Operations, možnost Change Hash Table Size. Tuto možnost však využijete spíše pokud by se vám někdy stalo, že přešvihnete původní maximum a budete potřebovat přidávat další nové soubory.

Ještě přidám jednu připomínku ke vkládání souborů. Pokud se pokusíte do MPQ archivu vložit více souborů, než na kolik je místo v hashovací tabulce, může se vám MPQ úplně zničit. Soubory tam navíc nedostanete, MPQ editor vám pro každý přebytečný milostivě oznámí, že se tam nevejde a pokud nebudete chtít 1000x odkliknout že víte, že se tam nevejde, budete muset killnout proces přes správce úloh. Proto si vždy přes Vlastnosti složek se soubory, které se chystáte vložit do MPQ, zjistěte počet souborů. Pokud máte podezření, že by celkový počet souborů převýšil velikost hashovací tabulky, nejdříve ji zvětšete.

MPQ Editor má ještě další funkce, nicméně těmi se zde zobírat nebudu, protože jsem je já sám za více jak 3ech letech modování nikdy nevyužil. To vám pochopitelně nikterak nebrání v experimentování s nimi. Ohledně MPQ archivů platí dvě univerzální rady.:

  1. VŽDY mějte zálohy všech vašich dat, včetně těch blizzlike.
  2. NIKDY needitujte přímo blizzlike patche, vytvářejte pouze své, které budou v abecedě za nimi.

Listfile a Merged mode

Listfile je důležitý soubor v MPQ. Obsahuje seznam cest ke všem souborů, které v MPQ jsou. Bez listfilu sice dokáže MPQ přečíst herní klient, ale nedokáže jej vůbec otevřít WMV a MPQEditor jej sice otevře, ale nedokáže souborům přiřadit názvy a cesty k nim (takže dostanete jen hromadu nesrozumitelného bordelu). Listfile můžete exportnout jako každý jiný soubor, otevřít v poznámkovém bloku, používat k tomu, abyste si z něj mohli okopírovat celé cesty k souborům... Také se může hodit jako vstupní soubor pro některé (zejména mé) prográmky. Jinak nemá soubor cenu editovat, MPQEditor jej generuje a aktualizuje sám, nemusíte se o něj tedy starat. Pokud přetáhnete myší MPQ na FuckItUp ve složce MPQpatche v mých toolskách, FuckItUp optimalizuje velikost MPQ a smaže z něj listfile. Pozor, toto nikdy nedělejte bez toho, že byste měli kopii, ve které listfile stále je. K čemu může být odstranění listfilu? V první řadě, pokud MPQ nemá listfile a vy mu dodáte jiný, vlastní (viz níže), otevře MPQEditor úspěšně jen ty soubory, které jsou v dodaném listfilu. Díky tomu můžete snadno otevřít pouze ty soubory, které chcete, a exportnout z MPQ pouze ty soubory, které chcete (použijete tedy listfile jako takový filtr). Dále můžete odstranění listfilu použít jako primitivní, ale ucházející zabezpečení proti alespoň méně kompetentním pokusům o vykradení vaší práce, pokud MPQ vydáte veřejně a nechcete, aby do něj každý mohl.

Pokud chcete otevřít MPQ, ze kterého byl listfile vybrán, jděte v MPQEditoru do menu File, zvolte Open MPQs With Option(s)... Vyberte MPQ, dejte OK. Pak vpravo nahoře klikněte na 3 tečky u Additional Listfile a vyberte listfile.

V tomto okně také můžete vybírat více než jedno MPQ a pak můžete otevřít více MPQ najednou v jednom Merged módu. To se může hodit na exporty souborů (zejména WMO, které nedostanete ven přes WMV zrovna pohodlně).

Pokud chcete do MPQ, ze kterého jste sebrali listfile, listfile vrátit, jednoduše vyexportujte veškerý obsah MPQ a vytvořte MPQ nové. To vám samozřejmě nepůjde, pokud dané MPQ neotevřete s listfilem, který jste v něm předtím smazali. Proto ta záloha.



Recommended Comments

There are no comments to display.

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