Znalazłem kod c++ "OnDiePlayer". Jest on oparty na funkcji "onDie". Nie dotyczy potworów, lecz playerów.
Zaczynajmy:
w pliku creature.cpp pod:
Kod:
//scripting event - onDie
CreatureEvent* eventDie = getCreatureEvent(CREATURE_EVENT_DIE);
if(eventDie){
eventDie->executeOnDie(this, corpse);
}
dodajemy:
Kod:
#ifdef ON_PLAYER_DIE_DZOJO
if(this->getPlayer()){
g_creatureEvents->playerDie(this->getPlayer(), corpse);
}
#endif
Otwieramy plik creatureevent.cpp :
Pod:
Kod:
m_logOutEvent = NULL;
Dodajemy:
Kod:
#ifdef ON_PLAYER_DIE_DZOJO
m_playerDieEvent = NULL;
#endif
następnie pod:
Kod:
delete m_logOutEvent;
Wstawiamy:
Kod:
#ifdef ON_PLAYER_DIE_DZOJO
delete m_playerDieEvent;
#endif
Pod:
Kod:
case CREATURE_EVENT_LOGOUT:
delete m_logOutEvent;
m_logOutEvent = creatureEvent;
return true;
Dajemy:
Kod:
#ifdef ON_PLAYER_DIE_DZOJO
case CREATURE_EVENT_DIE_PLAYER:
delete m_playerDieEvent;
m_playerDieEvent = creatureEvent;
return true;
#endif
Nad tym:
Kod:
uint32_t CreatureEvents::playerLogOut(Player* player)
{
// fire global event if is registered
if(m_logOutEvent){
return m_logOutEvent->executeOnLogout(player);
}
return 0;
}
Wpisujemy to:
Kod:
#ifdef ON_PLAYER_DIE_DZOJO
uint32_t CreatureEvents::playerDie(Player* player, Item* corpse)
{
// fire global event if is registered
if(m_playerDieEvent){
return m_playerDieEvent->executeOnDiePlayer(player, corpse);
}
return 0;
}
#endif
Pod:"
Kod:
else if(str == "die"){
m_type = CREATURE_EVENT_DIE;
}
Dajemy:
Kod PHP:
#ifdef ON_PLAYER_DIE_DZOJO
else if(str == "dieplayer"){
m_type = CREATURE_EVENT_DIE_PLAYER;
}
#endif
Poniżej:
Kod:
case CREATURE_EVENT_DIE:
return "onDie";
break;
Wpisujemy:
Kod PHP:
#ifdef ON_PLAYER_DIE_DZOJO
case CREATURE_EVENT_DIE_PLAYER:
return "onDiePlayer";
break;
#endif
Teraz zajmiemy się plikiem creatureevent.h:
Pod:
Kod:
uint32_t playerLogOut(Player* player);
Dodajemy:
Kod PHP:
#ifdef ON_PLAYER_DIE_DZOJO
uint32_t playerDie(Player* player, Item* corpse);
#endif
Poniżej:
Kod:
uint32_t executeOnDie(Creature* creature, Item* corpse);
Dodajemy:
Kod PHP:
#ifdef ON_PLAYER_DIE_DZOJO
uint32_t executeOnDiePlayer(Player* player, Item* corpse);
#endif
Pod:
Kod:
CreatureEvent* m_logOutEvent;
Dodajemy:
Kod PHP:
#ifdef ON_PLAYER_DIE_DZOJO
CreatureEvent* m_playerDieEvent;
#endif
Poniżej:
Wklejamy:
Kod PHP:
#ifdef ON_PLAYER_DIE_DZOJO
CREATURE_EVENT_DIE_PLAYER,
#endif
No to już wszystko, teraz tylko musimy wejść w opcje projektu i wkleić to:
Kod:
-DON_PLAYER_DIE_DZOJO
Pozdrawiam,
Banco Rozbujca