Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

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

Merci Saw! Je vais tester et je vais voir pour adapter le code! 

Si besoin, je vais rajouter le fix à ce tutoriel !

Modifié par Rhynøs

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

Fix ajouter ! Merci Gurgarath

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci ! :) 

Partager ce message


Lien à poster
Partager sur d’autres sites

De rien :D

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.