Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

C++ - Anti Exp


Messages recommandés

  • Robot

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

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.

  • Metin2 Dev 7
  • Good 3
  • Love 5

french_banner.gif

Lien vers le commentaire
Partager sur d’autres sites

  • Développeur

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
  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 21

      Metin2 en 2020 peut-on en parler?

    2. 0

      METIN2Project

    3. 3

      Ressources - UnPack - Metin2 Client - Officiel

    4. 0

      Barre des tâches d'argent étendue

    5. 16

      Redémarrage automatique des channels

    6. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.