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

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 -_-

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, si j'ai bien compris quand quelqu'un meurt il reçoit un message dans le chat ' You are dead. ' C'est ça ? Ou faut une manip particuliere ? merci.

Modifié par MeehmetYeeah

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est l'exemple que j'ai donné effectivement mais les possibilités sont illimités

Partager ce message


Lien à poster
Partager sur d’autres sites

xD

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

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