Exemplo n.º 1
0
void TemporarySummon::UnSummon(uint32 delay)
{
    if (delay > 0)
    {
        m_type = TEMPSUMMON_TIMED_OR_DEAD_DESPAWN;
        m_timer = delay;
        return;
    }

    m_isActive = false;

    CombatStop();

    if (GetSummonerGuid().IsCreatureOrVehicle())
    {
        if (Creature* sum = GetMap()->GetCreature(GetSummonerGuid()))
        {
            if (sum->AI())
                sum->AI()->SummonedCreatureDespawn(this);
        }
    }

    KillAllEvents(false);

    AddObjectToRemoveList();

    // Prevent double unsummonig before remove from world
    m_type = TEMPSUMMON_MANUAL_DESPAWN;
}
Exemplo n.º 2
0
EventProcessor::~EventProcessor()
{
    KillAllEvents(true);
}
Exemplo n.º 3
0
void WorldObjectEventProcessor::CleanupEventList()
{
    KillAllEvents(true);
    m_aborting = false;
}
Exemplo n.º 4
0
void WorldObjectEventProcessor::CleanupEventList()
{
    KillAllEvents(false);
}