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

C++ - Événement Dead


Messages recommandés

  • Retraité

F Download Center

Hidden Content

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

Bonsoir à tous,

 

Je vous propose d'ajouter l’événement Dead à vos quêtes, il pourrait vous être utile !

Pour cela vous devez disposer d'une machine (virtuelle de préférence) pour compiler et des sources du game (il s'agit pour ma part du 40250).

 

 

Ouvrez quest.h, trouvez la ligne :

QUEST_ITEM_INFORMER_EVENT,


Et ajoutez ceci juste après : 

QUEST_DEAD_EVENT,

 

 


Ouvrez questmanager.cpp, trouvez la ligne :

m_mapEventName.insert(TEventNameMap::value_type("item_informer", QUEST_ITEM_INFORMER_EVENT));

 

Et ajoutez ceci juste après : 

m_mapEventName.insert(TEventNameMap::value_type("dead", QUEST_DEAD_EVENT));


Ajoutez la fonction ci-dessous dans ce même fichier : 

void CQuestManager::Dead(unsigned int pc)
    {
        PC * pPC;

        if ((pPC = GetPC(pc)))
        {
            if (!CheckQuestLoaded(pPC))
                return;

            m_mapNPC[QUEST_NO_NPC].OnDead(*pPC);
        }
        else
            sys_err("QUEST no such pc id : %d", pc);
    }

 

 

 

Ouvrez questmanager.h, trouvez la ligne :

void        Kill(unsigned int pc, unsigned int npc);


Et ajoutez ceci juste après :

void        Dead(unsigned int pc);

 

 


Ouvrez questnpc.cpp et ajoutez la fonction :

    bool NPC::OnDead(PC& pc)
    {
        return HandleReceiveAllEvent(pc, QUEST_DEAD_EVENT);
    }

 

 


Ouvrez questnpc.h, trouvez la ligne :

bool    OnKill(PC& pc);


Et ajoutez ceci juste après :

bool    OnDead(PC& pc);

 

 

 

Enfin, ouvrez char_battle.cpp et trouvez la ligne :

void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)

 

Juste après l'ouverture de cette fonction ajoutez :

quest::CQuestManager::instance().Dead(GetPlayerID());

 

 

 

Sauvez le tout, compilez et c'est terminé !

Vous pourrez maintenant utiliser l'événement dans vos scripts de quêtes : 

when dead begin
    syschat("You are dead.")
end

 

Pensez à bien refaire les indentations/tabulations sans quoi la compilation pourrait échouer.

 

Source : metin2dev.org

PS : Merci à @ASIKOO, notre IPS converter -_-

  • Love 2
Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 3
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Jours populaires



  • 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.