Instalace MANGOSu na Gentoo Linux Step by Step
Nejprve co budeme potřebovat: nějakého git clienta, subversion clienta, funkční kompilátor (emerge) a webová tridáda (mysql,php,apache), phpmyadmin, funčního klienta na windows a asi 10GB místa na disku.
Počet uživatelů je z pochopitelných důvodů omezen na Vaše železo, takže počítejte s tím, že na strojích typu Intel Pentium si zahrajete opravdu jen s pár přáteli (max 20 lidí)
Nyní již k samotné instalaci:
emergneme git, svn:
emerge -avt dev-vcs/git dev-vcs/subversion
Budu počítat s tím, že máte nastavený systém tak, že vám emerge a podobné služby s ním spojené budou fungovat.
vytvoříme si složku kam si zdrojáky umístíme:
mkdir {moje_cesta_k_source}
cd {moje_cesta_k_source}
můj případ:
mkdir /opt/mangos
cd /opt/mangos
Možná si říkáte proč zrovna do složky /opt je to prosté, jelikož není mangos repositářích a tato složka je v linuxu primárně určena pro programy, které právě nejsou v repozitářích. Proto tedy Vám každý "Linuxák" řekne hoď to do /opt :-) (Linux pro mi prominou je to hodně zjednodušené, ale pro naše účely dostačující, ne ? :-) )
Dále budeme pokračovat stažením samozného Mangosu a všeho potřebného k němu:
git clone git://github.com/mangos/mangos.git source
cd source
Dále budeme pokračovat stažením ScriptDev2 a jeho patchnutím do jádra mangosu:
mkdir src/bindings/ScriptDev2
svn checkout -r 1833 https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/ src/bindings/ScriptDev2
git apply src/bindings/ScriptDev2/patches/MaNGOS-9519-ScriptDev2.patch
Máte-li další patche, tkeré chcete aplikovat do jádra následující příkazy Vám pomohou:
patch -p0 < soubor.patch
git apply soubor.patch
Po opatchování Mangosu, můžeme vesele spustit kompilaci zdrojáku:
mkdir objdir
cd objdir
cmake ..
make
make install
Mysql
Nyní máme první tu jednodušší část za sebou. Mangos Server je připraven ke startu, ale ještě k tomu schází spousta souborů a hlavně SQL databáze.
Mysql předpokládám že máte v pořádku a funkční, pokud ano nebude problém naplnit db tím, co potřebuje mangos:
mysql < /opt/mangos/source/sql/create_mysql.sql
mysql mangos < /opt/mangos/source/sql/mangos.sql
mysql characters < /opt/mangos/source/sql/characters.sql
mysql realmd < /opt/mangos/source/sql/realmd.sql
mysql < /opt/mangos/source/src/bindings/ScriptDev2/sql/create_database.sql
mysql scriptdev2 < /opt/mangos/source/src/bindings/ScriptDev2/sql/scriptdev2_structure.sql
Případně si příkazy upravte pokud máte zaheslovaný přístup (!!VELMI se doporučuje!!)
například takto:
mysql -u <user> -p<password> < create_mysql.sql;
za parametrem -p přímo pište heslo bez mezery jinak to bude házet blbosti
Stáhneme UDB z následujícího odkazu:
mkdir udb
cd udb
wget https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk/Full_DB/UDB_0.12.2_mangos_11792_SD2_2279.zip
Rozbalíme:
unzip *.zip
a upneme na SQL server do databáze Mangos:
mysql mangos < UDB_0.12.1.393_mangos_10545_SD2_1833.sql
Případně opět použijeme parametry -u a -p
Naimportujte veškeré soubory ze složky /opt/mangos/source/src/bindings/ScriptDev2/sql následujícím příkladem:
mysql scriptdev2 -u root -p<password>< /opt/mangos/source/src/bindings/ScriptDev2/sql/scriptdev2_<soubor>.sql
mysql mangos -u root -p<password>< /opt/mangos/source/src/bindings/ScriptDev2/sql/mangos_<soubor>.sql
Pozor na to který soubor importujete ty co začínají mangos jdou do db mangos a scriptdev2 do db scriptdev2
Updaty DB:
a teď asi to nejhorší pro všechny update na nejnovejsi build vsechny sql soubory ze slozky /opt/mangos/sql/updates do sql postupne podle cisla ... a databaze
Nebo zkuste použít tento Python scriptík který to udělá za vás (za funčnost neručím, nepsal jsem to jenom jsem ho někde našel):
#!/usr/bin/env python
import glob, os
patches = glob.glob('*.sql')
patches = sorted(patches)
for x in patches:
db = x.split("_")[2].replace('.sql', '')
os.system("mysql -u <vas_uzivatel> -p<vase_heslo> -v " + db + " < " + x)
DBC, Maps a Vmaps:
Ve složce /opt/mangos/contrib si zkopírujeme dvě složky ke klientovi na windows, ze složek jsem si všechny soubory vytáhnul do rootu WoW clienta na windows.
Spustíme následující programy /na windows/:
ad.exe
make_vmaps.bat
makevmaps_SIMPLE.bat
Po dokončení vám to vytvoří tři nové složky, které potřebujeme pro chod serveru, složky jsou následující:
DBC
maps
vmap
Tyto složky překopírujeme do /opt/mangos-server/bin a na windows můžeme smazat
Máme před sebou už "jen" dva kroky:
upravit mangosd.conf a realmd.conf:
Můj Realmd.conf:
LoginDatabaseInfo = "<ip_mysql_serveru(nejspis 127.0.0.1)>;3306;<jmeno_k_db>;<heslo_k_db>;realmd"
LogsDir = ""
MaxPingTime = 30
RealmServerPort = 3724
BindIP = "<ip_kde_ma_server_poslouchat>"
PidFile = ""
LogLevel = 0
LogTime = 0
LogFile = "<soubor_kam_ma_realmd_logovat>"
LogTimestamp = 0
LogFileLevel = 0
LogColors = ""
UseProcessors = 0
ProcessPriority = 1
WaitAtStartupError = 0
RealmsStateUpdateDelay = 20
WrongPass.MaxCount = 0
WrongPass.BanTime = 600
WrongPass.BanType = 0
Jediné co je opravdu potřeba upravit jsou ty hranaté závorky
mangosd.conf je trosku vetší a můžete si s ním pohrát jsou tam i raty a vše co se týče nastavení hry.
Hlavní co musíte změnit Jsou položky pod RealmID
a to přístupy do databáze podobně jako u realmd.
zbytek nastavení nechám na vás a na vašich schopnostech se prokousat velmi rozsáhlou nápovědou která se nachází přímo v configu a myslím si, že je pro každého velmi srozumitelná kdo umí aspoň trošku anglicky.
Poslední krok před prvním zpuštěním je nastavení RealmListu v db, připojíme se tedy do phpmyadmina
vybereme db realmd
vybereme tabulku realmlist
dáme upravit jediný řádek, který zde najdeme.
v editoru upravíme položky name, tak jak chceme aby se server jmenoval /Můj případ: Geldar Fun WoW/
a adresu kde bude realm poslouchat (vaše veřejná adresa, pokud server pojede přes hamachi tak adresa hamachi)
No a konec je spuštění serveru:
/opt/mangos-server/bin/realmd
/opt/mangos-server/bin/mangosd
Potřebujete dvě konzole ke spuštění nebo si tady na fórku najděte jeden z několika Restarterů.
Webové prostředí doporučuji na začátek Rospora (najdete na fóru, je to jednoduchá registačka) a celkově vše co potřebujete k chodu zde naleznete
Doufám, že je to vše pokud ne tak mi to prosím pastněte do komentů :-)
Tak tahle jsem to postavil a funguje mi to (zatim)