Metin2 - Trigger quest la drop item
Acest tutorial iti arata cum sa adaugi un nou trigger de quest de tip {itemVnum}.drop in Metin2.
Astfel poti declansa questuri atunci cand un jucator arunca pe jos un anumit item, intr-o anumita zona.
Este foarte util pentru dungeon-uri, evente si mecanici custom.
*Poze / Video:
![[Lua] Functie: Trigger quest la drop item - Mesaj 1 - Imagine 1 [Lua] Functie: Trigger quest la drop item - Mesaj 1 - Imagine 1](https://i.imgur.com/zSki2bI.gif)
Deschide common/service.h si cauta:
Code:
#define DROP_ITEM_QUEST_TRIGGER
Deschide game/questmanager.cpp si cauta:
Code:
m_mapEventName.insert(TEventNameMap::value_type("pick", QUEST_ITEM_PICK_EVENT));
Cauta:
Code:
void CQuestManager::BeginOtherPCBlock(DWORD pid)
Deschide game/questmanager.h si cauta:
Code:
bool PickupItem(unsigned int pc, LPITEM item);
Deschide game/questnpc.cpp si cauta:
Code:
bool NPC::OnPickupItem(PC& pc)
Tot in game/questnpc.cpp cauta:
Code:
bool OnPickupItem(PC& pc);
Deschide game/quest.h si cauta:
Code:
QUEST_EVENT_COUNT
Deschide game/char_item.cpp si cauta:
Code:
ITEM_MANAGER::instance().FlushDelayedSave(pkItemToDrop);
Daca vrei ca triggerul sa functioneze pentru toate itemele, nu doar pentru ITEM_QUEST, cauta:
Code:
if (item->GetType() == ITEM_QUEST)
quest::CQuestManager::instance().DropItem(GetPlayerID(), item);
Exemplu quest:
Explicatie scurta:
- noul trigger {itemVnum}.drop se executa cand jucatorul arunca pe jos itemul respectiv
- poti verifica harta, coordonatele, zona sau alte conditii
- este ideal pentru questuri custom, puzzle-uri si trigger-e de dungeon


la acest mesaj și conținutul se va afișa automat.


