void Npc::onRemoveCreature(Creature* creature, bool isLogout) { Creature::onRemoveCreature(creature, isLogout); if (creature == this) { closeAllShopWindows(); if (npcEventHandler) { npcEventHandler->onCreatureDisappear(creature); } } else if (creature->getPlayer()) { if (npcEventHandler) { npcEventHandler->onCreatureDisappear(creature); } } }
void Npc::onCreatureDisappear(const Creature* creature, uint32_t stackpos, bool isLogout) { Creature::onCreatureDisappear(creature, stackpos, isLogout); if (creature == this) { closeAllShopWindows(); if (m_npcEventHandler) { m_npcEventHandler->onCreatureDisappear(creature); } } else if (creature->getPlayer()) { if (m_npcEventHandler) { m_npcEventHandler->onCreatureDisappear(creature); } } }
void Npc::onRemoveCreature(Creature* creature, bool isLogout) { Creature::onRemoveCreature(creature, isLogout); if (creature == this) { closeAllShopWindows(); if (npcEventHandler) { npcEventHandler->onCreatureDisappear(creature); } } else if (Player* player = creature->getPlayer()) { if (npcEventHandler) { npcEventHandler->onCreatureDisappear(creature); } spectators.erase(player); updateIdleStatus(); } }
void Npc::onCreatureDisappear(const Creature* creature, uint32_t stackpos, bool isLogout) { Creature::onCreatureDisappear(creature, stackpos, isLogout); if (creature == this) { //Close all open shop window's closeAllShopWindows(); if(m_npcEventHandler){ m_npcEventHandler->onCreatureDisappear(creature); } } else if (creature->getPlayer()) { //only players for script events if (m_npcEventHandler) { m_npcEventHandler->onCreatureDisappear(creature); } } }