1) Installazione softwares necessari (GNU/Linux)

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

Adesso installiamo tutti i softwares di cui avremo bisogno durante l’installazione di MaNGOS:

sudo apt-get install build-essential gcc g++ cpp automake git-core autoconf make patch libmysql++-dev libtool libssl-dev grep binutils subversion zlibc libc6 nano wine unrar cmake

Successivamente, dobbiamo installare il database mysql, 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.

Ricordo che in sistemi operativi come Ubuntu Server mysql dovrebbe già essere installato insieme ad applicazioni utili per un server come php, apache, ecc…

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).

1) Installazione softwares necessari (Mac OS X)

Aggiornate il vostro sistema Mac OS X e installate i seguenti software:

Xcode
MySQL Community Server
Git
Subversion
pkg-config
cmake
Mysql-Query-Browser oppure HeidiSQL (da aprire tramite PlayOnMac).

2) Ottenere i sorgenti

Create una cartella chiamandola “sources” dove metteremo tutti i sorgenti:

mkdir sources

E spostiamoci dentro di essa semplicemente con il comando:

cd sources

Dando il seguente comando creerete nella directory corrente la cartella “mangos” dentro al quale verranno scaricate i sorgenti del mangos:

git clone git://github.com/mangos/mangos.git

E aggiungiamo i sorgenti di ScriptDev2 (che, con questi comandi, verranno piazzate in /sources/mangos/src/bindings/ScriptDev2):

cd mangos/src/bindings/

git clone git://github.com/scriptdev2/scriptdev2.git ScriptDev2

Torniamo indietro nella cartella sources/mangos:

cd ..; cd ..;

Adesso applichiamo la SD2 patch. Andate nella cartella src/bindings/ScriptDev2/patches/ e vedete qual è la patch (le patch hanno estensione .patch o .diff) con revisione mangos più recente e applicatela sostituendo nel seguente comando il nome della patch in questione al posto di “MaNGOS-XXXX-ScriptDev2.patch”:

git am $(ls src/bindings/ScriptDev2/patches/MaNGOS-XXXX-ScriptDev2.patch | grep -v gz)

3) Compilazione

Creiamo ed entriamo nella cartella “build”:

mkdir build;cd build;

Infine, diamo i comandi per avviare la configurazione/compilazione. Questa operazione richiederà molto tempo (dipende dalla velocità del vostro pc).

(La directory corrente dev’essere /sources/mangos/build)
Nota: ~/sources/mangos-server sarà la directory in cui verrà piazzato il mangos.

cmake .. -DPREFIX=~/sources/mangos-server

Nota: cambiate il numero “2” con il numero dei processori della vostra macchina, se non siete sicuri digitate semplicemente “make”.

make -j 2;

sudo make install

4) DBC & Maps

Copiate il file ad.exe, che trovate nella cartella “…sourcesmangoscontribextractor”, nella cartella del vostro client e apritelo. Quando il processo sarà terminato nella cartella del vostro client troverete altre 2 cartelle di nome “dbc” e “maps”. Tagliatele e incollatele nella cartella bin del core (genericamente è /home/tuoutente/sources/mangos-server/bin/), dovrebbe essere la cartella che contiene gli esecutibili mangosd e realmd.

5) DataBase

Aprite Mysql-Query-Browser o HeidiSQL, accedete al vostro database (inserendo i dati che avete scelto mentre installavate MySQL). In alternativa potete benissimo usare la console dei comandi se ne siete capaci.

create 4 database:

realmd (database accounts&realmlist) <–A cui applicare il dump …/sources/MaNGOS/sql/realmd.sql

characters (database dei personaggi) <–A cui applicare il dump …/sources/MaNGOS/sql/characters.sql

mangos (dabase world) <–A cui applicare i dump (in ordine):

*PER UN DATABASE PULITO (praticamente con il mondo vuoto: senza npc, quest, ecc..):

1)…/sources/MaNGOS/sql/mangos.sql

2)…/sources/MaNGOS/src/bindings/ScriptDev2/sql/mangos_scriptname_full.sql

*PER UN DATABASE PIENO (con il mondo completo) usando UDB:

1)Tutti i dump elencati in questa guida

2)…/sources/MaNGOS/src/bindings/ScriptDev2/sql/mangos_scriptname_full.sql

scriptdev2 (database script) <–A cui applicare i dump (in ordine):

1) …/sources/MaNGOS/src/bindings/ScriptDev2/sql/scriptdev2_create_structure_mysql.sql

2) …/sources/MaNGOS/src/bindings/ScriptDev2/sql/scriptdev2_script_full.sql

6) Configurazione

Andate nella cartella dove avete piazzato il core del vostro mangos (generalmente /home/tuoutente/sources/mangos-server/), poi entrate nella cartella etc.

Copiate il file mangosd.conf.dist.in e rinominatelo in mangosd.conf.

Copiate il file realmd.conf.dist.in e rinominatelo in realmd.conf

Copiate il file scriptdev2.conf.dist.in e rinominatelo in scriptdev2.conf

Aprite i file mangos.conf, realmd.conf e scriptdev2.conf; e modificate le seguenti stringhe come segue:

in mangos.conf:

LoginDatabaseInfo = “127.0.0.1;3306;root;password;realmd”

WorldDatabaseInfo = “127.0.0.1;3306;root;password;mangos”

CharacterDatabaseInfo = “127.0.0.1;3306;root;password;characters”

in realmd.conf:

LoginDatabaseInfo = “127.0.0.1;3306;root;password;realmd”

in scriptdev2.conf:

ScriptDev2DatabaseInfo = “127.0.0.1;3306;root;password;scriptdev2″

Al posto di password ovviamente mettete la password del vostro database, quella che avete scelto mentre installavate MySQL (e che usate per accedere al db con Mysql-Query-Browser o HeidiSQL).

7) Restarter

Andate nella cartella bin del vostro mangos (dove stanno i file mangosd e realmd).

Create due nuovi files chiamandoli mangos-realmd.h e mangos-world.h.

Nota: per gli utenti Mac OS X il percorso della propria home non è “home/nomeutente” ma “Users/nomeutente”

Adesso aprite con un editor di testo il file mangos-worldd.h e incollategli il seguente codice:

while date;
do MANGOS=`ps -el | grep mangosd`;
if [ -z “$MANGOS” ];
then echo restarting server at time at `date +”%m-%d-%H:%M-%S”`>> worldd_restart_log.txt;
nice -n 20 /home/nomeutente/sources/mangos-server/bin/mangosd;
fi;
sleep 5;
done

Al posto di “/home/nomeutente/sources/mangos-server/bin/mangosd” mettetegli il path giusto del vostro file mangosd. Salvate e chiudete il file.

Cliccate col destro nel file “mangos-realmd.h” e andate su Proprietà–>Permessi e abilitate l’esecuzione del file come programma.

Adesso aprite con un editor di testo il file mangos-realmd.h e incollategli il seguente codice:

Quote:

while date;
do MANGOS=`ps -el | grep realmd`;
if [ -z “$MANGOS” ];
then echo restarting server at time at `date +”%m-%d-%H:%M-%S”`>> realmd_restart_log.txt;
nice -n 20 /home/nomeutente/sources/mangos-server/bin/realmd;
fi;
sleep 5;
done

Al posto di “/home/nomeutente/sources/mangos-server/bin/realmd” mettetegli il path giusto del vostro mangos-worldd. Salvate e chiudete il file.

Cliccate col destro nel file “mangos-realmd.h” e andate su Proprietà–>Permessi e abilitate l’esecuzione del file come programma.

8 ) Server UP

Per mettere UP il server vi basterà aprire (come applicazione nel terminale) i due file “mangos-worldd.h” e “mangos-realmd.h”. Non usate collegamenti a questi file per avviare il MaNGOS altrimenti potreste avere problemi, come ad esempio il non riconoscimento dei DataFiles…

Ovviamente per accedere al server in locale, bisogna settare il realmlist di WoW in questo modo:

set realmlist localhost

Ci sono già alcuni account predefiniti (ovviamente eliminabili) per accedere, tra cui l’account ADMINISTRATOR, la password è la medesima e l’account è abilitato a usare tutti i comandi GM dal livello 3 in giù (i comandi livello 4 sono utilizzabili esclusivamente tramite la console del mangos).

About OpenProgrammers

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