[Jeu] EvolOnline. 1) Répertoire de travail :
[~] ➔ mkdir -p JEUX/EVOL
[~] ➔ cd JEUX/EVOL/
2) Téléchargement du code source :
[~/JEUX/EVOL] ➔ git clone git@gitlab.com:evol/evol-all.git
[~/JEUX/EVOL] ➔ cd evol-all/
[~/JEUX/EVOL/evol-all (master)] ➔
Remarque : Veillez créer une clé ssh et la transférer dans votre compte Gitlab. 3) Configuration de l'installation du serveur :
[~/JEUX/EVOL/evol-all (master)] ➔ ./init.sh local
[~/JEUX/EVOL/evol-all (master)] ➔ cd tools/localserver/
[~/JEUX/EVOL/evol-all/tools/localserver (master)] ➔ ./installconfigs.sh
4) Compilation du serveur :
[~/JEUX/EVOL/evol-all/tools/localserver (master)] ➔ mkdir ../../server-plugin/build/
[~/JEUX/EVOL/evol-all/tools/localserver (master)] ➔ ./build.sh
Si la version de gcc est < à 4.8 :
[~/JEUX/EVOL/evol-all/tools/localserver (master)] ➔ ./build.sh old
Erreur :
CC skill.c
In file included from skill.c:41:0:
skill.c: In function ‘skill_graffitiremover’:
../common/nullpo.h:43:29: error: invalid operands to binary != (have ‘va_list’ and ‘v
Solution : Ouvrir :
~/JEUX/EVOL/evol-all/server-code/src/map/skill.c
Chercher :
int skill_graffitiremover (struct block_list *bl, va_list ap) {
struct skill_unit *su=NULL;
nullpo_ret(bl);
nullpo_ret(ap);
Remplacer par :
int skill_graffitiremover (struct block_list *bl, va_list ap) {
struct skill_unit *su=NULL;
//nullpo_ret(bl);
//nullpo_ret(ap);
Chercher :
int skill_detonator(struct block_list *bl, va_list ap) {
struct skill_unit *su=NULL;
struct block_list *src;
int unit_id;
nullpo_ret(bl);
nullpo_ret(ap);
Remplacer par :
int skill_detonator(struct block_list *bl, va_list ap) {
struct skill_unit *su=NULL;
struct block_list *src;
int unit_id;
//nullpo_ret(bl);
//nullpo_ret(ap);
Erreur :
../../src/map/clif.c:151:9: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
for (int f = 23; f > 1; f --)
Ouvrir :
~/JEUX/EVOL/evol-all/server-code/src/evol/src/map/clif.c
Chercher :
memcpy(tmpBuf, md->name, 24);
tmpBuf[24] = 0;
for (int f = 23; f > 1; f --)
Remplacer par :
tmpBuf[24] = 0;
int f;
for (f = 23; f > 1; f --)
Chercher :
for (int f = 0; f < 24; f ++)
{
if (*ptr == ' ')
Remplacer par :
for (f = 0; f < 24; f ++)
{
if (*ptr == ' ')
5) Initialisation de la base de donnée :
[~/JEUX/EVOL/evol-all/tools/localserver (master)] ➔ ./initdb.sh
Creating db and user...
Enter mysql root password:
Enter password: <mot2passe>
Creating tables...
6) Lancement du serveur :
[~/JEUX/EVOL/evol-all/tools/localserver (master)] ➔ cd ~/JEUX/EVOL/evol-all/server-data/
[~/JEUX/EVOL/evol-all/server-data (master)] ➔
[~/JEUX/EVOL/evol-all/server-data (master)] ➔ ./login-server
[~/JEUX/EVOL/evol-all/server-data (master)] ➔ ./char-server
[~/JEUX/EVOL/evol-all/server-data (master)] ➔ ./map-server
7) Téléchargement du client :
[~/JEUX/EVOL/evol-all/server-data (master)] ➔ cd ..
[~/JEUX/EVOL/evol-all (master)] ➔ ./init.sh client
[~/JEUX/EVOL/evol-all (master)] ➔ ./init.sh music
[~/JEUX/EVOL/evol-all (master)] ➔ ./init.sh manaplus
8) Compilation :
[~/JEUX/EVOL/evol-all (master)] ➔ cd manaplus/
[~/JEUX/EVOL/evol-all/manaplus (master)] ➔ ./build.sh
Erreur :
./net/ea/playerhandler.h:62:35: error: ‘INT_MAX’ was not declared in this scope
static const int NoStat = INT_MAX;
Ouvrir :
./src/net/ea/playerhandler.h
Chercher :
static const int NoStat = INT_MAX;
Remplacer par :
static const int NoStat = 10;
Remarque : 10 est une valeur que j'ai mis au "hasard". Rechercher la vrai valeur dans la code. 9) Lancement du client :
[~/JEUX/EVOL/evol-all/manaplus (master)⚡] ➔ cd ../tools/manaplus/
[~/JEUX/EVOL/evol-all/tools/manaplus (master)] ➔ ./connect_local_server.sh
10) Connexion au serveur :
Type : evol2
11) Capture d'écran :
12) Lien :
http://wiki.evolonline.org/guidelines/firstdevstep