Aller au contenu
Aurora Kingdom
Rhynøs

 partage [C++] Anti Exp

Messages recommandés

Bonjour

 

Je vais vous partager quelque bout de code, qui vous permettrons de bloquer votre expérience ingame via la source et d'un item.

 

Allez ses partie !

 

Ouvrez Char.cpp

 

Chercher :

               if (gPlayerMaxLevel <= GetLevel())
                  return;

Ajouter en dessous : 

 

               if (block_exp && amount > 0)
               {
                  return;
               }

Ont n'a terminer avec le char.ccp, on ouvre maintenant le char.h

 

Chercher : 

void         SetExp(DWORD exp)   { m_points.exp = exp;   }

Ajouter en dessous : 

      bool         block_exp;

 

Enregistrer et fermer le char.h, passons maintenant au Questlua_pc.cpp

 

Rechercher : 

{ "give_award_socket",   pc_give_award_socket   },

Ajouter en dessous : 

         { "block_exp",         _block_exp },   //Bloque votre expérience
         { "unblock_exp",      _unblock_exp },   //Débloque votre expérience

-Rechercher : (toujours dans le même fichier)

void RegisterPCFunctionTable()

Ajouter en dessous : 

   int _block_exp(lua_State* L)

   {
      LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
      ch->block_exp = true;
      return 0;
   }
   int _unblock_exp(lua_State* L)
   {
      LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
      ch->block_exp = false;
      return 0;
   }

Ensuite :  input_login.cpp 

Rechercher : 

      if (g_bCheckClientVersion)
      {

Ajouter en dessous de la (

         ch->block_exp = false;

Comme sa : 

		if (g_bCheckClientVersion)
		{
			ch->block_exp = false;
			int version = atoi(g_stClientVersion.c_str());
			int date = atoi(d->GetClientVersion());

 

- FIX GUILD : Gurgarath

 

Ouvrez guild.cpp

 

Dans la fonction 

bool CGuild::OfferExp(LPCHARACTER ch, int amount) 

Ajouter : 

if (ch->block_exp == true)
            return false; 

Vous pouvez maintenant compiler votre game.

 

Ensuite

Ajouter ceci dans votre quest_function 

pc.block_exp
pc.unblock_exp

Et voici ma quêtes : 

quest blocage_experience begin
    state start begin
        when login begin
            if pc.getqf("antiexp") == 1 then
                pc.block_exp()
                chat("Rappel : Vérifier si votre anneau est bien bloquer ou débloquer.")
            end
        end
        when 40004.use begin
            if pc.getqf("antiexp") == 0 then
                pc.block_exp()
                pc.setqf("antiexp", 1)
                chat("Le blocage d'expérience à été activer")
            elseif pc.getqf("antiexp") == 1 then
                pc.unblock_exp()
                pc.setqf("antiexp", 0)
                chat("Le blocage d'expérience à été désactiver.")
            end
        end
    end
end

 

Source : J4M.

Quêtes : Moi

FIX GUILD : Gurgarath

 

Il existe des quêtes qui bloquent l'exp, mais je n'aime pas trop le concepts, Celui ci bloque directement l'exp via la sources et non via une quêtes!

L'anneau ce désactive pas à chaque téléportations, un rappel s'effectue à chaque changement de maps, pour avertir le joueurs en cas.

Modifié par FrancH

Partager ce message


Lien à poster
Partager sur d’autres sites

Bien vue, il me semble qu'il ya une fonction à ajouter pour les guildes. Car dans tu bloque ton expérience et que tu give de l Exp à ta guilde, ton expérience n'est pas retirer.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Merci à toi ! Voici la version sans aucun bug pour ceux qui demanderaient, c'est celle que j'utilise et elle ne rencontre aucun problème d'exp de guilde. La base est la même que la tienne mais le code vient de diverses personnes, je ne pense pas l'avoir fait moi même :

 

Pour le premier, c'est les premières lignes de ton tutoriel avec le code corrigé.

 

Citation

Ouvrez Char.cpp

 

Chercher :

               if (gPlayerMaxLevel <= GetLevel())
                  return;

Ajouter en dessous : 

 

               if (block_exp && amount > 0)
               {
                  return;
               }

 

Ouvrez guild.cpp

Dans la fonction :

bool CGuild::OfferExp(LPCHARACTER ch, int amount) 

 

Ajouter : 

 

if (ch->block_exp == true)
            return false; 

 

 

Tu as eu ton +1 ! :D

Modifié par Gurgarath

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×