Esempio n. 1
0
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);
        }
    }
}
Esempio n. 2
0
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);
		}
	}
}
Esempio n. 3
0
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();
	}
}
Esempio n. 4
0
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);
		}
	}
}