[Jeu] EvolOnline

[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: 
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 :

evolonline

12) Lien :

http://wiki.evolonline.org/guidelines/firstdevstep