Vous devez être connecté et donner une réaction ( Like ) au sujet pour débloquer les liens de téléchargements...

Recommended Posts

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

  • Like 1
  • Ah ah 1

Share this post


Link to post
Share on other 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.

Edited by MeehmetYeeah

Share this post


Link to post
Share on other sites