Benvenuti su "Just a Bit of.. Entropy!".
Questo blog tratta di Free Software e programmazione.
L'autore è un di membro di Guru@Work
e studente del corso di laurea specialistica in
Tecnologie Informatiche all'università di Pisa.
Mangos: Case of Study World of Warcraft

Vediamo ora come rendere utilizzabile il nostro server privato di WoW
Per iniziare necessitiamo di:
- Una copia del client di gioco aggiornato fino alla versione 2.3.3 con espansione TBC
- I nostri binari realizzati nella guida precedente
- ad.exe, WinMPQ, VMap extractor e VMap assembler.
- mysql-client
- wine
E delle seguenti librerie:
- GLIBC 2.4
- OpenSSL 0.9.8d
Installiamo Mangos nella directory in cui decidiamo di usarlo (nel nostro caso lo metteremo sotto /opt/)
- Creiamo quindo /opt/mangos
- Copiamo le cartelle ottenute dalla precedente compilazione all’interno del percorso appena creato
Installiamo MySql
$ apt-get install mysql-server-5.0 mysql-client-5.0
e configuriamolo (sono presenti svariate guide in rete, se necessario in seguito scriverò un mini howto)
Quando avremo il servizio mysql attivo dovremo provvedere a creare le tabelle richieste dal nostro server:
Creiamo tre database e chiamiamoli ‘mangos‘ , ‘realmd‘ e ‘characters‘.
Usando il terminale andiamo nella cartella dei sorgenti (scaricati nel precedente tutorial) e precisamente in quella contente il file database.sql e, una volta nella cartella, utilizziamo il comando
$ mysql –user=your_user –password=mypassword mangos < database.sql
Per riempire il database creato dandogli la definizione delle tabelle richieste dal server.
Effettuiamo la stessa cosa con il file realmd.sql (questa volta sul database realmd) e characters.sql (sul database characters).
A questo punto la struttura dei database necessari è completata.
NB: Per evitare l’inserimento tramite console è possibile usare tool grafici come, ad esempio, MySql Navigator reperibile con apt.
Attenzione:
La parte successiva di questa guida esula completamente dal progetto Mangos poiché prevede la modifica di file protetti da copyright. L’autore del post non si assume responsabilità su quanto riportato in seguito, e si limita, per completezza, ad illustrare come sia possibile realizzare (utilizzando quanto fatto come base) un server non-ufficiale per WoW. Per tale motivo non verranno riportati link al software utilizzato.
Estraiamo MAP e file DBC dalla nostra copia del gioco:
Utilizziamo allo scopo il programma ad.exe che copieremo nella directory del gioco.
Creiamo quindi in tale directory una sotto cartella che chiameremo ‘maps’, ed avviamo ad.exe (utilizzando Wine)
Terminata questa fase, utilizzando WinMPQ (sempre con Wine), selezioniamo come file su cui far lavorare il programma:
WoWdir/Data/*lang*/locale-*lang*.MPQ
Selezioniamo tutte le entries che contengono ‘DBCFilesClient‘, estraiamole e salviamole nel seguente path /opt/mangos-data/dbc
Ripetiamo l’operazione per i files patch-*lang*.MPQ [and patch-*lang*-2.MPQ]
Copiamo quindi il contenuto di WoWdir/maps nel path:
/opt/mangos-data/maps
VMaps
Usiamo vmap_extractor_v2 come i programmi precedenti.
Creiamo la cartella ‘vmaps‘ nella stessa cartella dell’eseguibile ‘vmap_assembler‘.
Usiamo quindi vmap_assembler da riga di comando in questo modo:
$ wine vmap_assembler.exe [PATH_WHERE_YOU_HAVE_THE_EXTRACTOR_EXECUTABLE]/buildings vmaps
Copiamo quindi la cartella ‘vmaps’ in:
/opt/mangos-data/vmaps
Adesso abbiamo messo a disposizione del server le mappe, le traduzioni e tutti i modelli 3d del gioco.
Accesso al Server
Per rendere il server accedibile dobbiamo editare nel seguente modo il file di configurazione mangosd.conf (/opt/mangos/etc/mangosd.conf):
- Edit: RealmID = n <– dove n è il server ID (Default: 1. Per i successivi -> 2, 3, 4…)
- Edit: GameType = n <– dove n identifica il tipo di server
- Edit: DataDir = “*dove hai salvato i file estratti, nel nostro caso.* /opt/mangos-data”
- Edit: LoginDatabaseInfo = “127.0.0.1;3306;[mysql user];[password];realmd”
- Edit: WorldDatabaseInfo = “127.0.0.1;3306;[mysql user];[password];mangos”
- Edit: CharacterDatabaseInfo = “127.0.0.1;3306;[mysql user];[password];characters”
- Edit: WorldServerPort = n <– n è di default 8085.
- Edit: vmaps.enableLOS = 1
- Edit: vmaps.enableHeight = 1
Allo stesso modo in realmd.conf (/opt/mangos/etc/realmd.conf)
- Edit: LoginDatabaseInfo = “127.0.0.1;3306;[mysql user];[password];realmd”
Bloodelf e Dranei
Prima di poter creare queste due razze (disponibili solo con l’espansione), deve essere settato a 1 la colonna tbc della tabella accounts del database realmd (-> realmd->accounts->tbc)
Avviare il server
$ ./mangos-worldd -c ../etc/mangosd.conf
$ ./mangos-realmd -c ../etc/realmd.con
Avvertenze: La procedura sin qui descritta non è sufficiente ad eseguire il server con png e quest attive poiché il database che contiene tali informazioni (mangos) è vuoto. Per ovviare a questo inconveniente esistono vari progetti (tra cui SilverDB e UDB) di cui non forniamo i link per i motivi precedentemente chiariti.
[Questa guida è una trasposizione in Italiano dell'originale presente a questo indirizzo]
Blog realizzato da Giulio Rossetti.
Immagine presente nell'header realizzata da bunocb e disponibile sul sito crystalxp





































