TrinityCore è un framework open source per MMo, fork di MaNGOS, con il quale è possibile emulare server di World of Warcraft.
Ecco come mettere su un server World of Warcraft con TrinityCore:
1) Installazione softwares necessari
Nota: questi sono i comandi per qualsiasi distribuzione Debian/Ubuntu e derivate, se avete una distribuzione differente le istruzioni sono le medesime con i relativi comandi corrispondenti.
Per prima cosa aggiorniamo il sistema, dando il comando:
sudo apt-get update
Se non abbiamo un server database MySQL, dobbiamo installarlo dando questo comando:
sudo apt-get install mysql-server
Al termine del quale vi sarà richiesto l’inserimento di una password, che sarà quella del vostro database. Tenetela sicura.
Adesso installiamo/aggiorniamo tutti i softwares di cui avremo bisogno durante l’installazione di TrinityCore:
sudo apt-get install build-essential autoconf libtool gcc g++ make cmake git-core patch wget links zip unzip unrar openssl libssl-dev mysql-client libmysqlclient15-dev libmysql++-dev libreadline6-dev zlib1g-dev libace-dev libmysqlclient-dev bzip2
sudo apt-get install libbz2-dev
ATTENZIONE: Se state utilizzando una distribuzione basata su Ubuntu/Debian potreste avere bisogno del pacchetto libncurses5-dev e quindi digitare:
sudo apt-get install libncurses5-dev
Per gestire il database potremmo benissimo usare la linea dei comandi, oppure usare programmi dotati di una GUI (interfaccia grafica) come Mysql-Query-Browser oppure HeidiSQL (perfettamente compatibile con Wine). Vi consiglio il secondo, ma ovviamente sono gusti.
2) Ottenere i sorgenti
Creiamo ed entriamo nella cartella sources:
mkdir sources; cd sources
Dando il seguente comando scarichiamo i sorgenti e li piazziamo nella cartella “trinitycore” (che verrà creata):
git clone git://github.com/TrinityCore/TrinityCore.git trinitycore
3) Compilazione
Spostiamoci all’interno della cartella dove abbiamo scaricato i sorgenti:
cd trinitycore
Creiamo ed entriamo nella cartella “build”:
mkdir build;cd build;
Rimpiazziando “~/trinitycore/trinity-server” (nei parametri DPREFIX, DCONF_DIR e DLIBSDIR) con la directory in cui verrà piazzato il server trinity, diamo:
cmake ../ -DPREFIX=/home/nomeUtente/sources/trinity-server -DSERVERS=1 -DSCRIPTS=1 -DTOOLS=1 -DUSE_SCRIPTPCH=1 -DUSE_COREPCH=1 -DCONF_DIR=/home/nomeUtente/sources/trinity-server/etc -DLIBSDIR=/home/nomeUtente/sources/trinity-server/lib
NomeUtente:
Adesso avviamo la compilazione, cambiando il numero “2” con il numero dei processori della propria macchina:
make -j 2;
sudo make install
4) DBC maps & vmaps
Una volta aver compilato, troveremo nella cartella “bin” del nostro server i seguenti esecutibili:
– mapextractor
– vmap4extractor
– vmap4assembler
Copiamoli nella cartella del client di WoW ed eseguiamoli in ordine tramite terminale:
./mapextractor
./vmap4extractor
./vmap4assembler Buildings vmaps
Al termine dell’esecuzione di tutti e tre i file, all’interno della cartella di WoW avremmo le seguenti:
– Buildings – dbc, maps, vmaps
5) DataBase
Prepariamo gli ultimi aggiornamenti del database dei contenuti per essere importati:
cat ~/sources/trinitycore/sql/updates/world/*.sql > ~/sources/updates.sql
Adesso prepareremo il database mysql, è possibile farlo tramite HeidiSQL, Mysql-Query-Browser o qualsiasi altro programma di gestione database (anche la linea di comando va bene).
Creiamo 3 database:
–auth (database accounts&realmlist) <–A cui importare il dump …/sources/trinitycore/sql/base/auth_database.sql
–characters (database dei personaggi) <–A cui importare il dump …/sources/trinitycore/sql/base/characters_database.sql
–world (dabase dei contenuti) <–A cui importare i dump (in ordine):
1) La versione più recente di TDB, reperibile qui.
2) …/sources/updates.sql
6) Configurazione
Apriamo la cartella etc del nostro server trinity.
Copiamo il file worldserver.conf.dist.in e rinominiamolo in worldserver.conf.
Analogamente, copiamo il file authserver.conf.dist.in e rinominiamolo in authserver.conf
Apriamo i file worldserver.conf e authserver.conf e modifichiamoli come segue. Al posto di password ovviamente scriveremo la password del database mysql.
in worldserver.conf:
LoginDatabaseInfo = “127.0.0.1;3306;root;password;auth”
WorldDatabaseInfo = “127.0.0.1;3306;root;password;world”
CharacterDatabaseInfo = “127.0.0.1;3306;root;password;characters”
in auth.conf:
LoginDatabaseInfo = “127.0.0.1;3306;root;password;auth”
7) Restarter
Nella cartella bin del nostro server creiamo due nuovi file vuoti e denominiamoli worldserver.h e authserver.h
Adesso apriamo con un editor di testo il file worldserver.h e incolliamo il seguente codice:
while date;
do TRINITY=`ps -el | grep worldserver`;
if [ -z “$TRINITY” ];
then echo restarting server at time at `date +”%m-%d-%H:%M-%S”`>> worldserver_restart_log.txt;
nice -n 20 /home/nomeUtente/sources/trinity-server/bin/worldserver;
fi;
sleep 5;
done
Al posto di “/home/nomeUtente/sources/trinity-server/bin/worldserver” il corretto path del file worldserver.
Adesso aprite con un editor di testo il file authserver.h e incollategli il seguente codice:
Quote:
while date;
do TRINITY=`ps -el | grep authserver`;
if [ -z “$TRINITY” ];
then echo restarting server at time at `date +”%m-%d-%H:%M-%S”`>> authserver_restart_log.txt;
nice -n 20 /home/nomeUtente/sources/trinity-server/bin/authserver;
fi;
sleep 5;
done
Anche qui al posto di “/home/nomeUtente/sources/trinity-server/bin/authserver” mettiamo il corretto path del file authserver.
Cliccando col destro su di essi e andando su Proprietà–>Permessi abilitiamo i permessi di esecuzione per entrambi gli sh che abbiamo appena creato.
8 ) Server UP
Per mettere UP il server basterà aprire (come applicazione nel terminale) i due file “worldserver.h” e “authserver.h”. È meglio non usare collegamenti a questi file per avviare TrinityCore altrimenti si potrebbero avere problemi, come ad esempio il non riconoscimento dei DataFiles.
A proposito di DataFiles, un altro difetto riscontrato spesso in TrinityCore è il mancato riconoscimento di essi, per risolvere il problema è necessario settare il percorso fisico dal file di configurazione worldserver.conf:
DataDir = “/home/nomeUtente/sources/trinity-server/bin”
Ovviamente per accedere al server in locale, bisogna settare il realmlist di WoW in questo modo:
set realmlist localhost
Adesso creiamo un account e abilitiamolo a usare tutti i comandi GM dal livello 3 in giù (i comandi livello 4 sono utilizzabili esclusivamente tramite la console di trinity).
Dalla console di trinity diamo:
account create nomeaccount password
account set gmlevel nomeaccount 3 1