-
Posts
236 -
Joined
-
Last visited
Content Type
Profiles
Forums
Servers
Downloads
Gallery
Everything posted by Amaroth
-
Potřebné programy Noggit, doporučená verze je SDL 1.4 nebo co nejnovější beta. SDL 1.4 je poslední oficiální release. Oproti nejnovější betě má řadu zádrhelů, ale je věcí autorů Noggitu, ne mě, říct, kdy je nová verze hotová, připravená k oficiálnímu vydání a kdy ji mohou uživatelé začít používat s klidným vědomím i na ostré projekty. Potřebné počáteční znalosti Předpokládá se, že jste si prošli Obecný přehled pojmů a systému hry, Vytváření a editace MPQ archivů a Úvod do WMV. Příprava projektu, konfigurace Pokud chcete používat Noggit, budete potřebovat upravovat řady věcí (WDT, WDL, DBC...) a je možné, že budete chtít také používat různé vlastní modely či modely z vyšších datadisků, a to ať už hned od začátku, či někdy v budoucnosti, až se více rozkoukáte. Důrazně proto doporučuji, abyste si vytvořili složku, ve které budete mít (jen) věci od svého projektu. Do této složky si okopírujte složku Data ze svého herního klienta. Tento krok byste nemuseli dělat, ale vřele doporučuji, abyste měli oddělená data vývojářská a data herní. Pokud chcete rozjet vlastní server, doporučuji si pak ještě udělat celou další kopii herního klienta, která bude sloužit pro testování patchů (takže budete mít klienta s herními patchi, klienta s vývojářskými patchi a Data složku pro vývoj projektu ve složce projektu). Ne každý má samozřejmě tolik místa na disku, ale pokud jej máte, nešetřete jím. Dále doporučuji také vytvořit si kopii WMV, který bude napojen na vaše Data v projektu, rozhodně v případě, že hodláte přidávat obecně jakékoliv modely, které nejsou v blizzlike WotLK herním klientu. Pokud si vystačíte jen s blizzlike klientem (což ze začátku z pravidla ano), WMV vymezený pro Noggit moc nepotřebujete. Dbejte jen na to, aby měl Noggit skutečně všechny cesty ke všem MPQ nastavené do složky ve složce projektu, ne do vaší hry. Pojďme už na samotný Noggit. Otevřete složku s ním a v ní najděte soubor noggit.conf (někde najdete noggit.temp.conf či něco podobného, v takovém případě jej přejmenujte na noggit.conf, a pozor, ať to není noggit.conf.conf (můžete ověřit ve Vlastnostech souboru)). Noggit.conf otevřete v poznámkovém bloku. Path nastavte na cestu ke složce, ve které je složka Data s MPQ, které má Noggit používat. Tedy cesta do složky vašeho projektu. Složky se v cestě oddělují zpětným lomítkem \, nezapomeňte, že u cest do složek musí být toto lomítko i na konci cesty. ProjectPath je cesta do místa, kde budou ukládány všechny vaše upravené soubory, tedy upravené mapy a DBC. Ta může vést obecně do jakékoliv existující složky, ale doporučuji ji dát stejnou jako je vaše Path (tedy ideálně do složky projektu). I tato cesta musí končit na \. Následuje cesta ImportFile. Zde pozor, u Noggitu SDL 1.4 jde o wmvLogFile cestu. U nového beta Noggitu jde o cestu k souboru Import.txt. U beta Noggitu ji buďto zakomentujte (napsáním symbolu # před ní), nebo do ní dejte cestu k souboru Import.txt ve složce s Noggitem (můžete takhle napojit několik Noggitů na jeden Import.txt pokud chcete). Jelikož jde o cestu k souboru, NESMÍ končit na \. wmvLogFile je cesta k souboru log.txt ve složce userSettings ve složce vašeho WMV, který chcete pro práci s Noggitem používat. Propojení Noggitu SDL 1.4 a WMV nefunguje jak má, takže nemá moc cenu jej vůbec nastavovat. U beta Noggitu tuto cestu rozhodně nastavte, bude se vám totiž toto díky Bohu již opravené propojení moc hodit. FarZ nechte na 1024. Můžete jej zvýšit, ale výchozí 1024 je stejně maximální viditelnost ve WotLK s Ultra detaily, takže takový dohled nemívá moc smysl. Pokud máte pomalý stroj, může se vám hodit nastavit nižší hodnotu. U beta Noggitu najdete ještě TabletMode, napište do něj true jen v případě, že máte grafický tablet, jinak tam nechte false. Nyní můžete zkusit spustit Noggit. Pokud vám spadne s tím, že mu chybí nějaký .dll soubor, dejte do Googlu náze .dll souboru, stáhněte si jeho nejnovější verzi pro svůj OS a umístěte jej do složky s Noggitem. Pokud vám Noggit spadne a nic nenapíše, otevřete log.txt a zkuste si projít výstup, zda vás tam nepraští do očí nějaké chyby (většinou tam najdete spam o tom, jak se MPQčka nepodařilo otevřít, což značí, že jste zadali špatně vaši Path). Pokud nic nevykoumáte, nahrajte log.txt na Pastebin, stejně tak váš noggit.conf a buďto si založte vlákno s žádostí o pomoc, nebo kontaktujte někoho ze zkušenějších vývojářů přímo. Potíže s grafickou kartou V dnešní době má většina výkonnějších PC 2 grafické karty, jednu výkonnou a jednu úspornou. Pokud je toto váš případ, je možné, že vám Noggit sice pojede, ale bude vám hodně silně lagovat jakmile vejdete do mapy. V takovém případě jej zavřete, vlezte do nastavení své grafiky (pro majitele NVIDIE na příklad stačí zadat do startu NVIDIA a otevřít její ovládací panel). U NVIDIE klikněte vlevo na Spravovat 3D nastavení, vyberte kartu Nastavení programu, klikněte na Přidat, v dialogu na Procházet, vyberte spouštěcí soubor Noggitu. Pak překlikněte na Vysokovýkonný procesor NVIDIA v drop down menu, klikněte na Použít a máte hotovo. U jiných grafických karet bude postup snad podobný, případně dohledejte Googlem, co a jak. Pokud lagy neustávají, otevřete log.txt Noggitu a v něm najděte řádek píšící, které grafické jádro je používáno. Ujistěte se, že je tam to výkonnější. Pokud ne, něco jste udělali špatně. Pokud ano, máte problém, který dost možná nedokážu řešit (vyjma obecné a mnohdy nikomu nepomáhající procedury typu aktualizace ovladačů, OS apod.). Jak toto udělat u NVIDIE si můžete také prohlédnout v jednom z mých videí. Jak upravovat mapu Nebudu zde do detailu rozebírat, jak se Noggit ovládá. Od toho zde je uživatelský manuál, který jsem psal pro Noggit SDL 1.4. Beta Noggit má pár věcí trochu jinak a pár věcí navíc, ale na ty zvládnete jistě přijít sami. Co je pro vás důležité je, že pokud otevřete Noggit, budete nejčastěji chtít upravovat kontinenty (Continent), ostatní mapy asi jen zřídka. Malá rada, maximalizujte si okno Noggitu vždy před tím, než vstoupíte do mapy, aby se vám nerozhazovalo UI. Po výběru mapy se dostanete na obrázek mapy, uvidíte síť souborů ADT, tedy jednotlivých dlaždic, ze kterých mapa je poskládána. Klikněte někam do mapy a tam se objevíte. Jakmile jste v mapě, stiskem klávesy H si zobrazíte ovládání. To vám, ve spojení s manuálem, co jsem odkázal, a pokusem-omylem, musí stačit k naučení se, jak se Noggit ovládá. Důrazně doporučuji projít si skutečně vše, protože narazíte na spoustu drobných vychytávek a klávesových zkratek, které vám mohou hodně usnadnit život. Možná někdy udělám videjka o ovládání Noggitu, ale myslím, že alespoň zatím jsou zde vyšší priority a že nejsou zrovna nutná celkově. Pokud máte SDL 1.4 (beta testu se týká také, ale ne všechna videa), věnujte zvýšenou pozornost mému FAQ. To je v (mé nedokonalé) angličtině, a jelikož tato série tak trochu předpokládá, že někteří její čtenáři s angličtinou nemusí až tak moc kamarádit, rychle jej zde shrnu. U 1.4 vždy ukládejte celou část mapy, kterou se chystáte teď nebo v budoucnosti upravit, najednou. Když stisknete klávesu M, uvidíte znovu ADT mapu. Bíle jsou ohraničená upravená a s upravenými sousedící ADT - ta všechna budou uložena jako upravená, jakmile stisknete ctrl+s. Dbejte na to, abyste vždy ukládali stejná ADT (tedy ne že jednou uložíte východní Westfall a po druhé západní) a abyste vždy ukládali úplně všechna. Pokud tak neučiníte, narazíte na duplikace modelů. V menu Assist najdete funkci Clear duplicate models. Ta není v 1.4 úplně dokonalá, doporučuji ji použít v beta test verzi. Pomůže vám vypořádat se s případnými duplikacemi modelů, ke kterým dojde, pokud v SDL 1.4 nebudete ukládat mapu vždy pohromadě. Dále, v SDL 1.4, vždy restartujete aplikaci poté, co uložíte mapu. Nikdy neukládejte nic 2x během jednoho spuštění aplikace. Dostanete duplikace a ztráty modelů. U SDL 1.4 udržujte vždy na všech chuncích plné všechny 4 sloty na textury, jinak budete dostávat v mapě ve hře crash (jak toho docílit se můžete podívat ve videu o 0023:007B31F8). Beta test tento bug nedělá a dokonce jej i opravuje. Beta test také nemusíte restartovat po každém uložení. V obou verzích si musíte dávat pozor na to, abyste neklikali nebo nepřetahovali nástroji do děr v terénu - jinak dostanete skvrny textury všude kde nemá být, díry náhodně rozházené po mapě apod. Nicméně beta test už alespoň nevytváří duplicitní díry v terénu u nástroje Holes. Malé upozornění ještě, beta test na rozdíl od SDL 1.4 správně kopíruje právě otevřené M2 i WMO modely z napojeného WMV. Stačí model zobrazit ve WMV a v Noggitu dát shift+c nebo alt+c. A poslední věc, aktuální beta verze vyhazuje z paměti ADT, na kterých jste dřív byli, ale už jste z nich odletěli, aby Noggit nepadnul při průletu velkou mapu na přeplněnou paměť. Aktuálně však takto vyhazuje z paměti i upravená ADT, takže přijdete v takovém případě o všechnu práci, než tedy odletíte někam přes půl světa, uložte změny. Jakmile uděláte změny, které jste chtěli, uložte je přes ctrl+s. Ve vaší ProjectPath se objeví složka world, v ní maps, v ní najdete složku s názvem mapy, a v ní veškeré upravené soubory. Pokud chcete, aby se tyto změny projevily ve hře, vytvořte si své vlastní MPQ a do něj vložte celou tuto složku (takže aby v MPQ byla stejně složka world, v ní maps, v ní složka s názvem mapy a v ní soubory). MPQ pojmenujte patch-(něco) kde něco je jen jedno písmeno bez diakritiky a vložte jej do složky Data vašeho herního klienta. Spusťte hru a změny by měly fungovat. Jak udělat dobře vypadající mapu Podle zásad kvalitního level designu, ve velké zkratce. Určité postřehy dávám dohromady ve své YT sérii, která je na rozdíl od FAQ i v češtině. Zde tyto věci nemá smysl rozepisovat, lepší je názorná ukázka. Je zde samozřejmě více věcí (např. jak mapu zvětšit, zmenšit, nebo udělat úplně novou), ale o tom někdy příště.
-
Potřebné programy GruulMeWDT AdtAdder MyDBCEditor (či jiný DBC editor) Potřebné počáteční znalosti Předpokládá se, že jste si prošli Obecný přehled pojmů a systému hry, Vytváření a editace MPQ archivů, Editaci DBC a Úvod do Noggitu. Také se předpokládá, že máte k dispozici server k testování. Tvorba nové mapy Začněte tím, že si vytvoříte ve složce, ze které bere váš Noggit data (takže ideálně složka vašeho projektu - bude ve stejné složce, v jaké je složka World, do které vám Noggit ukládá upravená ADT) složku DBFilesClient. V této složce budeme udržovat všechna naše DBC týkající se herních map. Tato složka bude Noggitem čtena jako poslední, takže všechna DBC v ní budou přepisovat DBC nalezená v MPQčkách. Osobně v tuto složku používám jako úložiště úplně všech DBC, která jsem kdy upravil. Potřebovat budete Map.dbc. Doporučuji také vzít MapDifficulty.dbc. Víc byste neměli potřebovat, ale jelikož začínáme, trochu tady ještě potáhnu za ruku ty, kteří jsou ještě ze všech těch DBC a jejich úprav zmatení. Otevřete si obě DBC v MyDBCEditoru. Budete chtít udělat nejspíše novou mapu kontinentu, tedy volně přístupnou mapu pro všechny. V takovém případě jednoduše okopírujte v Map.dbc první řádek (pravým na něj klikněte a dejte Copy Line To...) na volné místo. DBC končí v blizzlike podobě na ID 724, takže můžete použít třeba 725. Přepište oba názvy ve sloupci 2 a 6. Název ve sloupci 2 je jméno mapy v MPQ, musí být bezpodmínečně bez háčků a čárek, mezer a podobných věcí, dál budu předpokládat, že jste do tohoto políčka napsali NazevMapy. Název ve sloupci 6 je už skutečný název mapy, který uvidíte třeba v Noggitu v menu, tam už můžete psát, co chcete, i diakritiku. Pokud nechcete dělat kontinent, projděte si už sami dokumentaci, jak na to. Nicméně i u BG a instancí doporučuji začít u kontinentu, protože ten se snáze testuje, a až pak jej případně na BG/instanci předělat v DBC. To samé udělejte v MapDifficulty - vezměte první řádek (shodou okolností i zde je to řádek Azerothu) a nakopírujte jej na volné místo, třeba na 754 (pokud máte blizzlike DBC). Přepište pak jen ID mapy v druhým sloupci (což je odkaz na vaše ID mapy v Map.dbc, jak byste se dočetli v dokumentaci) a hotovo. Umístěte obě DBC jak do vašeho MPQ, tak do dbc adresáře vašeho testovacího serveru. Pak spusťte GruulMeWDT, klikněte na New, vyplňte váš název mapy a přidejte příponu .wdt (takže třeba NazevMapy.wdt). Důležité je, aby název přesně seděl. WDT flags zaškrtejte 2 a 4 a dejte Save. Pokud vám takto vytvořené nové WDT bude blbnout, jednoduše si najděte v MPQ WDT nějakého kontinentu od Blizzardu, vyextrahujte jej, přejmenujte na NazevMapy, a jen mu v GruulMeWDT upravte ADT array. To by mělo jít vždy. Na závěr běžte do složky, kde máte projekt, zajděte do složky maps ve složce world (vytvořte je, pokud je tam nemáte, což bude jen v případě, že jste v Noggitu nic ještě neupravovali) a v ní vytvořte složku s názvem odpovídajícím názvu mapy. Takže třeba NazevMapy. Důležité je, aby název složky, jméno WDT souboru, jména všech ADT (která budeme dělat v další sekci) a název ve 2. políčku v Map.dbc přesně seděly. Změna rozměrů existující mapy Ať už chcete upravovat blizzlike mapu, nebo svou právě vytvořenou (viz výše), postup je stejný. Spusťte GruulMeWdt, klikněte na Load..., vyberte WDT soubor upravované mapy. GruulMeWdt umí více věcí, ale my se podíváme jen na základ, přidávání a odebírání ADT. Klikněte nahoře na kartu ADT Array. Vlevo můžete překlikávat mezi Delete tile a Add ADT, a pak levým tlačítkem klikat do mapy a tím ADT mazat, nebo přidávat. Pokud vytváříte novou mapu nebo novou část mapy, nikdy nezačínejte u okraje. Existuje celá řada důvodů, proč byste mohli chtít dříve nebo později mapu rozšířit, a nalepením mapy na okraj se o tuto možnost částečně připravíte. Doporučuji však zároveň zůstat mezi ADT 0 0 a 31 31, protože v takovém případě budou po celém vašem světě kladné světové X i Y souřadnice, což trochu usnadní některé věci. Upozorňuji, že někdy je rychlejší nejdříve vytvořit samotná ADT (viz níže), případně umazat ta nechtěná, a pak jen v GruulMeWDT kliknout na Scan dir. Podíváme se ještě na tvorbu ADT. K tomu je AdtAdder. Spusťte jej, klikněte na Browse a vyberte zdrojové ADT, které bude rozkopírováno na celou mapu. Je prakticky jedno, které z těch dvou použijete, osobně používám to menší, pokud mě paměť nešálí. Vyplňte Map Name (tedy něco jako NazevMapy) a odkud kam se mají ADT vytvořit (jde o levý horní a pravý dolní roh obecně obdélníka, třeba 0 0 a 2 2 vytvoří 2x3 mapu, tedy 6 ADTček). Takto vytvořte po obdélnících svou mapu. Některá ADT budete třeba chtít nakopírovat a přejmenovat ručně (to klidně můžete), hlavně ať sedí X a Y souřadnice ADTček v jejich názvech. Pak spusťte offsetfix.bat (.bat, ne .exe prosím). Hoďte všechna vaše ADT do složky s vaší mapou, tedy tam, kde máte WDT. Pokud děláte úplně novou mapu, můžete klidně až teď otevřít GruulMeWDT a nechat jej, ať vám upraví WDT podle obsahu složky, ve kterém je. Pokud jste vše udělali správně, měla by vám mapa jít otevřít v Noggitu a měli byste být schopni se na ni po restartu teleportovat i na vašem testovacím serveru. Několik poznámek na okraj. Pokud budete mít na okrajích nakopírovaných ADT podivné čáry, jde o stíny, které by měly zmizet, jakmile po nich přejedete jakýmkoliv nástrojem pro modelaci terénu. Pokud jste si vybrali jako zdrojové ADT to, ve kterém nejsou textury na terénu, první textura, kterou aplikujete, vyplní všechny zasažené chunky. To je normální chování. Pokud chcete, aby vám na vaší mapě fungovaly zóny, general chat, aby se vám na nich nepropadala NPCčka a vlastně aby na nich fungoval prakticky jakýkoliv obsah, který jde ze serveru, musíte pro svou mapu vygenerovat server side mapy (tedy maps, vmaps, mmaps). Jak na to popisuju v angličtině zde. Pokud budete mít ve WDT zaznamenané ADT, které herní klient nenajde v žádném MPQ, hra crashne. Pokud naopak nebudete mít ve WDT zapsané ADT, které při tom v MPQ bude, hra jej bude ignorovat a neotevře jej. Naopak Noggit vám vždy otevře všechna ADT v mapě a WDT takřka ignoruje, takže pro pouhou práci v Noggitu bez toho, že byste výsledky testovali ve hře, potřebujete pouze, aby WDT existovalo, ale už ne aby bylo 100% přesné a aktuální.
-
Potřebné programy WoW Model Viewer, verze pro WotLK. Potřebné počáteční znalosti Předpokládá se, že jste si prošli Obecný přehled pojmů a systému hry a Vytváření a editace MPQ archivů. Konfigurace a instalace WMV má více verzí a tím pádem vám doporučuji využívat tu, která je v mém balíčku toolsek. Jednoduše proto, že novější verze nemusí být kompatibilní s WotLK (hlavně WoD+ verze nejsou). Když po prvé nainstalujete WMV, zeptá se vás na cestu ke hře. Pokud spustíte už nainstalovaný WMV, měl by se automaticky napojit na hru, kterou máte v počítači nainstalovanou, podle cesty získané z registru. Pokud vám WMV spadne s tím, že nemohl najít data, máte trochu problém. V posledním jmenovaným případě zamiřte do složky userSettings ve složce s WMV a otevřte soubor Config.ini v poznámkovém bloku. Na konci najdete MPQFiles a kousek pod prostředkem Path. Oběma hodnotám přepište všechny vypsané cesty tak, aby seděly s cestami k vašemu WoWku a MPQ archivům v něm. Nezapomeňte oddělovat všechny složky dvěma zpětnými lomítky - \\, ať máte jistotu, že vše pojede jak má. Jakmile vám WMV jede, můžete zabrousit do menu Options a tam vybrat Settings. Zde věnujte pozornost jen seznamu MPQ, které WMV otevírá. Měl by začínat dle abecedy sestupným seznamem MPQ ve složce Data a pak by měl následovat dle abecedy sestupný seznam MPQček ve složce enGB/enUS/... Pokud máte již udělaný svůj vlastní MPQ patch, klikněte na Add a přidejte jej do seznamu. Můžete takhle přidat libovolné množství MPQ (nebo je časem odebírat), ale vždy je udržujte shora v sestupném pořadí dle abecedy, aby váš WMV načítal MPQ ve stejném pořadí, jako herní klient (tzn. abyste měli jistotu, že vše uvidíte stejně, jako to vypadá ve hře). Prohlížení WMV vám umožňuje si prohlížet modely a textury, na ostatní věci se už moc nehodí. V základu máte vždy vybrané M2 modely. Vlevo dole můžete změnit, co prohlížíte, na začátku tam budete mít Models. Občas zabrousíte do WMOs a občas do Images. Vlevo nahoře pod nápisem File List máte kolonku pro zadání klíčového výrazu, podle kterého můžete hledat určité soubory. Pár poznámek. Za prvé, vyhledávání se bere nejen podle názvu souboru, ale i podle názvů složek po cestě. Takže pokud zadáte "Expansion", dostanete pořádnou nálož výsledků, i pokud jste chtěli hledat jen nějakou konkrétní Expansion.m2. Druhá poznámka, jde vyplňovat i cestu k modelu. Třeba Expansion02\doodads\azjol (opět, všude zpětná lomítka, ale zde jen po jednom!) vám najde všelicjaké nerubianské věci z WotLK. A za třetí, pokud vlevo dole překliknete na něco (třeba z Models na WMOs), rovnou vám WMV začne hledat věci podle toho, co je vyplněno ve filtru. Proto doporučuji nejdříve vyplnit filtr a až pak překliknout na něco jiného než Models, pokud nehledáte modely, ukrátíte si čekání, protože prázdný filtr vám vyplivne vše, co ve všech MPQ existuje. Když kliknete na název modelu, zobrazí se vám jeho náhled. U M2 levým tlačítkem otáčíte, pravým posouváte a prostředním přibližujete a oddalujete (obdobně numerickou klávesnicí, ta neumí otáčet, ale 5kou vás vrátí o posun klávesnicí zpátky). U WMO je to jinak, kolečko nefunguje, pravým tlačítkem letíte vpřed či vzat a levým tlačítkem otáčíte kameru, ne model. Postavy WMV má jednu skvělou vlastnost, dovoluje vám obléknout si v něm charakter. Pokud zvolíte Models a zabrousíte do složky Characters, dostanete se ke všem modelům hratelných (přesněji oblékatelných) ras. Jak si otevřete model, kromě klasického náhledu se vám ještě zobrazí vpravo panel. V tomto panelu můžete naklikat vzhled postavy a itemy, co má na sobě. WMV je jediné místo, kde nastavíte jinou facial color než je hair color, ve hře to nelze. Nač je oblékání postav dobré? Na vytváření NPC, na to se ale podíváme jinde a jindy. Export - nač tu WMV vlastně je Dostáváme se na závěr k tomu nejdůležitějšímu, co WMV umí, a to je export souborů. Pokud dáte File a Save file... (nebo kliknete pravým na název souboru v levém stromě souborů a dáte Save...), dostanete se do okna k uložení otevřeného souboru do cíleného místa. To se takřka nepoužívá, ale někdy se vám podobný krok může hodit pokud chcete na příklad exportnout něco jiného než model či texturu (třeba MP3ku). Hlavně pozor, u WMO tato možnost uloží jen kořenový soubor WMO, ne jeho soubory parciální. Mnohem důležitější je v menu File možnost Export Textures. Nenechte se zmást zavádějícím názvem, tato možnost totiž umí exportovat i modely. Jak na ni kliknete, objeví se vám nový panel. Pokud otevřete nějaký model, můžete v drop down menu v tomto panelu vybírat soubory, které ten model používá. Pokud kliknete pak na Export, dostanete vybraný soubor. Pokud kliknete na Export All, exportnou se rovnou všechny soubory, které model používá (někdy ne bezchybně, bohužel, u Cata+ WMO se občas nevyexportují všechny textury). Nutno dodat, že i Export, i Export All vám vyhodí textury v BLP formátu a modely v M2 formátu, a že nefunguje na samotné WMO soubory, jen na soubory WMOčkem používané. Na export samotných WMO proto doporučuji použít Merged mode v MPQEditoru a WMV použít jen na dohledání cesty k WMO. Jinak můžete otevřít po jednom každý jednotlivý WMO soubor (kořenový i všechny parciální) a u každého dát Save. To asi nikdo dělat nebude. Pokud kliknete na Export All To PNG nebo Export All To TGA, dostanete pouze textury a to v PNG nebo TGA formátu. Šikovné pokud chcete textury upravit, nebo pokud je chcete použít na vytvoření jiné textury. Nakonec tu je možnost Path Preserved. Pokud tu zaškrtnete, vše, co se bude exportovat, se vyexportuje do takových složek, v jakých dané věci jsou v MPQ. Tuto možnost budete chtít mít zaškrtnutou ve většině případů, zejména ze začátku, když se v souborech WoWka ještě moc neorientujete. Dále zde máme možnosti ve File>Export Model submenu. Osobně používám Wavefront OBJ..., což exportne model do OBJ formátu - takový otevřete v libovolném 3D editoru. Pokud směřujete k 3D modelování, tento export budete používat pravidelně. Malá poznámka, model tato vyexportovaný ze hry má vždy obrovské množství duplicitní geometrie (často i celých geogroup). Vždy začněte v 3Dčku tím, že na takto exportovaném modelu dáte sloučit duplicitní vertexy. Dále také používám X3D export. Ten totiž vyhodí PNG textury modelu. Pokud takto exportnete oblečený model oblékatelné rasy, získáte i rovnou oblečenou texturu. To budete potřebovat na tvorbu NPCček oblékatelných ras, k tomu více později. Nakonec zde ještě za zmínku určitě stojí Load Character(F8) a Save Character(F7) v Character menu. Kromě možnosti sdílet postavy budete uložený .chr soubor postavy potřebovat k rychlému, snadnému a efektivnímu tvoření NPC displayIDček oblékatelných ras za pomocí mého editoru. Na to se podíváme také později. Závěr A to je k WMV vše. Samozřejmě, jde v něm dělat více různých věcí a nebráním vám si s nimi pohrát, ale pro základy moddingu nejsou potřebné a tak se jim tu nemá cenu věnovat.
-
First of all, why the heck do I even bother with something what seems to be so basic? Well, apparently it is not, because there are a few tips and tricks which aren't very commonly known, at least beginners don't know them and there's no tutorial really describing them. I will also link my simple WIP tool which can be very usefull for you here. I will start with things you probably do already know, if that bothers you, just skip to the last heading. First of all, how can we get models into our map in Noggit? A short list of possibilities: Ctrl+c and ctrl+v. No magic hidden here. Import from MV. Import from a text file (Import.txt). Import from MV MV is a model viewer. WoW Model Viewer is an application which enables you to browse WoW models. Great thing, but here comes a problem - current Noggit's import functions aren't compatible with quite a lot of WMV's versions. As far as I know, importing WMOs in general tends to work. In order to import models from WMV, simply change ImportPath in noggit.conf, so it points to log.txt file in userSettings folder in your WMV's folder. An example follows.: ImportFile = D:\Modding\Projekty\Arathor\WMV\userSettings\log.txt When you have this set, you can simply open a WMV, select a model, then go to Noggit and shift+c to import M2, alt+c to import WMO. There were slightly bugged versions of Noggit where both shortcuts actually imported M2, keep this on mind please. The newest version should have this fixed by now. If your import functions don't work (mostly M2 tends to not), you can try a different version of WMV. Version which is definitely compatible with Noggit's import function for M2s can be downloaded on Modcraft.: http://modcraft.superparanoid.de/viewtopic.php?f=48&t=4797 The problem is, that this version is really an ancient one, and tends to crash frequently, especially when it comes to retro-ported stuff. Import from text file Import.txt is a file located in Noggit's installation folder. It contains paths to models separeted by line breaks. You can delete models from here simply by opening a file and deleting them. To reload a file, just deselect any model you may have selected in Noggit and go to Assist menu, choose To Text File function, and here you go, Import file is reloaded. If you have any model selected while clicking on To Text File button, its path will be written at the end of the file. This can be very useful when you need to copy a model from different map, or when you need to copy multiple models. To acces list of models in your Import.txt, simply go to Assist menu and click on From Text File. Then you can just start clicking on model names and models will appear on your mouse cursor or in model you have currently selected, or on selected coordinates, if Auto select mode in Edit menu is turned off (does anyone even use this thing?). So, why this tutorial? Where are those secret tips? Yep, its a little bit strange to write them at the end of tutorial which was supposed to be dedicated to this, but I needed to explain stuff above. Import.txt is actually quite a powerful thing to use, as long as you can get list of models you want to import into Noggit, separated by line breaks, and filter them. Such lists do exist in WoW - they are called listfiles. In each MPQ, you can find (listfile) (as long as it wasn't made as listfile-free MPQ). (listfile) is a list of all file paths to all files in MPQ. And we will make a good use of this. First of all, download my Toolkit. Its a WIP application and poorly written, I've got to admit, but it works for what we are going to do with it absolutely fine. There's also a simple .bat included.: https://www.dropbox.com/s/hh8i859hb9ebxve/AmarothsToolkit.rar?dl=0 Open your WMV. Go to File menu and select Export textures... option. In new panel which appears, make sure that Path preserved option is checked. Then just browse M2s. Everytime you find some you want to use, just click on Export all button in panel which have appeared. In the end, you will have model files in Export folder in WMV's directory, and they will be all in paths into which they belong. Now, you have basically two options. You can either place cleanup.bat script into Export folder and run it. It will delete all .skin and .blp files in all directories in Export folder. If you want to change list of extensions which should be deleted, simply right-click that cleanup.bat, click on Edit and you surely will figure out how to change it on your own. Then create a new, empty MPQ and place all folders in Export directory into it. The second option is skipping whole cleanup.bat part and continuing to another paragraph of this tutorial. When you have any sort of MPQ with (listfile) which contains files you don't want to use in Import.txt (like BLPs, SKINs or maybe even more stuff, it may be your server's patch you are giving to players or whatever else), you need to clean that (listfile) from all things you don't want to have there. To do this, just extract (listfile) from that MPQ and place it whenever you like. Then run my Toolkit application and set extracted (listfile) as input file. For this purpouse, you will want to use cleanup filter, which is that big panel on the left. Select extensions you want to keep in listfile (most likely .M2 and Root-only .WMO). You can also select path prefixes to keep only models from certain directory, for example, you can keep only files from World folders. You can also modify filters by using those 2 buttons and text input under filters, so you can add filter to World\Expansion02\ directory, for example. For more info, follow a Manual. When all your settings are done, just click on Cleanup Listfile button and save cleaned listfile whenever you want. If you have made a MPQ which already contains only M2 files, its (listfile) will, obviously, contain also only M2s (and (listfile) and (attributes) most likely), so you can basically use that (listfile)'s content without even filtering it by my Toolkit. Now just open that cleaned and filtered listfile, press ctrl+a (or select just some particular models you wanted to use), ctrl+c, open Import.txt, ctrl+v, ctrl+s, use To Text File function in Noggit to reload import file and you are done, you have your models in Noggit. This all can seem a little bit complicated, but when you learn how to do this and won't need to look any manual up for that, you will actually be able to quickly get lists of even hundreds or thousands file paths and filter them by using my Toolbox to get files you wanted, the only problem is exporting model files via WMV, if you need to do that (so, if you need to select just a few certain models rather then just use whole folder for example). One final tip. You can also create a (listfile) of all file paths in WoW and then just always get only models from some certain directories by using my Toolbox. Lets say you want all World\Expansion02\Coldarra\ models. If you already have prepared merged (listfile) of all WoW files, my Toolkit is actually very fast and easy way of getting all those models directly into Import.txt. Just open Toolkit, choose merged (listfile) as an input file, write World\Expansion02\Coldarra\ under filters, click on Add path prefix button, make that filter checked, click on Cleanup Listfile and... done. And one now really final tip. Extensions filter may be actually used also for ends of file names (like keg.m2, instead of just .m2). Path prefix filter can, on the other hand, be also used for name prefixes, like World/Custom/am_. Sadly, its (for now) limited for use on only one directory. This will get all am_ files, but only in World/Custom/ folder. Both extension and prefix filters aren't case-sensitive.
-
There are actually quite a lot of people who keep having problems just because of either outdated server side maps, or because they can't extract them with modified client properly. So, I've written this tutorial. I know that my way of doing this thing may be rather unclean and someone might point out that those are not things one is supposed to do, BUT they prevent from happening absolutely all kinds of errors and mistakes I've ever encountered so far. TC extractors seem to be not very well written for modded clients, at least they used to be very bad whenever it came to extracting custom stuff. 1 - What are they for? maps - Maps are here to let server know where are map tiles and which area IDs are on them (and where). Its possible that they contain even more data (I honestly don't know), but this is the most important basics we commonly need maps for. vmaps - Vector maps are here mostly to let server know where are WMOs and their interiors. This gives server possibility to prevent NPCs from attacking players they clearly can't see, for example, NPCs from building's basement won't attack player when he's just going around building. They are just optional, but highly recommended to have. mmaps - Movement maps are here to give server information about collisions, so it can make NPCs move in optimal cases only though paths which would be reachable by player as well. So, basically, instead of just jumping on 10yd high rock, they try to find a way up on it. Again, optional, but in most cases good to have. So, in general, when you don't have up-to-date map files for your custom zones, NPCs can behave in a really buggy and weird way, but what also can't work properly are custom graveyards, fishing loots, who lists, general chats and more area based stuff like that. 2 - Getting extractors First of all, determine, which maps you want to have on your server. Only maps are really essential, vmaps and mmaps are optional. All 3 maps can be about 2,5-2,7GB big, if you choose to use just maps, they will get much smaller. If you are using repack, you most likely get extractors (or otherwise it sucks even more hard, than most of repacks do) with it. If you've compiled your own core, you should be able to find extractors in folder to which your server binaries were generated. You should get mapextractor.exe, mmaps_generator.exe, vmap4extractor.exe, vmap4assembler.exe from there. If you use a repack and don't have extractors there, find another repack or compile your own core. Using extractors from different revisions of TC might work for you, but it also may not and I can't recommend you to do so. If you have compiled your own core and you don't have extractors, you have most likely disabled their compilation in CMake. Enable them there (they are usually in TOOLS) and re-compile your TC. 3 - Preparation I highly recommend to copy your WoW client and make client which will serve only for extracting server side stuff. We'll kinda break some things here and our modified client might even stop working. Otherwise at least make backups of all MPQ's you will edit. Put all 4 extractors into WoW's root directory (where WoW.exe is located). Go to your Data directory. Make sure there are only following MPQs: common, common-2, expansion, lichking, patch, patch-2, patch-3. Delete (or move out) all other (custom) MPQs you may have there. Now, normally you should be able to put your stuff into patch-4, but I've already encountered situation when extractors cleverly detected my client as WotLK client and happily ignored patch-4. So, I would recommend you to put all your custom stuff (models, ADTs, WDTs, everything you have in your custom patches) into patch-3. If you are going to use patch-3.mpq, open it and go to Operations menu, choose Change Hash Table Size and increase it to maximum. Otherwise your stuff likely won't fit in it. There's one more thing you need to do here, in case you have edited any blizzlike maps. What I've encountered in past was that extractors were using blizzlike WDT files (and ADTs in them), while completely ignoring my own custom version of that WDT saved in patch-3. Having multiple versions of map in different MPQs also led commonly to extracting data from outdated versions. So, to make really absolutely sure that extractors will actually read your and not blizzlike stuff and stuff which is up-to-date, you need to do one of the following, depending on what kind of edits you did. If you have...: ... only edited a few ADTs of a continent, just place them into World/Maps/(mapname)/ folder into MPQ where blizzlike version of those ADTs is. ... edited WDT of that continent to make it bigger/smaller, extract all blizzlike ADTs and WDT of that continent, delete them from blizzlike MPQs, merge them with your custom and edited ones, delete any ADTs you have deleted if you have deleted any from original map (so you will make one big folder with ALL data of that map which is up-to-date, with both unedited ADTs and all ADTs you have edited) and put it into patch-3. ... completely deleted all data of some blizzlike map to make wholly new one on its ID, just delete all blizzlike files of that map (even if blizzlike version was in patch-3 itself!), put yours into patch-3 and you're done. The last thing you need to do is to go to your locale folder in Data folder (enGB, enUS, ruRU, deDE... whatever you have) and open the second last locale MPQ there (patch-enGB-3, patch-enUS-3...). Put all your edited DBCs into its DBFilesClient folder. 4 - Extraction itself Go to WoW's root folder, open Wordpad and enter into it the following: vmap4extractor.exe md vmaps md mmaps vmap4assembler.exe Buildings vmaps pause Save it as whatever with .bat extension, like "extract_vmaps.bat" into WoW's root folder. Now run mapextractor.exe. When its done, run your .bat file you have created. When that is done, run mmapextractor.exe. Ofc, if you don't want to use mmaps or even vmaps at all, skip last or last two steps. If this is not the first time you are creating server-side maps (you are re-generating/updating them), I HIGHLY recommend deleting ALL old server-side maps and completely replacing them with new ones, so no old files remain there. Thats all, copy/upload your maps, vmaps and mmaps folders to your server's data folder and everything should work fine and be up-to-date. A little note: the newest version of TC2 seems to be working with some new server side files, called cameras. They are supposed to be extracted with maps. If thats what your extractor's have created, just put them into server's data folder as well ofc.
-
I have an older, czech YT channel, but as most of you don't speak czech, I have decided to start a new, ad-free english YT channel. You will be able to find video versions of all kinds of WotLK WoW modding tutorials there or you can request one to be created. Those tutorials are meant to be noob-friendly and easy, so you can start as easily as possible. I will also create some timelapse videos later to help promoting WoW modding in general. I hope this will be helpful to our community. You can tell me what kind of videos you would be interrested in HERE.
-
Ještě jedna věc, pokud textury convertnete do BLP za použití BLiPsteru se zaškrtnutým Clothing Texture, nepotřebujete ukládat textury v indexovaném módu, což dělá hodně věcí snazšími.
-
Herní klient a server používají kromě známější serverové MySQL databáze (nebo přesněji databází) ještě jednu, klientovou databázi, která je uložena v souborech s koncovkou .dbc - odtud tedy označení DBCčka. DBCčka jsou více méně obyčejné tabulky s řádky a sloupci. Mají 2 hlavní úskalí a pak ještě drobnější třetí. Neexistuje editor, který by uměl všechna DBCčka bez chyby otevřít, upravit a uložit. Každý si alespoň s některými neporadí. Neexistuje editor, který by ovládal masové úpravy (např. nastav všem řádkům co mají v poli č.5 hodnotu 50 do pole č.6 hodnotu 150). Tohle jde částečně obejít konverzí do jiného formátu (např. CSV), na který již existují profesionálnější a normálnější editory, ale osobně jsem ještě neviděl takový konvertor, který by byl 100% spolehlivý. Editory DBC neoznačují (nebo případně občas označují, ale často naprosto špatně nebo neúplně) názvy polí v DBC tabulkách, případně jim dávají názvy, které vám řeknou velké kulové. Pracovat v DBC znamená prakticky pořád procházet dokumentaci na naší vývojářské wiki. Návod vypadá dlouze a složitě, ale nenechte se vyděsit a odradit, po pravdě si ale většinou (a většina z vás) vystačíte jen s jedním primitivním editorem, ve kterém jsou (bohužel) jen naprosto základní a stejně primitivní funkce. Trik je zde spíše v tom vědět co, kde a na co upravit, abyste dosáhli chtěného výsledku, než v nějakých pokročilých technických schopnostech. Potřebné programy MyDBCEditor DBCUtil Taliis DBC Editor Potřebné počáteční znalosti Předpokládá se, že jste si prošli Obecný přehled pojmů a systému hry, Instalace testovacího serveru (nebo máte k dispozici server, na kterém můžete pracovat) a Vytváření a editace MPQ archivů. Jak na DBC obecně Doteď jste si jen hráli s přípravou, nyní ale už budete schopni reálně dělat klientové úpravy. Než se na ně vrhnete, udělejte jeden, poslední přípravný krok; vytvořte si svůj pracovní adresář, kde budete mít všechny své upravené a pracovní soubory. Můžete mít jeden společný adresář pro všechny své projekty, nebo více adresářů pro jednotlivé projekty, to je čistě na vás, ale tak či onak začněte na jednom. Já mám na příklad, bez většího matlání, složku "Noggit" na ploše. V té mám úplně vše a stačí mi to ke spokojenosti. Ve svém pracovním adresáři si vytvořte složku DBFilesClient (název není povinný ale doporučený kvůli Noggitu, ke kterému se dostaneme někdy příště). Taktéž tam doporučuji ještě vložit složku DBC, ve které budete mít zálohy všech blizzlike DBC. Ty jste si buďto vyextrahovali sami v 3. díle těchto návodů, nebo si je můžete vypůjčit z návodového balíčku, který je ke stažení v 2. díle (složka Blizzlike335aEnGBDBCs v balíčku). Máte blizzlike DBCčka, máte adresář kam si budete dávat svoje upravené verze blizzlike DBCček, je čas se pustit do editování. Určete si, co chcete upravovat. Podle názvů u většiny DBCček poznáte, na co asi jsou. Řekněte si, co chcete udělat (na příklad vytvořit displayID pro NPCčko) a hledejte. V našem modelovém příkladě budete chtít upravit DBC CreatureDisplayInfo. Jakmile najdete DBC, ve kterém se chcete hrabat (nebo pokud jste našli nějaké DBC, které vás z nějakého důvodu zajímá a nevíte, na co je), jděte na bod 2. Otevřte si Google a do vyhledávače zadejte ideálně celý název vašeho DBC (ideálně i s koncovkou .dbc) a najděte si k němu dokumentaci. Dávejte přednost WoW Dev wiki, je ve správě komunity Modcraftu a najdete v ní obvykle nejvíce (korektních) informací. Dávejte si pozor, abyste koukali do té části dokumentace, která je pro vaši verzi hry (tedy pro většinu to bude 3.3.5a rev 12340). Nepovažujte ji však za svatou, občas v ní něco chybí nebo je něco trochu chybně. Dávejte si také pozor na číslování sloupců, některé editory a články na wiki číslují 1. sloupec jako 0, jiné jako 1 a tím se vše posouvá. MyDBCEditor může na a z zero-based číslování přepínat. Zkopírujte si DBC, které chcete editovat, do DBFilesClient, tedy adresáře na upravená DBCčka. Ještě jednou doporučuji mít vždy snadno po ruce zálohu těch blizzlike a mít je skutečně striktně oddělená od upravených. Upravte DBC za pomocí jednoho z níže uvedených programů. Podle dokumentace většinou poznáte, co je na co a co jak funguje, pokud si nevíte rady, vždy se ještě můžete podívat, jak je uděláno něco blizzlike. Používejte techniku tzv. reverse engineeringu - sledujte hotové věci a postupně rozebírejte část po části, jak jsou vlastně poskládané. Tak se naučíte ve WoWku nejvíce. Upravená DBC přijdou do vašeho vlastního MPQ patche (viz. 4. díl návodů) do cesty /DBFilesClient/, pokud úpravy vyžadují, aby bylo změněné DBCčko k dispozici hernímu klientu (tedy zejména pokud jsou úpravy vizuálního rázu). U úprav, které se nějak týkají mechanismů ve hře, musíte DBC vložit do složky dbc ve složce s daty, kterou používá serverový emulátor. Nikdy neuděláte chybu, pokud svým upraveným DBCčkem přepíšete blizzlike/starší verzi DBCčka jak na serveru, tak ve hře, tedy ve vašem patchi. DBC úpravy na serveru vždy vyžadují restart serveru, aby se správně projevily. Některé úpravy, jako například zmíněná tvorba displayIDček NPCček, vyžadují také nějaké úpravy v databázi. Na databázi platí stejný postup jako na DBCčka - prohledejte tabulky, podle názvů a dokumentace dohledejte, které jsou ty, které vás zajímají a upravte je. Návod na to, jak se pracuje s MySQL databázemi tady uvádět moc nebudu, protože jednak nejsem žádný odborník na MySQL, druhak potřebné základy už jsou zmíněny v 3. dílu návodu, kde se během přípravy databází naučíte prakticky vše, co potřebujete do začátku. Je rozhodně užitečné se časem naučit i co nejvíce z jazyka SQL. Malý tip k hledání správných tabulek: pokud nevíte, kde je něco uloženo, nahlédněte do dokumentace tabulky, která danou věc využívá. NPCčka jsou z velké části v creature_template ve world databázi. Pokud víte tohle, můžete se podívat do dokumentace creature_template, kde zjistíte, že modelid NPCčka jsou v creature_model_data ve world databázi. V dokumentaci k této tabulce už byste měli najít odkaz na to, že je zde používáno CreatureDisplayInfo.dbc. Když půjdeme ještě dál, zjistíte, že toto DBC používá také nějaká data z CreatureModelData.dbc a CreatureDisplayInfoExtra.dbc. WoW je hodně propojené - drtivá většina tabulek v DB odkazuje na další tabulky v DB a na alespoň jedno DBC, drtivá většina DBC pak odkazuje ještě na alespoň jedno jiné DBC. Vzniká tak rozsáhlý systém vzájemného odkazování se z tabulky na tabulku. Často je třeba projít až několik referencí, než se dostanete k místu, kde je upravováno, co chcete upravit. WDBX Editor WDBX Editor jsem zatím neměl osobně čas pořádně otestovat, ale zatím vypadá velice, velice slibně. Pokud jste konzervativního typu, používejte MyDBCEditor, v opačném případě můžete zkusit sáhnout po tomto. Zatím není v mém balíčku. MyDBCEditor MyDBCEditor je mým preferovaným editorem pro úpravy DBC. Je nejspolehlivější, dokáže nejvíce DBCček otevřít, upravit a uložit aniž by je nějak poškodil či bugnul. Ostatní editory a cesty, jak upravovat DBC, vám mohou někdy usnadnit práci a mohou fungovat v případech, kdy MyDBCEditor selže (některá DBC totiž na příklad vůbec neumí otevřít, hodí u nich error), nicméně pro změnu běžne bugují DBCčka, která v nich uložíte. Proto je preferovaný tento. MyDBCEditor má dvě hlavní vady, pomineme-li, že nedokáže otevřít úplně všechna DBC. Nepodporuje žádnou cestu jak dělat jakékoliv masové úpravy - tedy žádné scripty, podmínky, hromadné příkazy, dokonce ani napsání stejné hodnoty do sloupců - zapomeňte na podobný "neskutečně nadstandartní" luxus. Čeká vás nimrání se jedno políčko po jednom políčku. A druhá věc je fakt, že MyDBCEditor nemá žádné klávesové zkratky. Pokud chcete na příklad zkopírovat řádek, musíte kliknout pravým na řádek, pak kliknout na Copy Row a pak napsat číslo řádku, kam se má kopie hodit. Tedy hodně štěstí s vytvářením i třeba jen hloupých 50ti nových řádků. Omlouvám se za dávku arogantního sarkasmu, ale MyDBCEditor je jednoduše peklo na zemi, a co je nejhorší, je pořád prakticky to nejlepší, co máme. Ještě poznámka na závěr, v MyDBCEditoru se spoustu hodnot zobrazuje zapsaných v hexadecimální (šestnáckové) soustavě. Mnohé bitové masky, ale i některá normální čísla se tak zobrazují a naopak, některé bitové masky se kdo ví proč zobrazují jako normální čísla. Pokud ale někde nějaké číslo upravujete nebo vyplňujete, vždy zadávejte desítkovou verzi čísla. O číselných soustavách a o tom, jak se pracuje s bitovými maskami (nebo také flagami) je poslední sekce tohoto článku. Níže jsou alternativní cesty, jak DBC soubory upravovat. Před zvolením jakékoliv z nich doporučuji si udělat zálohu DBC, které se chystáte upravit. Tyto cesty totiž mají rozhodně větší než zanedbatelnou šanci DBC nějak poškodit během ukládání. Taliis Pokud vám nějaké DBC nejde otevřít v MyDBCEditoru, záložní cestou je Taliis. Ten najdete v návodovém balíčku ze složce Nezarazene. Taliis je napsaný v Javě, takže ji budete potřebovat k jeho spuštění. Tento program sice dokáže otevřít více různých typů souborů a umí všechno možné, problém je ale v tom, že je silně zastaralý, dělaný pro TBC. Většina věcí v něm tedy nefunguje a DBCčka v něm upravované se nezřídka bugnou, proto jej berte jen jako záložní, používejte jej s opatrností a dělejte si zálohy. Taktéž se může stát, že se bugne i přímo Taliis a nejde v něm DBCčko upravovat apod. - pár restartů aplikace a pokusů znovu mi tohle zatím vždy dokázalo vyřešit. DBCUtil DBCUtil je konvertor, který vám DBC, které na něj přetáhnete myší, upraví na CSV soubor. CSV je jednoduchý typ tabulky, podobně jako je třeba TXT jednoduchý typ textového souboru. Kromě toho, že můžete CSV upravovat ve WordPadu, poznámkáči nebo čemkoliv podobném na něj existují také editory, které jej otevřou jako tabulku. Tyto editory dokonce podporují i (mnohdy i dost pokročilé a hezké) hromadné úpravy a mělo by také jít dostat CSV přímo do MySQL serveru jako DB tabulku. Vše věci, které se mohou velice hodit. CSV soubor přetažený myší na DBCUtil je zase konvertován na DBC verzi. Jaký je v této cestě jak upravovat DBCčka háček? Více méně jen ten, že DBCčka vytvořená DBCUtilem občas nefungují jak mají nebo nefungují vůbec. To jde s trochou štěstí opravit, pokud se vyznáte přímo ve struktuře DBC a ovládáte úpravy skrze hexa editory, ale to je čistě něco pro programátory. Když už to tady naťukávám, dokumentace ke strukturám jednotlivých souborů užívaných ve WoW také najdete na WoW Devu. Kdyby se někdo měl k sestavení skutečně pořádného DBC editoru, má od komunity snad 1000 sušenek. Pokud chcete jen upravit jedno číslo někde v jednom řádku, je konverze do CSV a pak zpátky zbytečně zdlouhavá. DBC Editor V podstatě obdoba MyDBCEditoru, fungující velice podobně, jen s tím rozdílem, že ovládá alespoň úplně základní seřazování řádků podle hodnot v jednom sloupci. DBC Editor však bohužel občas blbne, viděl jsem jej několikrát poškodit DBCčko během ukládání, což mi MyDBCEditor nikdy neudělal, pokud něco už dokázal alespoň otevřít. V praxi jej vůbec nepoužívám a sem jej dávám spíše jen pro pořádek a jako naprosto záložní cestu. Na závěr něco k bitovým maskám Věc, se kterou lidé, kteří nemají zkušenosti s programováním, často zápasí, jsou bitové masky. Najdete je v dokumentaci označené jako bitMask u typu proměnné ve sloupci. Někde jsou také označovány jako takzvané flagy. Pokud máte zkušenosti zejména s úpravami NPCček a částečně i itemů v DB, jistě jste se s nimi už setkali, i když o tom třeba nevíte. Bitová maska je vždy celé číslo, které vyjadřuje, které možnosti vyjádřené maskou jsou "zaškrtnuté", a které ne. Jako modelový příklad použijeme třeba hratelné rasy.: Human Orc Dwarf Tyhle 3 nám budou pro ukázku stačit. Budeme mít bitovou masku, která nám každou z těchto 3 možností buďto zapne, nebo vypne. Přiřadí ji tedy 0 (vypnuto), nebo 1 (zapnuto). Z našich 3 možností některé náhodně označím jako zapnuté: Human - 1 Orc - 0 Dwarf - 1 Dejme tomu, že naše bitová maska vyjadřuje, jaké rasy mohou používat item. Náš item můžou používat lidé a trpaslíci, ale orkové ne, mají nastavenou 0. Problém systému, který je výše je ten, že pro 3 možnosti potřebujeme 3 políčka, do kterých napíšeme 0 nebo 1. Pro 10 možností bychom potřebovali těch políček 10. Bitová maska nám vše zjednoduší do jednoho políčka, a to následovně.: Hodnoty z masky se zapíšou od poslední po první za sebe. Tedy nejdříve hodnota u trpaslíka, pak u orka a pak u člověka. Tedy 1 0 1. Vznikne nám tak jedno číšlo. Toto číslo je v binární soustavě. Než začnete vyděšeně řvát, k čemu je binární číslo a že jim nerozumíte, pokud jste se s nimi nikdy nesetkali, převést binární číslo do klasického, decimálního, na jaká jsme zvyklí, je velice jednoduché. Každou cifru v čísle použijete jako číslo u řádu. Malinko odbočím, ukažme si třeba číslo 153. Toto číslo můžeme rozložit na řády jako 1 stovka, 5 desítek a 3 jednotky. Když chceme toto číslo zase složit, stačí jen počet u každého řádu vynásobit hodnotou toho řádu - tedy 1×100 + 5×10 + 3×1 = 153. A úplně stejně to jde i u jiné než desítkové soustavy. V binární (dvojkové) soustavě vše funguje stejně, jen máme jiné hodnoty řádů. Jednotky jsou všude jednotky, ale místo desítek máme dvojky, místo stovek čtyřky, místo tisíců osmičky... šestnácky, 32ky, 64ky... A tak dále. Takže číslo 1 1 1 0 1 je v desítkové soustavě 1×16 + 1×8 + 1×4 + 1×0 + 1×1 = 29. Pokud chápete tohle, je dost jednoduché zjistit, co je číslo 1 0 1 v desítkové soustavě - je to 5, jedna čtyřka, nula dvojek a jedna jednotka. Číslo 5 vložené jako hodnota do bitové masky znamená, že 1. a 3. možnost jsou zapnuté, všechny ostatní vypnuté. Je tu ještě jedna výjimka (tedy, ona to žádná výjimka není pokud rozumíte problematice z pohledu programátora, ale pro laika to nazývejme výjimkou) pro usnadnění. Hodnota -1 znamená vše zapnuto. Proč tohle ukazuju? Mno, protože bitmapy nebo flagy se používají velice často. Podívejme se třeba na AreaTable.dbc. V tomto DBC se nastavují názvy lokací v mapě a jejich další nastavení. Můžete si všimnout, že sloupec číslo 5 je označený jako Flags s tím, že jednotlivé flagy, možnosti k zapínání a vypínání v bitové masce, jsou vypsány a vysvětleny níže. V tabulce nadepsané "enum AREATABLE_FLAGS" jsou všechny tyto možnosti napsány pod sebou. Čísla, která jsou u jednotlivých možností jsou pro zkušenější s převody mezi číselnými soustavami usnadněním - jsou označena na začátku 0x, což vyjadřuje, že jde o čísla zapsaná v hexadecimální (šestnáckové) soustavě. Pro vás budou ale asi jen ošklivě matoucí. Bystřejší z vás si odvodí podle návodu k binární soustavě, jak funguje hexadecimální (tip pro opravdu hloubavé, ale vysvětlovat to tu už ani nebudu - každá 1 pozice v hexadecimální soustavě se dá zapsat přesně 4mi pozicemi v soustavě binární, tedy 0x10 je 0 0 0 1 0 0 0 0, tedy 1×16 = 16), ti méně matematicky založení si mohou prostě ručně odpočítat u každé možnosti k zapnutí, kolikátá je. Řekněme, že budu chtít, aby měla má zóna zapnuto "AREA_FLAG_SNOW", "AREA_FLAG_ARENA" a z nějakého důvodu i "AREA_FLAG_SLAVE_CAPITAL". Chci sněžnou arénu co je hlavní město otroků. SNOW je 1. možnost, SLAVE_CAPITAL je 4. možnost a ARENA je 8. možnost. Binární číslo píšu odzadu (nezapomínat) a bude mít tedy 1čku na 1., 4. a 8. místě od zadu. Tedy 10001001. 9. a další možnosti zapínat nebudu, takže začátek čísla by byla jen dlouhá řada 0, nemusím ji tedy ani psát. 10001001 převedu do desítkové soustavy, tedy na 1×128 + 1×8 + 1×1 = 137. 137 je číslo, které zapíšu do 5. políčka v DBC, a to bude vyjadřovat, že zóna, ke které to napíšu, je SNOW, SLAVE_CAPITAL a ARENA. Drobný tip: Truice, pokud jej máte, počítá hodnoty bitových masek za vás, pouze v něm zaškrtáváte možnosti. Můžete si přes něj výpočty hodnot usnadnit.
-
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ý. Spusťte MPQ Editor. Dejte New MPQ (ikonka bílého listu vlevo nahoře nebo možnost v menu File). 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. 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. Další možnost nechte v prvním okně prázdnou. V dalším okně nechte Create empty MPQ. 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. 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.: VŽDY mějte zálohy všech vašich dat, včetně těch blizzlike. 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.
-
Mít alespoň 2 realmy je často velmi praktické, a to především pro servery otevřené veřejnosti, kdy je jeden server ostrý a druhý testovací. Návod slouží jen jako nástavba ke zbylým dvěma návodům pro Windows a pro Linux. Kompilace První věc, kterou začneme, je otevření si cesty, kam nám CMake nakonfiguroval připravené zdrojáky. Pokud jste následovali návod pro Windows, měla by to být složka C:\TrinityCore\cmake, u Linuxu /root/TrinityCore/cmake, pokud jste si cesty neměnili. Obsah této složky vymažte, tak, aby byla prázdná. Nyní můžete postupovat stejně, jako při prvotní instalaci. Otevřete si CMake, nechte jej nakonfigurovat zdrojáky. Tentokrát si budete muset však velmi opatrně pohlídat cesty. Musíte zvolit jinou cestu, do které se budou servery instalovat a ve které budou mít konfiguráky. Příklad upravené konfigurace na Linuxu: $ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/trinity/server2 -DCONF_DIR=/home/trinity/server2/etc -DLIBSDIR=/home/trinity/server2/lib Pouze jsem připsal 2ky za server. I Windowsu by mělo stačit v oknu CMaku jen poupravit kolonku "Where to build the binaries". Pak zase spusťte kompilaci (tedy Visual Studio nebo příkazy make a make install). Instalace databáze Vytvořte si druhou characters a world databázi, na příklad characters2 a world2, stejně jako jste vytvářeli databáze první (případně je můžete vytvořit jako kopie těch prvních, pokud nechcete výchozí blizzlike). Nezapomeňte se ujistit, že uživatel trinity má do obou nových databází plný přístup. Konfigurace Kompilace vám vytvoří druhý, úplně samostatný emulátor. Authserver můžete smazat, nebudete jej potřebovat, stejně tak jeho konfigurák. Vlezte si do konfiguráku worldserveru a nastavte jej obdobně, jako konfigurák prvního realmu. Všimněte si, že jsme nevytvářeli druhou auth databázi - ta bude pro oba realmy společná a tedy v konfigurácích úplně stejná. Také budete muset nastavit jiný port, na kterým worldserver poběží. Výchozí je 8085. Váš druhý realm musí mít jiný, třeba 8086. Taktéž přepište ReamID. Příklad.: RealmID = 2 LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth" WorldDatabaseInfo = "127.0.0.1;3306;trinity;trinity;world2" CharacterDatabaseInfo = "127.0.0.1;3306;trinity;trinity;characters2" WorldServerPort = 8086 Dále navštivte auth databázi, tabulku realmlist a přidejte do ní nový řádek pro nový realm. Vyplňte správně ID realmu a port (volili jsme 2 ID a port 8086, ale obdobně tak můžete činit i pro další realmy s ID 3 a portem 8087 atd.). Menší tip, allowedSecurityLevel uzavře realm všem, kteří nemají dostatečná oprávnění (2ka je pro TrinityCore GM). Příklad.: Linuxový restarter Pokud provozujete server na Linuxu, budete jej ještě chtít přihodit do restarteru. Zde by mělo být celkem jasné, co je třeba udělat, je třeba vytvořit rest-world ve složce se spouštěcím souborem worldserveru a trochu poupravit soubor, ze kterého všechny restartovací scripty spouštíte. Pro jistotu ale příklad podoby funkce start v souboru ve složce /etc/init.d s názvem mangos, pokud jste následovali v Linuxovém návodu vše doslovně. start) log_daemon_msg "Starting Trinity Realm & World daemons.." screen -dmS realmlist sudo sh /home/wow/server/bin/rest-realm sleep 1 screen -dmS world sudo sh /home/wow/server/bin/rest-world sleep 1 screen -dmS world2 sudo sh /home/wow/server2/bin/rest-world sleep 1 screen -dmS world_myth sudo sh /home/wow/server_myth/bin/rest-world log_end_msg 0 ;; A to je vše, máme hotovo.
-
Pro někoho tohle bude otravou, pro někoho velkou úlevou - návod na Linux bude počítat s tím, že jste v životě neviděli konzoli Linuxu ani dálkové přístupy na VPS server, na který budete s nejvyšší pravděpodobností core instalovat. Návod vypadá šíleně, ale ve výsledku pro vás bude jen opakovaným kopírováním mnou připravených příkazů. Předpokládám, že si zkusíte nejdříve nainstalovat testovací Windowsový server u sebe a že pak si, s nejvyšší pravděpodobností, někde pořídíte VPS s Linuxem. Pokud jde o výběr konkrétního Linuxu, nikdy jsem neměl důvod si stěžovat na Debian. Na jiné se můžou některé kroky v návodu trochu lišit a budete si muset sami dogooglit v čem. Pokud jde o HW nároky serveru, na disku zabere i se systémem z pravidla něco mezi 7 a 10GB, RAM stačí 4GB a CPU doporučuji alespoň dvoujádro o taktu alespoň 2.5GHz. Takovýto stroj by vám měl naprosto bez problémů utáhnout 100 hráčů online, pro větší servery si budete muset konfiguraci HW odhadnout a ideálně i vyzkoušet sami, nemám s takovými projekty vlastní zkušenosti. Potřebné programy Nalinkované v samotném návodu, případně v návodu sesterském. Potřebné počáteční znalosti Předpokládá se, že jste si prošli předchozí části tohoto návodu a máte základní přehled, jak funguje TrinityCore2 server. V ideálním případě jste také již prošli sesterský návod pro Windows. Jak na dálkový přístup Na přístup do serveru budeme potřebovat 2 programy, prvním je PuTTy, přes který polezeme do příkazového řádku, druhým je WinSCP (pokud jste více spřátelení s jinou alternativou jako Filezilla, klidně použijte tu). V obou si nastavte IP vaší VPS, port 22 a zkontrolujte, že máte u PuTTy connection type SSH a u WinSCP přenosový protokol SFTP. Ve WinSCP také vyplníte login (admin je z pravidla root) a heslo (to dostanete od poskytovatele při zřízení služby). Údaje pro připojení si v obou můžete uložit. Pro jistotu screen.: WinSCP vám bude sloužit pro nahrávání dat, která server potřebuje, a dále pro úpravu souborů. PuTTy vás provede instalacemi. První co budete chtít pravděpodobně udělat, je změnit si heslo, které vám nastavil poskytovatel. Značka $ bude od teď vždy označovat příkaz, který přijde do konzole (tu značku tam nekopírujte, do příkazu nepatří, ale u příkazů přes více řádků vám bude v návodu přehledně rozlišovat, kde začíná další). Napište do konzole následující příkaz, stiskněte enter a vyplňte staré a pak 2x nové heslo, až je po vás systém bude chtít.: $ passwd Poznámka: Pokud si u sebe v počítači dáte něco na ctrl+c, do konzole to nakopírujete přes shift+insert. Opačně, z konzole kopírujete přes ctrl+insert a pak do počítače vkládáte už přes klasické ctrl+v. Poznámka 2: V Linuxu jsou na rozdíl od Windowsu rozlišována velká a malá písmena (hlavně v názvech složek/souborů apod.), pozor na to. Příprava před kompilací V první řadě si zaktualizujte aptitude.: $ aptitude update Pokračovat budeme vytvořením druhého účtu do systému, který bude mít zvýšená práva, avšak nebude na úrovni roota (volně přeloženo, trochu "bezpečnější" účet než root na to, abyste jej např. půjčili někomu, kdo vám se serverem pomáhá apod.). Rovněž se nedoporučuje nechávat běžet servery přímo pod účtem root. Dále si nainstalujeme sudo. Během instalací všeho možného většinou dostanete otázku <Y/n>. Napište do konzole vždy Y a zmáčkněte enter. Příkazy posílejte postupně po jednom. U sudo adduser si zvolte libovolné jméno nového uživatele, já použiji třeba trinity. $ aptitude install sudo $ sudo adduser trinity $ sudo adduser trinity sudo Máme účet, na kterém server pojede, až bude fungovat. Nyní je na čase dát dohromady samotné TrinityCore2. Nakopírujte do konzole následující 3 příkazy.: $ sudo apt-get install openssl libssl-dev mysql-server mysql-client libmysqlclient-dev libmysql++-dev libreadline6-dev $ sudo apt-get install openssl libssl-dev mysql-server mysql-client libmysqlclient-dev libmysql++-dev libreadline6-dev $ sudo apt-get install libboost-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-iostreams-dev Během instalace MySQL budete tázáni na root heslo do databáze. Zvolte si nějaké, které nezapomenete, budete jej potřebovat později. Nyní máte vše potřebné ke kompilaci. Zdrojové kódy a kompilace Následující příkazy vás vrátí do kořenového adresáře pro případ, že byste v něm nebyli a stáhnou vám zdrojové kódy TrinityCore. $ cd ~/ $ git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git A nyní si připravíme zdrojáky na kompilaci. Nastavení u cmaku můžete zvolit i jiné (můžete zvolit např. jiné cesty), nicméně pokud toto čtete, jste začátečníci a nedoporučuji vám se u prvního serveru moc toulat na vlastní pěst s experimenty. $ cd TrinityCore $ mkdir build $ cd build $ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/trinity/server -DCONF_DIR=/home/trinity/server/etc -DLIBSDIR=/home/trinity/server/lib Nyní kompilace a instalace. Místo make -j použijte jen make, pokud máte pouze 1 CPU (což drtivá většina serverů nemá, ověřte si, kolik CPU jader má vaše VPS). U příkazu make -j vyplňte svůj počet jader procesoru, pro mě to jsou 2. $ make -j 2 $ make install Aktualizace coru V případě, že byste chtěli někdy zaktualizovat svoje TrinityCore, běžte ve WinSCP do cesty /root/TrinityCore/build, vše v této složce smažte (to je vhodné udělat před každou kompilací, ne vždy nutné ale pro vás bezpečnější) a pak použijte následující příkazy (zase si případně upravte počet jader CPU či použijte make místo make -j, také si případně upravte cesty a další nastavení u cmaku podle potřeby).: $ cd ~/TrinityCore/ $ git pull origin 3.3.5 $ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/trinity/server -DCONF_DIR=/home/trinity/server/etc -DLIBSDIR=/home/trinity/server/lib $ make -j 2 $ make install Příprava MySQL serveru MySQL už máte nainstalované, nicméně je třeba mít do něj také přístupy, jinak vám je k ničemu.: $ cd ~/ $ mysql -u root -p Vyplňte heslo, které jste si zvolili při instalaci a dostanete se do konzole MySQL. Nyní si vytvořte uživatele (jméno a heslo si zvolte nějaké svoje, pozor na správné umístění ' mimochodem) a dejte mu plná oprávnění.: $ CREATE USER 'login'@'%' IDENTIFIED BY 'heslo'; $ GRANT ALL PRIVILEGES ON *.* TO 'login'@'%' WITH GRANT OPTION; Dále přes WinSCP dojděte do cesty /etc/mysql/, otevřete my.cnf dvojklikem a ověřte si, zda je bind-address = 127.0.0.1. Pokud ano, přepište 127.0.0.1 na IP vaší VPSky, aby byl MySQL server přístupný z vnějšku, ne jen ze systému. Nyní byste měli mít možnost se přes svůj nový účet do MySQL normálně připojit. Pokud ano, dejte si dohromady databázi. Postup je naprosto identický jako na Windows (tedy viz druhý 03 návod). Potřebujete tedy vytvořit účet pro trinitycore, vytvořit auth, characters a world databáze a ty naplnit tabulkami a výchozími daty. Data pro servery a konfigurace Ve složce, kam jste si nainstalovali TrinityCore (tedy pro nás to bylo /home/trinity/server/) nyní budeme pracovat s WinSCP. Měli byste zde mít složku bin, ve které je authserver a worldserver, a dále složku etc, kde máte konfiguráky s příponou .dist, což jsou čistě záložní soubory. Udělejte si kopii konfiguráků (klik pravý tlačítkem a Duplikovat) a odmažte z názvu kopie to .dist na konci. Konfiguráky otevřete. Znak # označuje jen komentář a vše co je za ním až do konce řádku je ignorováno. Needitujte proto prosím řádky začínající #, protože to nic neudělá a jen si dobrovolně odmažete dokumentaci od tvůrců emulátoru. V konfigurácích vás budou zajímat hlavně přístupy do databází. Najděte přes ctrl+f v obou konfigurácích podobný řádek.: "127.0.0.1;3306;trinity;trinity;auth" pro každou databázi. 127.0.0.1 přepiště na IP vaší VPS a ujistěte se, že sedí i ostatní údaje (tedy přístupy pro trinity do MySQL, které jste měli během instalace databází vytvořit). Dále věnujte ve worldserver.conf také pozornost čemukoliv, co nějak souvisí s mmapami a vmapami. Pokud je nebudete chtít používat, vypněte je zde. Můžete také omrknout DataDir a LogsDir, pro případ, že chcete upravit cesty, kde budou uloženy mapy, dbc, vmapy, mmapy a případně logy. Osobně doporučuji tyto cesty nastavit následujícím způsobem.: DataDir = "/home/trinity/server/data" LogsDir = "/home/trinity/server/logs" Další nastavení v konfiguráku můžete alespoň zatím přeskočit a případně si jej projít později. Pro funkčnost serveru tohle postačí. DBC, mapy, vmapy, mmapy Postup pro získání těchto dat je zcela identický jako u Windows (4. část druhého 03 návodu). Jakmile budete mít všechna data, uploadněte je přes WinSCP do cesty, kterou jste v konfigu nastavili jako DataDir. V našem případě tedy nejspíše budete mít na příklad všechna DBCčka v /home/trinity/server/data/dbc/. Nyní je server připravený na spuštění, budeme však potřebovat restarter, aby nám sám znovu nabíhal po restartu a aby nám jel na pozadí. Restarter Na restarter již existuje český návod zde. Jakkoliv je tento restarter trochu prasácký (a ne úplně ideální pro více realmů), já jej používám dodnes a stačí mi ke štěstí. Budete si jen muset přepsat v restarteru cesty tak, aby pasovaly k vám. To, že je psaný na Mangos neřešte - pokud správně přepíšete názvy souborů (a cesty), bude fungovat bez rozdílu i pro TC2. Malý tip, pro vytvoření souborů restarteru vlezte do WinSCP, klikněte pravým tlačítkem myši a dejte Nový, Soubor. Editujte soubory výhradně jen přímo ve WinSCP. Nějaký texťák vytvořený a upravený ve Windows a pak uploadnutý vám vážně nebude fungovat, nebudu vás zatěžovat vysvětlováním proč (pokud to nevíte sami). Závěr Jakkoliv jsem se vynasnažil návod napsat tak, aby i naprostý Linuxový negramot dokázal na Linuxu zprovoznit plně funkční server, důrazně doporučuji si přečíst něco o Linuxu a projít si základními návody k němu. Ryan Chadwick udělal skvělou sérii kterou mohu vřele doporučit, snad se alespoň u ní přenesete přes angličtinu.
-
Jak někteří z vás možná vědí, češi jsou na scéně WoW moddingu (podle nevím jak moc/málo aktuální statistiky) 5. početně nejzastoupenější návštěvníci. Doposud to tak moc nevypadalo, protože jsme neměli vlastní sekci a nikdo ani nevyvinul snahu takovou sekci založit. Přijde mi to jako škoda, proto jsem požádal Steffa o vytvoření našeho místního malého CZ/SK místa na Modcraftu. Jelikož Modcraft je teď více méně neaktivní a zastaralý projekt, přesouvám své návody za asistence Skarna a Corey i sem a budu je aktualizovat zejména zde. Tuto skupinu sérií návodů budu postupně doplňovat a budu se ji snažit držet alespoň relativně aktuální. Považujte ji za vždy tak trochu ve fázi WIP. Časem můžu doplnit také video verze na mém YouTubu, aktuálně již na několika návodech pracuji a jsou k dispozici na mém kanálu. Co se týče mě, vyznám se ve většině věcech spíše povrchně. Nejsem úplně HC programátor (i když studuji IT) a nejsem ani 3D modelář (i když jsem se v tom konečně začal učit). A neumím to ani nějak moc zázračně s 2D grafikou. Vtip je ale v tom, že ke své práci ani jedno běžně na vysoké úrovni nepotřebuji. Drtivá většina věcí se ve WoWku dá nějak upravit a prakticky cokoliv z toho se člověk zvládne sám naučit v rámci pár dní (pokud chce). V nemálo oblastech se může stát, že vám nebudu umět zodpovědět na dotazy složitějšího technického rázu - pevně však věřím, že mě v takových případech doplní kolegové z (nejen) naší scény, kteří se více zaměřili na techniku a "akademickou činnost" ve WoWku, zatímco já jsem se zaměřoval vždy spíše na maximální praktické využití toho, co mám. Jsem level designer - tvořím mapy za užití už hotových aplikací, modelů a textur, a starám se o funkčnost a scriptování obsahu hry v mapě (levelu), a v této oblasti u mě vždy najdete nejvíce informací. Doposud jsem se také omezil jen na nejčastěji a nejsnáze upravovanou verzi hry 3.3.5a, návody k novějším datadiskům pochopitelně nedodám dříve než s nimi začnu nějak pracovat, což logicky znamená, že vám s nimi zatím nemohu ani pomoct. Na závěr tohoto úvodu bych chtěl říct, že se budu snažit psát návody podle sebe, svými slovy a svým stylem. Tato sekce nebude (ne v mém podání) sloužit jen jako překlad jakýchkoliv jiných anglických tutoriálů. Každý děláme spoustu věcí úplně jinak (zvlášť zde). Návody budu psát názorně, prokládat je obrázky a příklady. Není to proto, že vás mám za naprosto tupé blby (i když... :P), ale proto, že chci mít jistotu, že vše pochopíte všichni napoprvé, snadno a správně. Děkuji za pochopení. Také bych rád dodal, že mám velmi omezené zkušenosti s Linuxy a naprosto nulové zkušenosti s OS X, takže v problematice týkající se jakkoliv těchto operačních systémů vám nemohu pomoci (že Noggit je Win32 aplikace a vždy bude vám ale mohu říct bez váhání hned). Pokud budete mít jakékoliv dotazy, návrhy či připomínky, neváhejte zanechat (slušnou a ideálně konstruktivní) zpětnou vazbu. Pokud mě chcete kontaktovat z nějakého důvodu osobně, můžete si mě přidat na Skypu (v profilu), nebo mě kontaktovat skrze PM. Chtěl bych vás jen poprosit, abyste rovnou s přidáním psali, že jste z Modcraftu či MC-Netu, abych si vás rovnou zařadil do správné složky, protože můj Skype je občas šílená spamárna ze všech myslitelných míst a je problém se tam někdy vyznat. Také tu mám už pomalu více lidí, se kterými se musím bavit anglicky, takže zkuste i nějak zmínit, odkud že jste a jakým jazykem že s vámi mám komunikovat. Rovněž chci říct, že vám rád pomohu, ale jen pokud budete už v koncích poté, co jste zkusili problém vážně zvládnout sami. Pokud mě někdo bude zavalovat ideálně naprosto stupidními dotazy několikrát denně, letí do ignoru, nezlobte se, já nemám čas a nervy odpovídat na 15 konverzací denně, ke kterým to dříve pravidelně spělo.
-
Než začneme, většinu všech možných věcí, které se vám mohou hodit, jsem hodil do jednoho .7z packu. Pár scriptů a programů tam zcela určitě chybí a pokusím se je časem doplnit (v tomto směru bych i ocenil návrhy od vás). Také bych rád řekl, že ne se všemi mám své zkušenosti a ne všechny aktivně používám, takže pokud vás nějak vystraší velikost packu nebo počet věcí v něm - neděste se, většinu z toho nikdy nebudete potřebovat a solidní část tak možná 3x za život. Doplním zde také další aplikace, které by se vám mohly hodit, ale nejsou opravdu "povinné". Pokusím se všechny aplikace rozdělit relativně přehledně do několika sekcí, alespoň v rámci možností. Vzhledem k tomu, že s 3D teprve začínám a že programů a scriptů je opravdu hodně, není lehké zde mít opravdu vše a aktuální. Chtěl bych vás tedy poprosit, abyste se nebáli něco připomenout, ať máme tuhle sbírku co nejkompletnější a nejaktuálnější. Na používání jednotlivých nástrojů se podíváme v dalších návodech. DBC Ohledně této sekce vám mohu být kdykoliv plně nápomocen, mám s ní rozsáhlé zkušenosti. Blizzlike335aEnGBDBCs - Pro usnadnění jsem vám poskytl všechna blizzlike DBCčka z mého 3.3.5a enGB herního clienta. Být vámi si vždy držím někde tuto složku zazálohovanou. Druhá cesta, jak získat DBCčka je vytáhnout si je ručně z patchů nebo skrze extraktory dodávané s emulátory serverů. Já vám sem dávám svou složku opravdu jen pro usnadnění vašeho startu s wow moddingem. DBCtoCSV - CSV je textová obdoba jednoduchých databázových tabulek. Výhodou CSV je, že na něj existují profesionální editory a že je velice snadné si na něj napsat i svůj vlastní editor, nebo script na hromadné úpravy, taktéž jej lze dostat do MySQL databáze. Naše editory, které pracují přímo s DBC soubory nejsou úplně 100% spolehlivé a chybí jim možnosti masové editace, což je někdy dost nepříjemná slabina. Navíc není až tak triviální napsat si nějaký script na jejich masové editace. Proto by se vám mohl hodit zde přihozený obousměrný converter DBCUtil. LightMapper - Tento prográmek vám umožňuje nechat si zobrazit libovolnou mapu a v ní užívané nastavení oblohy. Ta se skládá z věcí jako je model užívaný na nebe, nastavení mraků, mlhy apod. Pro práci s oblohou jen těžko postradatelná věc. Spell Editor V2 - Abych řekl pravdu, tento editor nepoužívám k editacím kouzel, preferuji upravování DBC souboru přímou, standartní cestou. Nicméně tato aplikace je velice užitečná k přehlednému zobrazení většiny informací o konkrétním spellu a díky ní tak můžete snáze zjistit, co a kde potřebujete upravit k získání vámi požadovaného výsledku, nebo rychleji zjistit, jak ten či onen spell funguje. Samospásná tahle toolska ale není, protože spelly jsou velice složitý a rozsáhlý systém, částečně kontrolovaný i emulátorem serveru. WDBX Editor - Slibný DBC editor vhodný pro různé verze hry. Zatím jsem jej pořádně nevyzkoušel, ale určitě stojí za okouknutí. DBC Editor - Tento stařičký editor je zde spíše pro pořádek, nikdy jsem jej moc nepoužíval a ani jej nemohu moc doporučit. Vždy si udělejte zálohu DBC souboru, který jím chcete upravovat a používejte jej jen pokud vás ostatní editory u konkrétního DBC zklamaly. Více si vysvětlíme, až se budeme bavit přímo o DBCčkách. MyDbcEditor - Preferovaný DBC editor. Má jen základní funkce, ale je ze všech, které mi zatím prošly pod rukami, nejspolehlivější. Nicméně i u něj jsem již bohužel zažil, že byla některá DBC po úpravě v něm poškozená. Právě proto vám dodávám ještě DBC editor a v jiné sekci umístěný Taliis, jako záložní programy. Herní mapa I s touto sekcí vám bez problému pomohu s jakýmikoliv problémy, je hlavní náplní mé prakticky každodenní práce. ADT Adder - Šikovná věc pro rychlé vytváření ADT souborů, ze kterých je herní mapa poskládaná. Nebýt tohohle, museli byste soubory vytvářet ručně a všechny ručně přejmenovávat, leda byste si napsali nějaký script jako je tento program. FuTa - Používá se např. pro export alpha map. Ground effecty - Zde najdete 2 toolsky, z nichž jednu už prakticky nepoužívám, nicméně hodit se vám bude určitě ta, která ground effecty přidává. Ground effecty generují modely na povrchu terénu (tedy modelová stébla trávy, kamení atd.). GruulMeWDT - WDT soubory jsou nezbytné pro správné fungování mapy ve hře. Pokud budete chtít vytvářet svou mapu, nebo upravovat velikost nějaké stávající, budete potřebovat upravovat WDT soubor dané mapy. K tomu slouží tato aplikace. Alternativou je multifunkční, avšak zastaralý a nespolehlivý Taliis. NoggitBetaTest - Nejnovější verze Noggitu. Zatím nebyla oficiálně vydána a tak doporučuji s ní nakládat opatrně. Některé věci se na ní dost možná ještě více či méně změní. NoggitSDL1.4 - Nejnovější (stabilní) verze Noggitu. Aktuálně je ve vývoji nová verze, která je o hodně lepší v řadě směrů, ale ještě není dostatečně otestovaná. Tu si případně stáhněte sami zvlášť, pokud s tí chcete experimentovat. Rius Zone Masher - Někteří jej preferují oproti kombinaci ADT Adderu a GruulMeWDT. WdtSupplies - Generace (prázdného, rovného) WDL. ADTGrid - může se vám hodit při lepení projektových konceptových map. Odpovídá přesně chunkům a subchunkům na ADT. Modely S touto částí mám zkušenosti teprve začátečnické. Podrobnější informace a odpovědi na další otázky vám tak bude muset poskytnout Alastor nebo někdo jemu podobný, kdo se 3D a hexa editingem zabývá. anim porter - Toolska ke kopírování animací z jednoho modelu na druhý. Pro WoWko nic neznámého, když se rozhlédnete třeba po pavoucích nebo po šelmách, uvidíte, že spoustu různých modelů vlastně používá tytéž animace. Automaty - Všechny možné konzolové scripty pro úpravy modelů. Některé by bylo možné dělat i přes 010 editor, pochopitelně, avšak tyto vám mohou značně ulehčit práci. BlenderWMOplugin - Pro otevírání, vytváření a upravování WMO souborů přímo v Blenderu (bez konverze). M2ModRedux 4.6.1 - Rozšíření pro Blender umožňující pracovat se soubory M2 aniž byste je convertovali do OBJ formátu, se kterým se standartně pracuje. MDLVIS 1.40 - Aplikace k vytváření a upravování MDX a MDL modelů, což jsou zastaralé formáty, nicméně lze je poté dostat do formátu M2. MDX - V této složce najdete convertory z MDX nebo OBJ na M2. WMO Editor - slouží k úpravě doodad setů (předdefinovaných interiérů) WMOček. Občas poněkud nestabilní, ale může se hodit. WMOListFIle - získá seznam textur, M2/MDX a SKINů, které využívají WMO, M2, MDX a ADT ve složce, ve které spustíte script .bat souborem. Užitečné např. pokud vám WMV tvrdohlavě odmítá exportnout veškerý obsah užívaný modelem. Má práce, ozvěte se s případnými problémy. MPQpatche Opět mnou běžně používané věci, ohledně těch mě kdykoliv můžete kontaktovat. FuckItUp - Script pro zašifrování patche do podoby, která je pro běžné uživatele jen těžko otevíratelná. Oceníte jej zejména pokud chcete přidávat do hry zcela nové, vlastní soubory a nechcete, aby si je jakýkoliv ňouma (snadno) vykradl z vašich patchů a použil nebo upravil pro své účely. MPQEditor - Najdete zde dva. Stará verze je pro mě spolehlivá a ozkoušená, nikdy mě nezklamala a pro 3.3.5a funguje perfektně. Novější verze už mi párkrát zničila patch a pokud vím, je dělaná spíše na novější datadisky a Diablo 3. Nicméně můžete se na ni také podívat, jen s ní doporučuji pracovat opatrně a dělat si zálohy. Nezařazené 010 - Použijte scripty a templaty pro práci se soubory. Kombinace .reg a .bat souboru vám protáhne trial licenci na 010 Editor (ten si stáhněte a nainstalujte sami zvlášť). AmarothsToolkit - Testovací verze. Aktuálně jej vyvíjím, bude umět haldu drobných věcí, které vám hodně usnadní život. Omrkněte manuál (je jen v angličtině zatím), pokud si s ním chcete hrát. Obsahuje také už ode mě udělaný full gobový patch. Taliis - Tato aplikace dokáže pracovat se širokou škálou souborů, bohužel je ale už naprosto zastaralá a nespolehlivá. Berte tento program spíše jako záložní, občas se ale může hodit. WMT335a - WoW Machinima Tools se hodí na haldu věcí, hlavně pokud chcete točit videa nebo dělat stylové screenshoty. WMV - WoW Model Viewer budete používat běžně pro export a testování či zobrazování textur a modelů, taktéž pro jejich vyhledávání pro jakékoliv vaše účely, jeden ze základních programů. HxDsetup - Pokud nechcete nebo neumíte používat 010, HxD je o hodně méně chytrá alternativa která se může teoreticky hodit. PuTTy - Pro vzdálený přístup do konzole, třeba na vaši VPS. xyz-hack - Šikovné pro spawn. Textury BLiPster - Tato aplikace slouží jako konvertor mezi BLP a PNG soubory, k tomu není moc co dalšího dodat, nezbytná pro kohokoliv, kdo si chce hrát s texturami. BLP_Photoshop-1.0 - BLP plugin pro Photoshop, který díky tomu pak dokáže BLP otevírat a ukládat bez (bohužel ne úplně dokonalé) konverze. Archiv se pokusím zaktualizovat, protože je zřejmé, že alespoň na některé úkony zde jsou už konečně o něco lepší nástroje. Odkazy ke stažení packu verze 5: https://www.dropbox.com/s/xfei56wcxtlp87y/WoWDevToolsky.7z?dl=0 Pack aktuální k datu: 2.12.2017 Český pack už nepodporuji a zastarává. Odteď vydávám anglické verze (kvůli vývoji anglického YouTube kanálu). Aktuální toolsky co používám najdete odteď zde:
-
Pokud chcete dělat jen úpravy textur, map nebo DBCček, která není třeba nahrát na server, aby se úpravy správně projevily v plném rozsahu (volně přeloženo úpravy jen vizuálních aspektů hry), testovací server nutně nepotřebujete a tím pádem můžete i zvážit přeskočení celého tohoto návodu. Nicméně v rámci pochopení, co jak funguje a co jak lze upravovat doporučuji krok instalace testovacího serveru projít. Pro ostatní, pokud jste opravdu hodně líní, můžete si stáhnout nějaký co nejnovější TrinityCore2 repack a podle návodu k němu přiloženému jej zkusit rozchodit. Já jsem repacky nikdy nepoužíval (jen jednou mangosácký před X lety), takže v tomto směru se mě moc nesnažte kontaktovat, pokud budete mít problémy. Jakkoliv není instalace TrinityCore2 nějak extra složitá, stále bude pravděpodobně tím nejsložitějším, čím si zde projdete, pokud se nerozhodnete celou sérii návodů označených 3kou přeskočit. Já se zde budu zabývat skutečnou instalací nejnovější revize TrinityCore, přesněji získání a nakonfigurování jeho zdrojového kódu a následnou kompilací, vytvořením MySQL serveru, jeho konfigurací a celkovým zprovozněním serveru. Vypadá to šíleně a složitě, ale jednotlivé kroky jsou velice jednoduché. Pravda, pokud jste naprostí začátečníci a v životě jste nic podobného nedělali, může se vám stát, že u některých kroků zamrznete a zprovoznění serveru vám tak zabere dost dlouhou dobu, nicméně jak říkám, jednotlivé kroky jsou poměrně jednoduché, já se je pokusím popsat co nejnázorněji a doufám, že s nimi nikdo nebude mít příliš velké problémy. Nakonec strávíte většinu času jen čekáním, až proběhne nějaká dlouho trvající hromada operací. Abych ještě vysvětlil, proč nevolím repack (přičemž řada jiných vývojářů, i zkušenějších, se s nimi spokojuje). Repacky mají sklon být zastaralé, to je jedna a někdy překážející věc, mnohem důležitější je ale fakt, že stažením a rozběhnutím repacku se naučíte naprosto velké kulové. Není nic nešťastnějšího, než člověk, který se snaží vrtat ve věcech, o kterých absolutně nic neví. Tato série návodů a MC-Net jako projekt celkově vás mají naučit, jak se věci dělají, ne je obcházet a jen stahovat práci jiných. Už jen během spouštění serveru se mnohé naučíte, a nabyté zkušenosti se vám budou hodit jak při vývoji, tak při případném rozbíhání vlastního ostrého serveru pro hráče. Pokud jedete na OS X, nemám vám jak pomoct. Návod jsem se snažil doplnit o snad dostatečné množství názorných screenů, jsou zde na ně pouze odkazy, i bez zobrazených obrázků je tahle zeď docela dlouhá. Tento návod je pro Windows, druhá, Linuxová část, na něj nepřímo navazuje a doporučuji ji případně podstoupit až po této. Původní návod (OS X uživatelé se budou muset spokojit s ním) je zde. Oba návody na instalaci TC jsou (výjimečně) překlady původního návodu. Důležitá poznámka téměř na konec (nebo spíše na skutečný začátek). Každý krok vždy přečtěte úplně celý a teprve pak až jej začněte postupně provádět. Vyhnete se tak nutnosti něco instalovat znovu atd. A úplně poslední poznámka, tento návod nemusí být vždy udržován úplně aktuální. Projděte si hlavně originální návod a sem zabruste jen pokud se vám bude hodit i české vysvětlení a hlavně jakmile dojde na konfiguraci. Potřebné programy Nalinkované v samotném návodu. Potřebné počáteční znalosti Předpokládá se, že jste si prošli předchozí části tohoto návodu a máte základní přehled, jak funguje TrinityCore2 server. Potřebný software Aplikace potřebné na rozběhnutí serveru jsem hned z několika důvodů nehodil do tutoriálového packu, nicméně dodám sem linky k jejich stažení. Vyjma samotného programu k přeložení kódu nezaberou moc místa. Po úspěšném rozběhnutí serveru budete moci drtivou většinu smazat, pokud nebudete chtít emulátor už nikdy aktualizovat. Dejte si pozor, abyste všude nastavovali a vybírali správně svůj typ procesoru a systému (32-bit nebo 64-bit). GitExtensions - Stáhněte si instalátor při instalaci se ujistěte, že máte zaškrtnuté Git, MySYSGit i KDiff. Potřebujete všechny 3. Instalace pak bude pokračovat ve třech fázích, pro každou aplikaci jedna. Všude nechte výchozí hodnoty vyjma Gitu. Na jedné ze stránek budete mít možnost zaškrtnout Run Git from the Windows command prompt. Učiňte tak, jinak vám nepoběží konfigurace zdrojáků před kompilací. Visual Studio Community 2013 with Update 4 - Zde není moc co říct, naše nejotravněji velká aplikace, holt ji budete muset překousnout. Snad jen si dejte pozor, ať stáhnete, co máte, stránka je poněkud nepřehledná. Doporučuji jej hned po instalaci bezplatně registrovat, ať vám to pořád neřve. Pozor, pokud si budete chtít stáhnout verzi 2015, musíte v ní zaškrtnout, že chcete C++ překladač! MySQL Server Community Edition - Náš MySQL server, na kterém pojedou všechny 3 databáze, potřebné pro fungování emulátoru. Stáhněte a nainstalujte si nejnovější 5.6.x verzi. Po instalaci nechte zaškrtnuté Launch configuration wizard (najít tuto konfiguraci dodatečně jinou cestou než skrze instalátor jde, ale většinou hodně mizerně). Při konfiguraci nechte vše ve výchozí podobě, snad jen budete chtít nastavit svůj počítač jako Developer machine a také si nastavte výchozí přístupový účet (root). Heslo si tam nechte klidně klasické root, do vašeho MySQL serveru přes tento přístup stejně nikdo nevleze (pokud nebude u vašeho počítače). SQLYog Community Edition - Náš editor pro databáze. Je možné použít i HeidySQL nebo MySQL Workbench, případně MySQL cli. NEPOUŽÍVEJTE Navicat, ne při nastavování databází. Až se budete hrabat přímo v už fungující a hotové databázi, klidně si běhejte kolem s navikočkou, ale na její prvotní vytvoření a nastavení Navicat nepoužívejte (a na vytváření nebo dokonce nahrávání záloh raději také ne) - byli jste varováni. Boost - Stáhněte si nejnovější Release verzi pro váš operační systém. V instalaci nechte výchozí nastavení (i pro cestu). Pak si otevřete Ovládací panely, pokračujte do Systém a zabezpečení, dále jděte do Systém, Upřesnit nastavení systému (vlevo). V okně, které se vám objeví, klikněte na Proměnné prostředí, pak klikněte na Nová..., a vyplňte: BOOST_ROOT C:/local/boost_1_57_0 Pokud budete mít novější verzi Boostu jak 1.57, na příklad 1.58, vyplníte 58čku místo 57čky. Screen pro ty, které jsem zmátl v té štrece k nastavení: CMake - Stáhněte si nejnovější win32-x86.exe (i pro 64-bit). Při nastavování je možné, že narazíte na alternativní značení pro Visual Studio. 2013 verze je to samé jako verze 12, a to je to samé jako verze MSC 18.0 (co se týče typu CPU a OS, tam už protentokrát volte správně 32-bit nebo 64-bit). Hlavu za to rozbijte mrkvosoftu, ne mě. MySQL dev soubory - Stáhněte si je a dejte někam stranou, budete je potřebovat. OpenSSL - Stáhněte si nejnovější verzi, která NENÍ označená jako Light. Pokud máte 64-bitový systém, možná budete muset stáhnout i 32-bit verzi, i 64-bit verzi (tady si nejsem jistý). Během instalace zvolte, ať se vám DLL soubory uloží do cesty /bin, nikoliv do Windows system directory, abyste je byli později schopni snáze najít. ZeroMQ - 32-bit: http://miru.hk/archive/ZeroMQ-4.0.4~miru1.0-x86.exe, 64-bit: http://miru.hk/archive/ZeroMQ-4.0.4~miru1.0-x64.exe Instalace emulátoru (a jeho aktualizování) První a trochu zmatenou část máme za sebou, teď to, doufám, jednodušší. Začněte tvorbou složky, do které si budete chtít stáhnout zdrojový kód emulátoru. Na příklad C:\Trinity. Klikněte pravým na vaši složku a dále na GitExt Clone... Dále vyplňte: https://github.com/TrinityCore/TrinityCore C:\Trinity 3.3.5 Nějak takto: A nakonec klikněte na Clone. Stáhne se vám zdrojový kód a pár dalších věcí, které budete potřebovat později. Dále potřebujete nakonfigurovat zdrojáky před přeložením. K tomu nám poslouží CMake. Vytvořte si cestu, kde budete chtít mít samotný emulátor serveru, na příklad C:\TrinityCore. Spusťte CMake a vyplňte cestu ke zdrojovým kódům a cestu, kde má být přeložený emulátor uložen. Nějak takto: Pokračujte kliknutím na Configure. Tady vyplňte svou verzi Visual Studia (pamatujete si ještě na poznámku o bordelu ve značení verze?), tedy verzi 2013 nebo verzi 12, je to to samé (a nezapomeňte si dát pozor na 32/64-bit). Klikněte na Finish. Rozjede se ověření zdrojových kódů. Jen projeďte očima položky k zaškrtnutí a zkontrolujte, že je zaškrtnuto TOOLS. Pak klikněte znovu na Configure. A na konec klikněte na Generate. Nyní k samotné kompilaci. Vlezte do složky, kam jste nechali CMake připravit zdrojáky k přeložení, u nás to je C:\TrinityCore. V této složce byste měli najít soubor TrinityCore.sln (soubor typu solution). Ten otevřete za užití Visual Studia. Nějakou chvíli potrvá, než se vše nahraje. V horním menu klikněte na BUILD a tam na Configuration Manager... Vlevo nahoře vyberte u Active solution configuration možnost Release. Vpravo nahoře vyberte svůj typ systému, tedy 32/64-bit. Okno pak můžete zavřít. Ukázka: Nyní klikněte pravým tlačítkem vpravo v okně Solution Explorer na ALL_BUILD a klikněte na Clean. Takto: Pak klikněte znovu pravým na ALL_BUILD a klikněte na Build. Kompilace potrvá řádově až několik desítek minut. Nyní potřebujete serveru ještě sehnat pár věcí, aby fungoval. Začneme DLLky. Tyto 3 potřebujete najít ve zmíněných cestách a zkopírovat je do složky C:\TrinityCore\bin\Release (v našem případě), kde budete mít po kompilaci samotný emulátor.: libmySQL.dll - C:\Program Files\MySQL\MySQL Server 5.x\lib libeay32.dll, ssleay32.dll - C:\OpenSSL-Win32\bin libzmq-v120-mt-4_0_4.dll - C:\Program Files\ZeroMQ 4.0.4\bin Další potřebné soubory dodáme serveru ve čtvrtém bloku návodu. Pokud byste chtěli někdy aktualizovat svoje core, musíte kliknout pravým tlačítkem na původní složku se zdrojáky (naše staré C:\Trinity) a kliknout na GitExt Browse. V něm klikněte na šipku směřující dolů a v okně, co se objeví, klikněte na Pull. Tak zaktualizujete svoje zdrojáky. Pak projeďte celou tuto sekci znovu - tedy spusťe CMake, klikněte na Configure, Generate. Pak otevřete zase solution, dejte vyčistit ALL_BUILD a pak znovu spusťte Build přes ALL_BUILD. Je možné, že budete muset také zaktualizovat svou databázi, na to se podíváme v databázím věnované sekci. Příprava databází (a jejich aktualizace a zálohování) Nyní se pustíme do databází. MySQL server už máte nainstalovaný a většinu věcí k němu už máte staženou společně se zdrojovými kódy emulátoru, ale ještě vám chybí aktuální databáze world. Tu stáhnete zde. Hledáte soubor TDB 335.X kde X je verze (v době psaní návodu je to 59). Otevřete stránku s poslední verzí TDB a stáhněte ji. Spusťte si SQLYog (případně alternativu, kterou jste zvolili místo něj, další popis bude dělaný podle Yogu, ale v jiných editorech bude postup velmi podobný). Pokud se tak nestane automaticky se spuštěním aplikace, zvolte v menu File možnost New connection... a v dialogovém okně, které se objeví, klikněte na New... Následně vyplňte název pro připojení (jakýkoliv, třeba Local). Následně musíte vyplnit další specifikace připojení. Do MySQL Host Address vyplňte IP adresu MySQL serveru. V tomto případě děláte lokální server, takže IP adresa bude 127.0.0.1 nebo LocalHost (je to to samé). Username bude root a Password jste si volili při instalaci MySQL serveru (doporučoval jsem vám zvolit taktéž root). Port je vždy 3306. Vypadat by to tedy mělo nějak takto. Pak se zkuste připojit přes Connect. Mělo by se vám podařit dostat se na MySQL server. Pokud ne, zkontrolujte si údaje, hlavně heslo. V nejhorším přeinstalujte server a tentokrát si dejte větší pozor na zadávání hesla při instalaci. Nyní klikněte pravým tlačítkem myši do levého panelu se stromem databází a v lokální nabídce, která vám vyskočí, zvolte Execute SQL script... V dialogovém okně klikněte na ... a vlezte do následujícího adresáře: C:\Trinity\sql\create\. Zvolte soubor create_mysql, ujistěte se, že máte zaškrtnuté Abort on error (toto ve vlastním zájmu NIKDY neodškrtávejte, dokud nebudete velice dobře vědět, co děláte a co přesně všechno je v SQL scriptu, který aktuálně odesíláte serveru). Klikněte na Execute. Měl by se vytvořit účet pro emulátor s plnými přístupy (login trinity, heslo trinity) a dále 3 databáze; auth, characters a world. Nejspíše je hned neuvidíte - v takovém případě restartujte SQLYog (nebo připojení). Měly by se pak již objevit ve stromu databází v levém panelu. Nyní klikněte pravým na databázi auth, zvolte Import a Execute SQL script... a pokračujte jako v předešlém kroku, nicméně nyní spuťte script auth_database v C:\Trinity\sql\base\. Tímto scriptem vyplníte auth databázi tabulkami s výchozími daty (většina z nich tedy bude prázdná, jde jen o to je vytvořit). To samé udělejte s databází characters - opět pravým na ní, Execute SQL script a tentokrát ve stejném adresáři zvolte script characters_database. Nakonec proveďte to samé i s databází world, na tu aplikujte script, který jste stáhli na začátku v .7z archivu (ten TDB_verze...). Obsahu složky update_only v archivu si při instalaci nové databáze nevšímejte. Zcela na závěr ještě přichází nejotravnější část tohoto kroku. Na vaši world databázi opět pošlete scripty, nyní ze složky C:\Trinity\sql\updates\world\. Aplikujte na databázi všechny scripty v této složce. Scripty v C:\Trinity\sq\updates\characters\ a C:\Trinity\sq\updates\auth\ však NEPOUŽÍVEJTE. Nejsou pro nově nainstalovanou databázi (updaty pro world jsou tedy v tomto výjimkou). V případě, že se pokusíte aplikovat 2x po sobě stejný script, je vysoce pravděpodobné, že vám vyskočí error - ten můžete ignorovat a pokračovat dalšími scripty. Nyní by měly být všechny tři vaše databáze připravené k použití. Ještě se budu věnovat aktualizaci databází. V první řadě si zaktualizujte emulátor, jak je popsáno na konci 2. sekce návodu. Pak se podívejte, jaká je nejnovější verze databáze ke stažení. Pokud je k dispozici novější revize, než je ta vaše, stáhněte archiv 7z. Pokud si nejste jistí, jakou revizi databáze máte na svém současném serveru, najdete ji v databázi world v tabulce version ve sloupci db_version (tabulku otevřete kliknutím na ní, dále klikněte v hlavičce pravého dolního panelu na záložku Table Data). Z archivu si vezměte pouze scripty ve složce update_only a každý aplikujte na příslušnou databázi. Pokud se vám stane, že "propásnete" více verzí, budete muset postupně aktualizovat svou databázi po jednotlivých verzích (takže přechod z verze 56 na 58 uděláte tak, že nejdříve přejdete na 57 a až pak z hotové 57 na 58, nelze přeskakovat). Pouze dodám, že aktualizace databáze obsahuje změny struktury některých tabulek a taktéž změny obsahu některých tabulek. Druhá skupina může být velmi nežádoucí u serveru, který nepoužívá blizzlike databázi (což bude případ většiny z vás), proto si vždy udělejte raději zálohu své databáze před její aktualizací. Zálohu lze vytvořit za pomoci funkce Backup Database As SQL Dump v Export/Backup (při kliknutí pravým tlačítkem myši na databázi). Mnohem více ale doporučuji kliknout pravým do stromu databází, zvolit Create Database a vytvořit si takto záložní databáze. Jména si můžete zde dát libovolná (třeba worldbackup atd.), Database charset doporučuji utf8 a Database collation utf8_general_ci. Pak klikněte pravým na původní databázi, zvolte Copy Database to Different Host/Database... a zvolte PEČLIVĚ svou nově vytvořenou záložní databázi. Takto si můžete vytvořit i několik záložních verzí všech databází a v nich se ve všech bez problému hrabat, porovnávat jejich obsah, strukturu atd. - to se vám může velmi hodit, pokud budete mít problémy s aktualizací neblizzlike databáze. Navicat nabízí svůj systém zálohování tabulek a databází, jednoduchý na použití, ale údajně ne úplně spolehlivý. Poslední přípravy Blížíme se ke konci našeho zdlouhavého tutoriálu. Přejděte do složky, kde máte zkompilovaný emulátor (tedy C:\TrinityCore\bin\Release\. Nejspíše jste si už všimli aplikací mapextractor.exe, vmap4extractor.exe, vmap4assembler.exe a mmaps_generator.exe. Pokud chcete, aby vám server jen "fungoval", můžete v následujících krocích vynechat vše, co se týká mmap a pokud se nepletu, i vmapy můžete ignorovat. Tyto 2 věci jsou pouze volitelné a ve velké zkratce, laicky řečeno, se díky nim budou NPCčka alespoň snažit ve hře tvářit, že vědí, jak vypadá svět kolem nich (a nebudou tedy všude probíhat skrze zdi atd.). Pro testovací lokální server si vystačíte bez nich, jinak se bez nich ale spíše zblázníte. Pokud už máte nějaký svůj patch s vlastní lokací, nebudou vám mapy, vmapy a mmapy správně fungovat ve vašich přidaných oblastech (server nicméně poběží jak má). Této problematice se zde věnovat nebudu, podobné problémy budu řešit v dalších návodech. Vezměte všechny (až) 4 zmíněné .exe soubory a vložte je do kořenové složky svého herního klienta (tedy C:\Program Files\World of Warcraft\ nebo něco podobného). Dále si spusťe poznámkový blok, vytvořte nový soubor, do něj zkopírujte následující: vmap4extractor.exe md vmaps vmap4assembler.exe Buildings vmaps pause Uložte tento nový soubor jako makevmaps_simple.bat (koncovka .bat je důležitá!) do vaší kořenové složky s herním klientem. Nyní spusťte mapextractor a počkejte, než doběhne. Pokračujte spuštěním makevmaps_simple, opět počkejte, než doběhne. Nakonec vytvořte složku mmaps ve vaší složce s WoWkem a spusťte mmaps_generator.exe. Extraktory mohou běžet několik desítek minut až několik hodin (hlavně ten na mmapy), takže si vymezte dostatek času a trpělivosti, protože extrakce umí být dost zatěžující pro počítač. Po dokončení extrakcí zkopírujte složky dbc, maps, vmaps a mmaps do C:\Trinity\bin\Release\. Nyní se podíváme na konfigurační soubory world a auth serverů. Ve vaší složce Release by měly být authserver.conf a worldserver.conf soubory. Pokud tam najdete stejně pojmenované, ale ještě s příponou .dist za .conf, vytvořte jejich kopie (jako zálohy) a .dist pak odstraňte. Oba soubory si otevřete v nějakém textovém editoru, doporučuji WordPad (klasický poznámkový blok je na podobné věci otřesný). Zde si můžete nastavit mnohé funkce, upravit nastavení serveru. Pokud chcete blizzlike server, nemusíte se zde hrabat takřka vůbec (a u lokálního testovacího serveru už absolutně vůbec), jinak budete možná chtít překopat takřka celé konfiguráky odshora dolů. Rozhodně byste ale měli věnovat pozornost nastavením vmap a mmap (v závislosti na tom, zda-li jste je extrahovali a chcete je používat je vypněte, nebo zapněte). Taktéž věnujte pozornost proměnným LoginDatabaseInfo, WorldDatabaseInfo a CharacterDatabaseInfo (používejte ctrl+f na hledání v souboru). Ve výchozím nastavení databáze jste si vytvořili účet trinity s heslem trinity a konfigurační soubory obsahují identické údaje pro připojení (na příklad LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth"). Jak vidíte, používá se jako výchozí IP local, port 3306, login trinity, heslo trinity. U veřejného serveru patrně budete chtít změnit většinu těchto údajů, ale nyní jen vezměte na vědomí, kde se nastavuje připojení emulátoru na databáze. I u lokálního serveru však budete možná chtít občas změnit alespoň názvy používaných databází, pokud budete na příklad chtít spustit server s alternativní (nebo záložní) databází. Viz konec 2. sekce návodu. Někoho pokročilejšího by ještě i u blizzlike serveru mohla zajímat konfigurace exportu logů, která je u konce konfiguračních souborů. Nyní si otevřete v SQLYogu databázi auth a v ní tabulku realmlist. V této tabulce se nastavují připojení authserveru k jednotlivým worldserverům. Opět, pouze berte na vědomí, že zde tato tabulka je a k čemu je. V případě instalace lokálního testovacího serveru s ní nemusíte nic dělat. U serveru, který má být veřejně přístupný, přepište IP adresu ze 127.0.0.1 na IP adresu serveru a pravděpodobně budete chtít editovat i další pole v tabulce. Nyní by mělo být vše připraveno. Spusťte ve složce Release authserver.exe a pak worldserver.exe. Přes konzoli serveru si vytvořte účet do hry. Můžete do ní psát standartní GM commandy. Pro vytvoření GM accountu jsou třeba následující dva.: .account create [nick] [heslo] .account set gmlevel [nick] 3 -1 A následně si otevřete realmlist.wtf a přepište jeho obsah na set realmlist 127.0.0.1 (drobná rada, pokud napíšete vícekrát pod sebe set realmlist [adresa], bude vždy brán v potaz pouze poslední řádek). Nyní by vám měl server běžet a vy byste se na něj měli bez potíží připojit. Pokud se vám jeden či druhý server emulátoru odmítne spustit (respektive se spustí a pak crashne), zkontrolujte Server.txt, Auth.txt a DBErrors.txt. To jsou výchozí logy. Na jejich konci najdete, co crash způsobilo a podle toho můžete většinou bez větších obtíží vydedukovat, co jste zapomněli nebo udělali špatně. Pokud se vám to nepodaří zjistit, můžete mě zkusit kontaktovat a třeba na to přijdeme společně.
-
Náhled Hned na začátku, než se pohneme k praktickým věcem, bych s vámi chtěl dát dohromady alespoň takový obecný náhled na teorii. Z čeho všeho je složená hra, z čeho server, co k čemu slouží a jak je to všechno propojeno, kde to najdete. Chci zde tedy pouze zavést ty nejobecnější a nejzákladnější pojmy, aby i úplný začátečník bez problémů pochopil, o čem tu bude řeč. Pro začátek menší schéma malování s.r.o.: Client Herní klient, tedy hra samotná, aplikace, kterou má spuštěnou hráč, využívá více zdrojů dat.Tato série je pro herního klienta verze 3.3.5a (poslední verze WotLK). Proč tato stařičká verze? Aktuálně je zdaleka nejsnáze upravitelná a nabízí nejlepší podporu serverových emulátorů. Jiné verze hry lze upravovat také, ale narazíte na nemálo nepříjemných úskalí. Podmínky pro práci s nimi se naštěstí pomalu, ale stále zlepšují, já jsem se na ně však zatím nepřesunul a proto se budou své návody omezovat jen na 3.3.5a. Je možné, že do budoucna na novější verzi klienta přejdu a s ní případně začnu pracovat na nové sérii návodů. Abych se vrátil k datům, se kterými pracuje klient. Pro nás budou nejdůležitější archivy dat formátu MPQ (laicky často označované za patche), obsahující data ukládaná v různých formátech, z nichž řada nepatří mezi standartní volně využitelné formáty (jde o soukromé formáty tvůrců hry). Jak vidíte, MPQ soubory obsahují velké množství dalších souborů, ze kterých je utvářena naprostá většina vizuální i obsahové stránky hry jako takové. MPQ soubory najdete v cestě: (cesta k WoWku)/Data A dále v cestě: (cesta k WoWku)/Data/(Locale) Za Locale si dosaďte jazykovou zkratku své hry, na příklad enUS, enGB atd. Herní mapy ADT - každé ADT obsahuje čtverec o straně 533,33 yardů mapy (terén, voda, umístěné modely) WDT - specifikuje, zdali má mapa nějaká ADT (instance, tedy raidy a dungy, mnohdy ADT vůbec ani nemají, jsou tvořeny jen jedním velkým WMO modelem - viz níže) a případně z kolika ADT se daná mapa skládá a jak jsou rozmístěna WDL - obsahuje informace o velmi vzdáleném terénu, podle něj je vykreslován obzor za hranicí, kam hra "dohlédne" načítáním okolních ADT souborů Modely M2 - drtivá většina standartních modelů užívá tento formát, i když byste se mohli setkat i se zastaralým MDX SKIN - obsahují zjednodušené části modelů s nižším LOD (tedy osekané verze pro vykreslení modelu, když je velmi vzdálený), SKINy jsou vždy číslovány dvojmístně hned za názvem (nazev00.skin, nazev01.skin...) WMO - najdete kořenová (root) WMO, to je vždy jedno a pod ním dále je alespoň jedno parciální WMO, jedná se o složitější model, používá se na budovy, instance, jeskyně či celá města, parciální WMO jsou číslována trojmístně za podtržítkem (nazev_000.wmo, nazev_001.wmo...) Textury BLP - všechny textury včetně obrázků pro UI atd. jsou ve formátu BLP CS (client side) DBC DBC - tyto soubory slouží jako lokální databáze obsahující všechna možná data týkající se obsahu světa, v určitých případech mají přednost před SS (server side) DBC, někdy je tomu zase naopak, viz příklady na konci tohoto dílu Interface LUA - programování interfacu (co se stane, když...), z programátorského hlediska "code behind" XML - kódování rozložení vzhledu interfacu (jaký obrázek/model kam umístit) Hudební soubory WAV - MPQ podporuje velmi kvalitní kompresi zvuků ve formátu WAV, ty jsou používány zejména na zvukové efekty ve hře, tedy spíše na krátké zvukové stopy MP3 - obvykle používány spíše na hudbu v zónách OGG - jsou používány spíše na ambience music, tedy na zvuky prostředí (šum vln, poryvy větru, zpěv ptáků...) Server Server se stará o komunikaci herních klientů mezi sebou a dále obsahuje velké množství dat týkajících se jak hráčů, tak herního světa, z nichž většina se nenachází v herních klientech. Co už málokdo ví je, že na serverovém počítači ve skutečnosti jedou minimálně 3 servery zajišťující celkový chod našeho celkového "serveru". Tyto servery dokonce ani nemusí být umístěny na stejném počítači. Další informace jsou dělány podle serverového emulátoru TC2 pro WotLK 3.3.5a, u jiných emulátorů je princip v základu stejný, ale názvosloví se může lišit. Authserver Tato aplikace zajišťuje hráčům možnost přihlašovat se do hry. Kontroluje jejich přihlašovací údaje a pak posílá hráče hernímu worldserveru. Herních serverů může být pod jedním přihlašovacím více, mluvíme pak o více realmech. Jeho IP adresa (případně doménové jméno, tedy "internetová adresa", jak by řekl laik) je užívána v souboru realmlist.wtf k připojení k serveru. Worldserver Herní server se stará o všechny akce hráčů, kontroluje, zda-li jsou "v pořádku", posílá herním klientům data o prostředí, která v klientech nejsou uložena a dále jim přeposílá, co dělají ostatní hráči. Výsledky veškeré činnosti světa (jak ovládané tak neovládané hráči) také ukládá do databáze. Herní server tedy řídí hru samotnou. MySQL server Většinou laicky nazývaný databází, ve skutečnosti však obsahuje vždy minimálně tři různé databáze. Jejich jména jsou volitelná při konfiguraci serveru, zde jsou uvedená jen výchozí (a standartně užívaná). Auth - obsahuje data o účtech hráčů, také všechny bany, informace o připojených realmech a v neposlední řadě přístupy ke všem příkazům (včetně těch GM) Characters - databáze obsahující všechna data o postavách, jejich inventářích, naučených spellech, skillech, o guildách... jednoduše všechen s hráči přímo související obsah, každá realm má vlastní charakterovou databázi World - tato databáze obsahuje všechno týkající se herního prostředí, co není uloženo v klientech, tedy část informací o itemech, NPCčkách, questech, game objectech... a mnoha dalšího SS (server side) DBC DBC - lokální (klientová) databáze je potřebná i pro chod serveru, který z ní taktéž čerpá nemálo dat týkajících se mechanismů hry a herního prostředí, pokud se informace v CS a SS DBC rozchází, mají v některých případech přednost serverová, v některých klientová, viz příklad na konci tohoto dílu Mapy Server nemá na své straně vůbec uloženou standartní mapu tak, jako klient. Tyto 3 typy souborů mu mapu nahrazují a tím mu na příklad sdělují, kde se nachází která lokace na mapě, kde je terén (kvůli pohybu NPCček) atd. maps - především rozložení zón, také umístění vody a jiné věci vmaps - zejména kolize WMOček, kde všude je "indoor" (shazování z mounta, zabránění NPCčkům na vás vybíhat z budov) a jiné mmaps - přesné rozložení objektů a terénu po světě kvůli snaze donutit NPCčka pohybovat se "logicky" a tedy v ideálním případě jen tak, jak se mohou pohybovat hráči (tedy řeší probíhání skrze objekty či levitace ve vzduchu, skákání přes díry/na skály i když je jiná, přirozená cesta nahoru/dolů/kolem) Příklad toho, jak se budou chovat SS a CS DBC soubory, pokud budou odlišné: - v SS DBC existuje displayID pro NPCčko (řekněme třeba hnědý mamut) - v CS DBC je toto displayID přepsáno tak, že obsahuje kočku Výsledkem je, že hráč uvidí ve hře kočku. Server se o to, jak věci vypadají, nestará (pomineme-li kolize spawnutých modelů), jemu stačí jen vědět, že naše displayID vůbec existuje a že jej tedy může použít. Příklad kolize DBCček číslo 2: - v SS DBC je napsáno u spellu Fireball (Rank 1), že bude dávat 100-150 dmg - v CS DBC je napsáno, že Fireball (Rank1) dává 600-1000 dmg Výsledkem bude, že Fireball bude vždy brát cílům něco kolem 100-150 hp (pomineme-li samozřejmě redukce a resistence atd.), ale hráči bude popisek spellu (tedy vizuální záležitost) tvrdit, že spell má dávat šlupky za 600-1000. Stejně by to bylo i s mana costem atd. Server tedy řeší funkčnost mechanismů hry, klient zase vizuální aspekty.
-
Hello there little whelps, there have been quite a lot of requests for transports tutorial and guy who promised that he will write it didn't do so, so I decided I will write this tut for you on my own. What are transports? Transports in WoW are in fact gameobjects which are being moved along a path specified in DBCs, which are quite easy to understand and edit, so this should not be anything difficult even for beginners. Players who stand on gameobject working as transport move together with it, until they leave it. It seems there are 20 blizzlike transports in blizzlike TC2 world database and all are ships and zeppelins, it works quite nice for water and air traveling. Sadly, this system doesn't work very well for ground traveling, I will explain why later. Transport system shares DBCs with taxi (fly/wind path/master) system, and is very similiar to it, with just a few differences. What will you need? - MyDBCEditor (or other WORKING DBC editor, forget Taliis, please) - any editor for MySQL databases - TaxiNodes.dbc - TaxiPath.dbc - TaxiPathNode.dbc TaxiNodes.dbc You can see example of my 2 custom TaxiNodes. These nodes are in fact just to specify where destination lays (docks for example), but they have nothing to do with actual paths which transports will follow. Make sure you enter correct map ID (its in hex here, 0x25 is 37 in dec, and thats ID of map I was using here), but X, Y and Z coords don't need to be really exact. Name is in fact just a note for you and last 2 columns specify entry of creature used as mount for taxi path, but have no effect for transports and thus I left them empty. TaxiPath.dbc This is really fast and simple step, TaxiPath is a connection between two TaxiNodes. Just create a new row with entries of 2 nodes you want to have connected with transport, last column specifies prize for taxi (and we are doing transports, that prize would have no effect even if there was another value than 0). While you can connect only 2 TaxiNodes with one TaxiPath, you may make your transport stop on whatever point of path you wish, it can enter 50 docks and stop there if you want, so both TaxiNodes and TaxiPath aren't important at all - they are there in fact just to make server and client happy and you a little bit more busy. TaxiPathNode.dbc This will take most of your time. You need to specify path which will be followed by transport. Enter (correct) ID of TaxiPath (which connects 2 of your TaxiNodes) and coordinates of each waypoint into #5, #6 and #7 column (you can get your character's coords by command .gps, path on screen belongs to ship, so Z coord was always 0 for me). Don't forget to assign unique point ID in column #3 for every waypoint of your path, otherwise either your client or server may crash (note that first waypoint has ID 0, not 1). You can also notice that I left all other columns 0, they are rarely used and I am not sure what they are for. There are only 2 exceptions, you can notice those 2 rows with values 2 and 10 in #8 and #9 column. In that case, transport stops at that waypoint and waits there for 10 seconds. You can have more than 2 of such points, as I have already mentioned earlier, so your ship/zeppelin can visit as many docks as you wish and wait there as long as you want for passangers.You can try to experiment more with last 5 columns in this DBC, hopefully you will find out how at least some of them work. A few tips and notes for creating a path - Every TaxiPath needs to be made of at least 3 waypoints, otherwise you get crash. - Path itself is made of curves which are being calculated from waypoint positions and distances between them. Its good to keep distances between waypoints even, otherwise you can get unpleasant buggy results. Also don't make too sudden and sharp turns, otherwise your transport can either go very far from waypoints while turning (and even pass through some objects around, and thats obviously quite unpleasant) or bug a little bit and jump/teleport suddenly. - Mark waypoint you have already entered into DBC with some sort of gameobject or NPC while spawning a path. I use wisp NPC Waypoint (entry 1) for this, because it can fly and is invisible for players. You can delete your marks when you are finished. - Make damn sure you don't mistype anything while entering coord values into this DBC. One mistype can send your ship across world and you will be there standing like fool, waiting in docks for ship which is basically never coming, because it is following dozens of kilometres long path. - To make transport follow exact path is very, very difficult, because, like I said, exact path is calculated and calculations are just based on coords of your waypoints. While transport passes waypoints themselves directly, you can't modify its path very easily between waypoints at all. Avoid narrow passages if you can, or create such passages based on already created and finished transport path, not otherwise. For this reason, ground transports just don't work well, they tend to fly above or sink under terrain all the time between waypoints. - While being in transport, players ignore all collision with world around. You can surround for example your island with impassible flags or with some models which can't be passed by players, but they will always pass them in transports. So you can make players to just have to use transports quite easily. - If you wish to make transport teleport players from map A to map B (and thats what basically are mostly transports for in blizzlike setting), just make transport move to some waypoint at map A and then enter a new waypoint with mapID of map B into DBC. Thats whole magic around. - Transports tend to teleport between last and first waypoints of their path. Don't ask me why, I never found out. It seems that transports in fact don't move in circles, they are always respawned after finishing their path. Players are, luckily, not dropped into sea when this happens, but just appear on new transport. Its still a little bit unpleasant effect, especially if you want to have transport travelling around one map without any teleports, but I have never found real solution for this. Just make those last and first waypoints close to each other. Blizzlike transports don't seem to have such problems, I am not sure what is going wrong here. world.gameobject_template You will need to create your gameobject which will be used by transport. Fields which are not noted here don't seem to be important/working and should be left with base values (0/NULL), but again, you are free to experiment. - Entry, do I have to explain anything? - Type needs to be 15 (11 is for elevators, which work with entirely different than transport system). - DisplayID is up to you, which means that transports don't have to be huge WMO ships, you can use even a small M2 boat doodad, if you want to. Just make sure your model has collisions. - Name, again, self-explanatory. - Flags, most transports have flags=40, some have 0, but I would not use 0. - Size can be used other than 1 for M2s. - data0 is ID of your TaxiPath - data1 should be speed but it appears to not work as one would expect. 30 is most common and fine-working value. You can ofc try both lower or higher and see how results will fit to you. - data2 should be some kind of acceleration modifier...? All blizzlike transports with speed 30 have 1 accelRate. - data5, I don't know what this field is for. - data6, specifies ID of group of NPCs spawned onboard and travelling with transport, however, I don't know to what table this field reffers to. - data7, a few transports have value 3481, again, I have no idea what this is for. - data8, a few transports have value 1 and again, I have no idea what this is for. - AIName, ScriptName, you can, obviously, assign any scripts you wish to this gameobject. I have never tryed to assign some, for instance, SmartAI script to transport, but I see no reason why it should not work. One blizzlike transport has SAI scripts. - VerifiedBuild, you should always everywhere use value 12340 (3.3.5a revision number) to avoid any possible problems. world.transports And here we go, the last thing to do is to place our transport here. Make sure you have placed your edited DBCs both into server's data folder and into your client's custom MPQ patch, create a new row in this table with new, unique GUID, enter entry of your transport gameobject, name is just for description. Older TC2 revisions have also period field, which appears to specify how long should core wait to respawn transport (put it on start of path), but it was removed and system seems to obtain that value on its own, automatically.The most easy way to disable transport is just deleting it from this DB table, you don't need to delete its data from DBCs. Your transport should be there, waiting just for you, but it usually takes a few (sometimes dozens) of attempts to make your path smooth, not-running into any terrain or models and clean it of teleport bugs made by too sharp curves or by too big differences of distances between waypoints. Especially making transport really dock properly with proper rotation and position can be pretty terrible task to do. How to create taxi path? Someone asked me about taxi path systems... They are basically the same. You create TaxiNodes (btw again, if memory serves me well, nodes themselves aren't part of paths of taxis), connect them with TaxiPaths (in this case you might also want to specify prize for TaxiPath in copper), spawn TaxiPath which will, in this case, be not a circle, but straight path from point A to point B. And you are, basically, done. Taxi vs transportTaxi pros: + you can make player pay for travelling + you can link taxis to SmartAI scripts (there is action to send player somewhere by taxi) + you don't have to worry so much about boat fitting and sailing around docks without colliding with them, you just need to land on floor and there you go Taxi cons: - player on taxi has no collisions, so hello, boat which has just passed across my face - unlike transport, taxi always connects only 2 points, creating 1 path with 3 docks means creating 2 or 3 TaxiPaths - players can't travel together in taxi - more players travelling together mean more taxis... imagine those 20 boats in one, overlapping group - a map where you select to which TaxiNode you want to be taken never worked for me on maps where no fly masters originaly are, I never found solution, possibly core/LUA issue, I found a way around, you can simply make gossip menu for every fly master where gossip menu options will send you via taxi to wished point, buuut... its not ideal sometimes Transport pros:+ players can play (roleplay?) with each other while travelling together+ can connect multiple places where it stops+ have collisions+ looks nice and realistic, much more than raid of 20 boats Transport cons:- you can't really (easily) make players pay for transportation- can't be (easily) called by SmartAI scripts- path needs to be more properly done around landings- is sometimes somehow inflexible if you want to make one landing temporarily impossible to travel to In general, I found myself still preferring taxi system over transport system, even while taxis have quite a lot of cons. However, taxi system just works better for me while I want to make players pay for travelling and while I want to be able to easily disable some paths from time to time. I also love possibility to assign taxi to SAI script. Being able to have conversation with NPC, during which you will be informed where will you be taken, how long it will take, what hazards are there and so on? Sign me in, especially for RP servers definitely great possibilities. Taxis are also great as part of quests and Blizzard uses them in such manner very often. Its cool and in fact quite simple to make system.
-
Personally probably not interested unless you need jsut Photoshop (not gonna ever install modding tools back again for way too many reasons), but I'd suggest at least some outline of what kind of project it is and what kind of work is expected. "I need help with DBCs, mainly spells" or "I need Noggit work" or "I need C++ coder for changes in the server emu". "It's an RP project" or "Making a PvP fun server" or "Making custom PvE dungeon/raid content"... you get the idea. Imagine a company hiring writing "we need a new employee". I mean, cool but...
-
Game version? If we are talking 3.3.5a (and likely in other builds as well), the skirt is actually a texture type item, unless you want to actually edit the very geoset meshes on the character models, there is no job for you to perform in the 3D modelling department. All you need is create an item (world.item_template, Item.dbc), create a custom item displayID (ItemDisplayInfo.dbc) and make sure to set the item displayID's geosets correctly. For reference, use this: https://wowdev.wiki/DB/ItemDisplayInfo and literally any original blizzlike item which has a skirt on it.
-
For the spells, not sure, has been too long to remember. Kaev's lead should be the right one though. I am posting to toss in one more thing regarding skills - note that there's https://wowdev.wiki/DB/SkillRaceClassInfo which can forbid certain class and race combinations from learning skills. For that reason for example, you may have an issue with alliance races learning horde languages, and vice versa (or there are some other, class-specific skills, as well, such as weapon skills). So, if you choose to do this with skills as well, be aware of this thing. But that's more of a side note.
-
How to Convert PNG to BLP with 1366x768 Resolution (WotLK)
Amaroth replied to Dogtor's topic in Miscellaneous
There's no code in DBC. DBC is effectively a database. There are 2 possible versions of loading screen - 4:3 and 16:9 (the optional wide variant). That's it. You'd have to change the game client's code to add bigger variety. I mean, you can probably make a 4:3 2048x1536 or 16:9 2048x1152 BLPs if you want higher res. That should work. Not entirely sure about what Vlad wrote, theoretically, a 1360x768 BLP should work, afaik any number which can be divided by 8 should (I may be wrong here though). But 1366 definitely won't ever work, that's a constraint imposed by the very BLP format structure. -
That's likely a part of Stormwind's WMO file. You'd need to edit the Stormwind's model, this is not topic for Noggit at all. Search for how to edit WMOs (and pray that you can open, edit and save such a huge model without issues).
-
Iirc this happens if WDT file contains references to ADTs for which no files exist, it's effectively a null reference error. Check whether your WDT really matches the map, and that there are no ADTs marked you ended up not creating.
-
ItemDisplayInfo.dbc - stores display (visual) IDs. Item.dbc and world.item_template - stores references from items to those display IDs.
-
Palletized textures are used for textures applied directly to character models. Item "texturecomponents". Chest, gloves, legs, boots, wrists, belt. Not sure if they are also used for the character skin textures themselves as well, but iirc, yes. How to make them - open PNG in Photoshop, palletize it in it to 256 colors, convert to BLP, done. Or use BLP convertor's GUI feature which palletizes the PNG as part of the conversion, iirc there is some button in ribbon for "clothing textures" or something of sorts.