Modification du level max [Mac warior] + nameannounceFR [BLOUTIX]
Bonsoir à tous,

J'ai suivi le tutoriel de Mac warrior sur la modification du level maximum, utilisant les sources rsa, j'avais pour niveau maximum le level 80 j'ai décider de le up au level 255

Unique soucis je n'ai pas trouvé le champs :

+++ b/src/game/DBCStores.h
Code :
@@ -50,7 +50,11 @@ enum ContentLevels
{
     CONTENT_1_60 = 0,
     CONTENT_61_70,
-    CONTENT_71_80
+    CONTENT_71_80,
+       CONTENT_81_100,
+       CONTENT_101_150,
+       CONTENT_151_200,
+       CONTENT_201_255

Donc j'ai poursuivi la compilation sans cette modification... ensuite j'ai modifier les tables ( Playerxpforlevel / Playerlevelstat / Playerclasslevelstat ) en prenant bien soin de remplir les champs du level 81 à 255 pour chaque races & classes...

Mon soucis :
Je monte bien au-delà du niveau 80 je gagne aussi de l'expérience... Mais mon 'souci' une fois 80 je ne vois plus ma barre d'expérience ce qui est bien handicapant pour le suivie d'expérience des joueurs !

Donc si vous pouviez m'aider à résoudre ce souci ce serai franchement cool :')

Merci d'avance !!

Wave,,,
Il faut éditer le fichier DBCStores.h, je vois pas trop ce qu'il y a de dur là
Système d'expérience :

Merci Dieu kaios Smile
Sorry je m'étais en effet trompé de fichier cpp j'ai trouvé la bonne ligne j'ai fait mes ajouts j'ai compilé et je n'ai toujours pas de barre d’expérience une fois le level 80 dépasser...

NameannounceFR :

J'ai une erreur lors de la compilation de mon core :

Code :
/root/sources/src/game/Level1.cpp:135: error: no 'bool ChatHandler::HandleNameAnnounceCommand(const char*)' member function declared in class 'ChatHandler'
make[2]: *** [src/game/CMakeFiles/game.dir/Level1.cpp.o] Erreur 1
make[1]: *** [src/game/CMakeFiles/game.dir/all] Erreur 2

Voici les modifications apporté au fichier Level1.cpp :

Code :
// global announce
bool ChatHandler::HandleAnnounceCommand(char* args)
{
    if(!*args)
        return false;

    sWorld.SendWorldText(LANG_SYSTEMMESSAGE,args);
    return true;
}

// Nameannounce
bool ChatHandler::HandleNameAnnounceCommand(const char* args)
{
    int32 strid = 0;
    if(!*args)
        return false;

    switch(m_session->GetSecurity())
    {
      case SEC_MODERATOR:
        strid = LANG_SYSTEMMESSAGE_MODERATOR;
        break;
      case SEC_GAMEMASTER:
        strid = LANG_SYSTEMMESSAGE_GAMEMASTER;
        break;
      case SEC_CHEFMJ:
        strid = LANG_SYSTEMMESSAGE_CHEFMJ;
        break;
      case SEC_COADMIN:
        strid = LANG_SYSTEMMESSAGE_COADMIN;
        break;
      case SEC_ADMINISTRATOR:
        strid = LANG_SYSTEMMESSAGE_ADMINISTRATOR;
        break;
      default:
        return false;
    }

    sWorld.SendWorldText(strid, m_session->GetPlayerName(), args);

    return true;
}

En vous remercient d'avance Smile
Ben faudrait aussi déclarer le prototype de ta fonction dans Chat.h peut-être non ???

Tu code une fonction dans une implémentation de classe sans la déclarer dans le fichier d'entête où cette classe est déclarée, faut pas s'attendre à des miracles Hihi

On ne le dira jamais assez: avant de se lancer dans l'émulation: apprenez le C++, ça ira mieux Smile
(08-04-2011 08:17)Elmsroth a écrit :  On ne le dira jamais assez: avant de se lancer dans l'émulation: apprenez le C++, ça ira mieux Smile

Je n'ai jamais appris le C++, et mes cours en C ne datent que de cette année, pourtant j'arrive à coder ce dont j'ai besoin dans mon core depuis un bout de temps ...

Cordialement,
MacWarrior.
@Elmsroth
Je suis en cour de formation c++ (c'est une formation assez longue) apprendre directement le c++ et le sql avant de ce lancer dans l'émulation je l'aurais bien fait à condition de savoir ce qu'étais ces drôles de languages hein Heureux

Cela fait bientôt deux ans que je suis dans l'émulation, je pense avoir un niveau moyen en général, j'ai encore beaucoup à apprendre, et je ne baisse pas les bras, après je vois pas l'intérrêt d'apprendre le C++ pour l'application d'un patch qui est déjà <<codé>> nul besoin d'être Développeur (PRO) pour savoir, que quand il y a un + on add un - on del :') ?!

D'après ce que j'ai compris il manque une ligne dans Chat.h pourtant j'ai bien remplis avec ceci =>
Code :
bool HandleNameAnnounceCommand(char* args);

@Mac Warrior
+1 pour le tuto +1 pour la réponse :')

Wave,
Il est évident qu'il est facile de modifier les sources et adapter selon son besoin par simple logique je suis tout à fait d'accord.

cependant tu auras plus de difficulté à comprendre d'où vient un bug si celui-ci est situé dans la conception du logiciel en lui même.
Tout à fait d'accord l'ami c'est la raison pour là quelle j'apprend le c++ :')
Édition :
Re,

Bon j'ai effectuer quelques modifications dans mes fichier c++ aucune erreurs lors de la compilation j'ai bien mis le script SQL une fois IG je tape la commande nameannounce = cette commande n'existe pas.

Ce que je vais faire pour vous aidez je vais mettre toute mes modifications plus bas :

Fichier Common.h :
Code :
enum AccountTypes
{
    SEC_PLAYER         = 0,
    SEC_VIP            = 1,
    SEC_MODERATOR      = 2,
    SEC_GAMEMASTER     = 3,
    SEC_CHEFMJ         = 4,
    SEC_COADMIN        = 5,
    SEC_ADMINISTRATOR  = 6,
    SEC_CONSOLE        = 7                                 // must be always last in list, accounts must have less security level always also
};

Fichier Language.h :
Code :
//LANG_RA_BUSY                      = 60, not used
    LANG_RA_USER                        = 61,
    LANG_RA_PASS                        = 62,
    LANG_GM_ACCEPTS_WHISP[code]ER             = 63,
    LANG_GM_NO_WHISPER                  = 64,
    LANG_USING_SCRIPT_LIB_UNKNOWN       = 65,
    LANG_USING_SCRIPT_LIB_NONE          = 66,
    // Room for more level 0              67-99 not used
    LANG_SYSTEMMESSAGE_MODERATOR        = 67,
    LANG_SYSTEMMESSAGE_GAMEMASTER       = 68,
    LANG_SYSTEMMESSAGE_CHEFMJ           = 69,
    LANG_SYSTEMMESSAGE_COADMIN          = 70,
    LANG_SYSTEMMESSAGE_ADMINISTRATOR    = 71,

    // level 1 chat
    LANG_GLOBAL_NOTIFY                  = 100,

Fichier Chat.h :
Code :
bool HandleAnnounceCommand(char* args);
        bool HandleNameAnnounceCommand(char* args);
        bool HandleNotifyCommand(char* args);

Fichier Chat.cpp :


Code :
{ "announce",       SEC_MODERATOR,      true,  &ChatHandler::HandleAnnounceCommand,            "", NULL },
        { "nameannounce",   SEC_MODERATOR,      false, &ChatHandler::HandleNameAnnounceCommand,        "", NULL },
        { "notify",         SEC_MODERATOR,      true,  &ChatHandler::HandleNotifyCommand,              "", NULL },

Fichier Level1.cpp :
Code :
// global announce
bool ChatHandler::HandleAnnounceCommand(char* args)
{
    if(!*args)
        return false;

    sWorld.SendWorldText(LANG_SYSTEMMESSAGE,args);
    return true;
}

// Nameannounce
bool ChatHandler::HandleNameAnnounceCommand(const char* args)

{
    int32 strid = 0;
    if(!*args)
        return false;

    switch(m_session->GetSecurity())
    {
      case SEC_MODERATOR:
        strid = LANG_SYSTEMMESSAGE_MODERATOR;
        break;
      case SEC_GAMEMASTER:
        strid = LANG_SYSTEMMESSAGE_GAMEMASTER;
        break;
      case SEC_CHEFMJ:
        strid = LANG_SYSTEMMESSAGE_CHEFMJ;
        break;
      case SEC_COADMIN:
        strid = LANG_SYSTEMMESSAGE_COADMIN;
        break;
      case SEC_ADMINISTRATOR:
        strid = LANG_SYSTEMMESSAGE_ADMINISTRATOR;
        break;
      default:
        return false;
    }

    sWorld.SendWorldText(strid, m_session->GetPlayerName(), args);

    return true;
}


Fichier SQL :

Code :
INSERT INTO `command` VALUES ('nameannounce',1,'Syntax: .nameannounce $MessageToBroadcast\r\n\r\nSend a global message to all players online in chat log with colored sender\'s name.');
INSERT INTO `mangos_string` VALUES (67,'|c1f40af20 <MJ-test>|cffff0000[%s]|c1f40af20 annonce:|cffffff00 %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (68,'|c1f40af20 <Animateur>|cffff0000[%s]|c1f40af20 annonce:|cffffff00 %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (69,'|c1f40af20 <Chef-MJ>|cffff0000[%s]|c1f40af20 annonce:|cffffff00 %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (70,'|c1f40af20 <Admin-comu>|cffff0000[%s]|c1f40af20 annonce:|cffffff00 %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (71,'|c1f40af20 <Fondateur>|cffff0000[%s]|c1f40af20 annonce:|cffffff00 %s|r',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

Voila en espèrent que cela puisse vous aidez :')
(08-04-2011 17:08)wave a écrit :  commande nameannounce = cette commande n'existe pas.

Vérifie ton grade IG, met toi en grade maximum, je dirai que ton problème vient de là, mais rien de sur Clin

Citation :{ "nameannounce", SEC_MODERATOR, false, &ChatHandler::HandleNameAnnounceCommand, "", NULL },
Tu dois avoir le grade SEC_MODERATOR minimum, sauf si dans ta bdd tu l'attribue plus bas/haut.

Cordialement,
MacWarrior.
J'ai mis dans le common.h le grade MODERATOR au plus bas après joueurs, et cela fonctionne merci bien MC Clin

Je lock le sujet il est résolus !

Retourner en haut Accueil