TrinityCore è un framework open source per MMo, fork di MaNGOS, con il quale è possibile emulare server di World of Warcraft.

TrinityCore

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:

Buildingsdbc, 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

About OpenProgrammers

Programmatore per passione. Mi piace condividere qualsiasi idea o informazione utile, per questo motivo ho realizzato il blog.