refactor(Core): DespawnOrUnsummon (#23141)

This commit is contained in:
天鹭
2025-10-13 14:36:23 +08:00
committed by GitHub
parent 8e2e30328f
commit 53238a68d3
148 changed files with 363 additions and 366 deletions
@@ -1480,7 +1480,7 @@ public:
{
if (param == ACTION_SWITCH_PHASE)
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
}
@@ -379,7 +379,7 @@ public:
// Xinef: after soft reset npc is no longer present
if (me->GetInstanceScript()->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
void DoAction(int32 action) override
@@ -1322,7 +1322,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
};
@@ -409,7 +409,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
me->DespawnOrUnsummon(20000);
me->DespawnOrUnsummon(20s);
if (pInstance)
if (Creature* paletress = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_PALETRESS)))
paletress->AI()->DoAction(1);
@@ -722,7 +722,7 @@ public:
void JustDied(Unit* /*pKiller*/) override
{
me->DespawnOrUnsummon(10000);
me->DespawnOrUnsummon(10s);
if (pInstance)
pInstance->SetData(DATA_ARGENT_SOLDIER_DEFEATED, 0);
}
@@ -131,7 +131,7 @@ public:
void EnterEvadeMode(EvadeReason why) override
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
ScriptedAI::EnterEvadeMode(why);
}
@@ -347,7 +347,7 @@ public:
void JustDied(Unit* /*pKiller*/) override
{
me->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
me->DespawnOrUnsummon(10000);
me->DespawnOrUnsummon(10s);
if (pInstance)
pInstance->SetData(DATA_MOUNT_DIED, 0);
}
@@ -1128,7 +1128,7 @@ public:
if (Creature* boss = instance->GetCreature(NPC_ArgentChampionGUID))
{
boss->GetMotionMaster()->MovePoint(0, SpawnPosition);
boss->DespawnOrUnsummon(3000);
boss->DespawnOrUnsummon(3s);
}
}
break;
@@ -574,7 +574,7 @@ public:
if (spell->Id == SPELL_SPIKE_FAIL)
{
me->RemoveAllAuras();
me->DespawnOrUnsummon(1500);
me->DespawnOrUnsummon(1500ms);
}
}
@@ -353,7 +353,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
me->DespawnOrUnsummon(10000);
me->DespawnOrUnsummon(10s);
}
void EnterEvadeMode(EvadeReason /*why*/) override
@@ -434,7 +434,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
me->DespawnOrUnsummon(10000);
me->DespawnOrUnsummon(10s);
}
void EnterEvadeMode(EvadeReason /*why*/) override
@@ -710,7 +710,7 @@ public:
return;
if (urand(0, 2))
me->DespawnOrUnsummon(0);
me->DespawnOrUnsummon(0ms);
}
void MoveToNextPoint()
@@ -884,7 +884,7 @@ class spell_valkyr_ball_periodic_dummy_aura : public AuraScript
creature->GetMotionMaster()->MoveIdle();
creature->CastSpell((Unit*)nullptr, creature->GetEntry() == NPC_CONCENTRATED_LIGHT ? SPELL_UNLEASHED_LIGHT : SPELL_UNLEASHED_DARK, false);
creature->SetDisplayId(11686);
creature->DespawnOrUnsummon(1500);
creature->DespawnOrUnsummon(1500ms);
}
}
@@ -348,9 +348,9 @@ public:
}
if (Creature* c = instance->GetCreature(NPC_AcidmawGUID))
c->DespawnOrUnsummon(10000);
c->DespawnOrUnsummon(10s);
if (Creature* c = instance->GetCreature(NPC_DreadscaleGUID))
c->DespawnOrUnsummon(10000);
c->DespawnOrUnsummon(10s);
if (AchievementTimer + 10 >= GameTime::GetGameTime().count())
DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_JORMUNGAR_ACHIEV);
AchievementTimer = 0;
@@ -420,7 +420,7 @@ public:
for (ObjectGuid const& guid : NPC_ChampionGUIDs)
if (Creature* c = instance->GetCreature(guid))
c->DespawnOrUnsummon(15000);
c->DespawnOrUnsummon(15s);
NPC_ChampionGUIDs.clear();
if (Creature* c = instance->GetCreature(NPC_TirionGUID))
@@ -1314,7 +1314,7 @@ public:
{
c->SetVisible(true);
c->AI()->Talk(SAY_STAGE_4_05);
c->DespawnOrUnsummon(0);
c->DespawnOrUnsummon(0ms);
}
break;
@@ -214,7 +214,7 @@ class spell_trollgore_corpse_explode_aura : public AuraScript
void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (Creature* target = GetTarget()->ToCreature())
target->DespawnOrUnsummon(1);
target->DespawnOrUnsummon(1ms);
}
void Register() override
@@ -89,7 +89,7 @@ class spell_dtk_raise_dead_aura : public AuraScript
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
GetUnitOwner()->ToCreature()->DespawnOrUnsummon(1);
GetUnitOwner()->ToCreature()->DespawnOrUnsummon(1ms);
GetUnitOwner()->SummonCreature(NPC_RISEN_DRAKKARI_WARRIOR, *GetUnitOwner());
}
@@ -242,7 +242,7 @@ public:
{
me->GetMotionMaster()->MoveIdle();
me->CastSpell(b, SPELL_CONSUME_SOUL, true);
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
return;
}
@@ -1153,7 +1153,7 @@ public:
ScriptedAI::EnterEvadeMode(why);
if (me->IsSummon())
me->ToTempSummon()->DespawnOrUnsummon(1);
me->ToTempSummon()->DespawnOrUnsummon(1ms);
}
};
};
@@ -506,7 +506,7 @@ class spell_exploding_orb_auto_grow_aura : public AuraScript
target->RemoveAurasDueToSpell(SPELL_AUTO_GROW);
target->RemoveAurasDueToSpell(SPELL_EXPLODING_ORB_VISUAL);
if (target->IsCreature())
target->ToCreature()->DespawnOrUnsummon(2000);
target->ToCreature()->DespawnOrUnsummon(2s);
}
}
@@ -341,7 +341,7 @@ public:
Unit::Kill(c, c, false);
}
c->DespawnOrUnsummon(10000);
c->DespawnOrUnsummon(10s);
}
pInstance->SetData(DATA_INSTANCE_PROGRESS, INSTANCE_PROGRESS_FINISHED_INTRO);
}
@@ -1381,7 +1381,7 @@ class spell_pos_slave_trigger_closest : public SpellScript
target->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
if (Creature* c = target->ToCreature())
{
c->DespawnOrUnsummon(7000);
c->DespawnOrUnsummon(7s);
c->AI()->Talk(0, p);
c->m_Events.AddEvent(new SlaveRunEvent(*c), c->m_Events.CalculateTime(3000));
}
@@ -1406,7 +1406,7 @@ class spell_pos_rimefang_frost_nova : public SpellScript
{
Unit::Kill(caster, target);
if (target->IsCreature())
target->ToCreature()->DespawnOrUnsummon(30000);
target->ToCreature()->DespawnOrUnsummon(30s);
}
}
@@ -308,7 +308,7 @@ public:
me->CastSpell(me, SPELL_FACE_ME, true);
me->CastSpell(me, SPELL_SURGE_VISUAL, true);
me->CastSpell(me, SPELL_MERGE, false);
me->DespawnOrUnsummon(2000);
me->DespawnOrUnsummon(2s);
events.Reset();
break;
}
@@ -382,7 +382,7 @@ public:
{
me->SetReactState(REACT_PASSIVE);
me->GetMotionMaster()->MoveCharge(1672.96f, 743.488f, 143.338f, 7.0f, POINT_MERGE);
me->DespawnOrUnsummon(1200);
me->DespawnOrUnsummon(1200ms);
}
}
@@ -133,7 +133,7 @@ public:
despawnTime = (summon->GetDistance(target) / 40.0f * 1000) + 500;
}
summon->DespawnOrUnsummon(despawnTime);
summon->DespawnOrUnsummon(Milliseconds(despawnTime));
}
uint32 GetData(uint32 /*type*/) const override
@@ -1213,7 +1213,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
void UpdateAI(uint32 diff) override
@@ -1287,7 +1287,7 @@ public:
me->SetControlled(true, UNIT_STATE_ROOT);
me->StopMoving();
me->CastSpell(me, SPELL_FLAMES, true);
me->DespawnOrUnsummon(999);
me->DespawnOrUnsummon(999ms);
me->CastSpell(me, SPELL_FLAME_SPHERE_DEATH_EFFECT, true);
_exploded = true;
}
@@ -1331,7 +1331,7 @@ public:
me->SetInCombatWithZone();
return;
}
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
void DamageDealt(Unit* target, uint32& damage, DamageEffectType /*damageType*/, SpellSchoolMask /*damageSchoolMask*/) override
@@ -1424,7 +1424,7 @@ public:
case EVENT_BOMB_DESPAWN:
me->RemoveAllAuras();
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->DespawnOrUnsummon(exploded ? 5000 : 0);
me->DespawnOrUnsummon(exploded ? 5s : 0ms);
break;
case EVENT_CONTINUE_FALLING:
me->GetMotionMaster()->MovementExpired(false);
@@ -1030,7 +1030,7 @@ public:
me->GetMotionMaster()->MoveCharge(chargePos[_index].GetPositionX(), chargePos[_index].GetPositionY(), chargePos[_index].GetPositionZ(), 13.0f, POINT_CHARGE);
}
else if (action == ACTION_DESPAWN)
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
private:
@@ -668,7 +668,7 @@ public:
continue;
Creature* c = (*itr)->ToCreature();
if (c->GetEntry() == NPC_SKYBREAKER_MARINE || c->GetEntry() == NPC_SKYBREAKER_SERGEANT || c->GetEntry() == NPC_KOR_KRON_REAVER || c->GetEntry() == NPC_KOR_KRON_SERGEANT)
c->DespawnOrUnsummon(1);
c->DespawnOrUnsummon(1ms);
}
}
}
@@ -880,7 +880,7 @@ public:
init.DisableTransportPathTransformations();
init.MovebyPath(path, 0);
init.Launch();
me->DespawnOrUnsummon(18000);
me->DespawnOrUnsummon(18s);
}
}
@@ -1216,7 +1216,7 @@ public:
init.DisableTransportPathTransformations();
init.MovebyPath(path, 0);
init.Launch();
me->DespawnOrUnsummon(18000);
me->DespawnOrUnsummon(18s);
}
}
@@ -482,7 +482,7 @@ public:
minrange = summon->GetExactDist(p);
}
summon->ToTempSummon()->DespawnOrUnsummon(30000);
summon->ToTempSummon()->DespawnOrUnsummon(30s);
}
else
{
@@ -949,7 +949,7 @@ public:
me->GetMotionMaster()->MovementExpired();
me->StopMoving();
me->SetControlled(true, UNIT_STATE_STUNNED);
me->DespawnOrUnsummon(500);
me->DespawnOrUnsummon(500ms);
break;
default:
break;
@@ -977,7 +977,7 @@ public:
if (!me->GetVictim() || me->GetVictim()->GetGUID() != targetGUID)
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
return;
}
@@ -397,7 +397,7 @@ public:
trapped->NearTeleportTo(exitPos.GetPositionX(), exitPos.GetPositionY(), exitPos.GetPositionZ(), exitPos.GetOrientation(), false);
}
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
void JustDied(Unit* /*killer*/) override
@@ -451,13 +451,13 @@ public:
}
else
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
return;
}
}
else
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
return;
}
@@ -352,7 +352,7 @@ public:
{
if (summon->GetEntry() != 38308 && summon->GetEntry() != 38309 && (!me->IsInCombat() || me->IsInEvadeMode()))
{
summon->DespawnOrUnsummon(1);
summon->DespawnOrUnsummon(1ms);
return;
}
@@ -757,7 +757,7 @@ public:
if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_PROFESSOR_PUTRICIDE)))
{
if (!professor->IsInCombat())
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
else
professor->AI()->JustSummoned(me);
}
@@ -1056,7 +1056,7 @@ class spell_putricide_ooze_channel : public SpellScript
if (targets.empty())
{
FinishCast(SPELL_FAILED_NO_VALID_TARGETS);
GetCaster()->ToCreature()->DespawnOrUnsummon(1); // despawn next update
GetCaster()->ToCreature()->DespawnOrUnsummon(1ms); // despawn next update
return;
}
@@ -1491,7 +1491,7 @@ class spell_putricide_eat_ooze : public SpellScript
{
target->RemoveAurasDueToSpell(SPELL_GROW_STACKER);
target->RemoveAura(grow);
target->DespawnOrUnsummon(1);
target->DespawnOrUnsummon(1ms);
}
else
grow->ModStackAmount(-4);
@@ -211,7 +211,7 @@ public:
if (me->IsAlive() && me->IsInCombat() && !me->IsInEvadeMode())
summons.Summon(summon);
else
summon->DespawnOrUnsummon(1);
summon->DespawnOrUnsummon(1ms);
}
void KilledUnit(Unit* victim) override
@@ -373,7 +373,7 @@ public:
{
if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ROTFACE)))
rotface->AI()->SummonedCreatureDespawn(me);
me->DespawnOrUnsummon(0);
me->DespawnOrUnsummon(0ms);
}
void UpdateAI(uint32 diff) override
@@ -798,7 +798,7 @@ class spell_rotface_unstable_ooze_explosion_suicide_aura : public AuraScript
target->SetVisible(false);
target->RemoveAllAuras();
//target->ToCreature()->DespawnOrUnsummon();
target->ToCreature()->DespawnOrUnsummon(60000);
target->ToCreature()->DespawnOrUnsummon(60s);
}
void Register() override
@@ -720,7 +720,7 @@ public:
player->RemoveAurasDueToSpell(SPELL_ICE_TOMB_DAMAGE);
player->RemoveAurasDueToSpell(SPELL_ASPHYXIATION);
player->RemoveAurasDueToSpell(SPELL_ICE_TOMB_UNTARGETABLE);
me->DespawnOrUnsummon(5000);
me->DespawnOrUnsummon(5s);
}
}
@@ -826,9 +826,9 @@ public:
me->SetDisableGravity(false);
me->GetMotionMaster()->MoveFall();
if (Creature* frostmourne = me->FindNearestCreature(NPC_FROSTMOURNE_TRIGGER, 50.0f))
frostmourne->DespawnOrUnsummon(1);
frostmourne->DespawnOrUnsummon(1ms);
if (Creature* terenas = me->FindNearestCreature(NPC_TERENAS_MENETHIL_OUTRO, 50.0f))
terenas->DespawnOrUnsummon(1);
terenas->DespawnOrUnsummon(1ms);
me->m_Events.AddEvent(new LichKingDeathEvent(*me), me->m_Events.CalculateTime(2500)); // die after spinning anim is over, so death anim is visible
me->m_Events.AddEvent(new LichKingMovieEvent(*me), me->m_Events.CalculateTime(11500));
@@ -886,7 +886,7 @@ public:
break;
case NPC_VALKYR_SHADOWGUARD:
if (_phase == PHASE_THREE || events.HasTimeUntilEvent(EVENT_QUAKE_2))
summon->DespawnOrUnsummon(1);
summon->DespawnOrUnsummon(1ms);
break;
default:
break;
@@ -2078,7 +2078,7 @@ class spell_the_lich_king_shadow_trap_periodic : public SpellScript
if (Aura* a = GetCaster()->GetAura(SPELL_SHADOW_TRAP_AURA))
a->SetDuration(0);
if (GetCaster()->IsCreature())
GetCaster()->ToCreature()->DespawnOrUnsummon(3000);
GetCaster()->ToCreature()->DespawnOrUnsummon(3s);
}
void Register() override
@@ -2134,7 +2134,7 @@ public:
{
me->RemoveAllAuras();
me->CastSpell(me, SPELL_ICE_BURST, true);
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
targetGUID.Clear();
timer = 9999;
me->InterruptNonMeleeSpells(true);
@@ -2238,7 +2238,7 @@ public:
if (Player* plr = ScriptedAI::SelectTargetFromPlayerList(100.0f, 0, true))
plr->CastSpell(me, SPELL_RAGING_SPIRIT_VISUAL_CLONE, true);
else
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
}
@@ -2449,7 +2449,7 @@ public:
if (IsHeroic())
GoSiphon();
else
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
}
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
@@ -2519,7 +2519,7 @@ public:
if (IsHeroic())
GoSiphon();
else
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
}
break;
case POINT_START_SIPHON:
@@ -2883,7 +2883,7 @@ class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScript
c->GetMotionMaster()->Clear(true);
c->StopMoving();
c->CastSpell((Unit*)nullptr, SPELL_SPIRIT_BURST, true);
c->DespawnOrUnsummon(3000);
c->DespawnOrUnsummon(3s);
c->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
}
}
@@ -2999,7 +2999,7 @@ public:
_events.Reset();
me->RemoveAllAuras();
me->DespawnOrUnsummon(500);
me->DespawnOrUnsummon(500ms);
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
lichKing->AI()->SummonedCreatureDespawn(me);
@@ -3050,7 +3050,7 @@ public:
case EVENT_DESPAWN_SELF:
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
lichKing->AI()->SummonedCreatureDespawn(me);
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
break;
default:
break;
@@ -3098,7 +3098,7 @@ public:
{
_events.Reset();
me->CastSpell((Unit*)nullptr, SPELL_RESTORE_SOUL, false);
me->DespawnOrUnsummon(3000);
me->DespawnOrUnsummon(3s);
}
break;
}
@@ -3118,14 +3118,14 @@ public:
if (Creature* warden = me->FindNearestCreature(NPC_SPIRIT_WARDEN, 20.0f))
{
warden->CastSpell((Unit*)nullptr, SPELL_DESTROY_SOUL, false);
warden->DespawnOrUnsummon(2000);
warden->DespawnOrUnsummon(2s);
}
me->CastSpell(me, SPELL_TERENAS_LOSES_INSIDE, false);
me->SetDisplayId(16946);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->DespawnOrUnsummon(2000);
me->DespawnOrUnsummon(2s);
}
}
}
@@ -3414,7 +3414,7 @@ public:
npc_lk_spirit_bombAI(Creature* creature) : NullCreatureAI(creature)
{
me->SetReactState(REACT_PASSIVE);
me->DespawnOrUnsummon(45000); // for safety
me->DespawnOrUnsummon(45s); // for safety
timer = 0;
}
@@ -3447,7 +3447,7 @@ public:
timer = 0;
me->RemoveAllAuras();
me->CastSpell((Unit*)nullptr, SPELL_EXPLOSION, false);
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
}
else
timer -= diff;
@@ -177,14 +177,14 @@ private:
class DelayedCastEvent : public BasicEvent
{
public:
DelayedCastEvent(Creature* trigger, uint32 spellId, ObjectGuid originalCaster, uint32 despawnTime) : _trigger(trigger), _originalCaster(originalCaster), _spellId(spellId), _despawnTime(despawnTime)
DelayedCastEvent(Creature* trigger, uint32 spellId, ObjectGuid originalCaster, Milliseconds despawnTime) : _trigger(trigger), _originalCaster(originalCaster), _spellId(spellId), _despawnTime(despawnTime)
{
}
bool Execute(uint64 /*time*/, uint32 /*diff*/) override
{
_trigger->CastSpell(_trigger, _spellId, false, nullptr, nullptr, _originalCaster);
if (_despawnTime)
if (_despawnTime > 0ms)
_trigger->DespawnOrUnsummon(_despawnTime);
return true;
}
@@ -193,7 +193,7 @@ private:
Creature* _trigger;
ObjectGuid _originalCaster;
uint32 _spellId;
uint32 _despawnTime;
Milliseconds _despawnTime;
};
class AuraRemoveEvent : public BasicEvent
@@ -406,7 +406,7 @@ public:
// this display id was found in sniff instead of the one on aura
me->SetDisplayId(11686);
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->DespawnOrUnsummon(4000);
me->DespawnOrUnsummon(4s);
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_LICH_KING)))
lichKing->CastSpell(lichKing, SPELL_SPAWN_CHEST, false);
_instance->SetData(DATA_WEEKLY_QUEST_ID, 0); // show hidden npc if necessary
@@ -417,12 +417,12 @@ public:
{
if (summon->GetEntry() == NPC_DREAM_PORTAL_PRE_EFFECT)
{
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_SUMMON_DREAM_PORTAL, me->GetGUID(), 6000), summon->m_Events.CalculateTime(15000));
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_SUMMON_DREAM_PORTAL, me->GetGUID(), 6s), summon->m_Events.CalculateTime(15000));
summon->m_Events.AddEvent(new AuraRemoveEvent(summon, SPELL_DREAM_PORTAL_VISUAL_PRE), summon->m_Events.CalculateTime(15000));
}
else if (summon->GetEntry() == NPC_NIGHTMARE_PORTAL_PRE_EFFECT)
{
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_SUMMON_NIGHTMARE_PORTAL, me->GetGUID(), 6000), summon->m_Events.CalculateTime(15000));
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_SUMMON_NIGHTMARE_PORTAL, me->GetGUID(), 6s), summon->m_Events.CalculateTime(15000));
summon->m_Events.AddEvent(new AuraRemoveEvent(summon, SPELL_NIGHTMARE_PORTAL_VISUAL_PRE), summon->m_Events.CalculateTime(15000));
}
}
@@ -750,9 +750,9 @@ public:
void JustSummoned(Creature* summon) override
{
if (summon->GetEntry() == NPC_COLUMN_OF_FROST)
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_COLUMN_OF_FROST_DAMAGE, ObjectGuid::Empty, 8000), summon->m_Events.CalculateTime(2000));
summon->m_Events.AddEvent(new DelayedCastEvent(summon, SPELL_COLUMN_OF_FROST_DAMAGE, ObjectGuid::Empty, 8s), summon->m_Events.CalculateTime(2000));
else if (summon->GetEntry() == NPC_MANA_VOID)
summon->DespawnOrUnsummon(36000);
summon->DespawnOrUnsummon(36s);
}
void UpdateAI(uint32 diff) override
@@ -886,7 +886,7 @@ public:
me->GetMotionMaster()->MoveIdle();
// must use originalCaster the same for all clouds to allow stacking
me->CastSpell(me, EMERALD_VIGOR, false, nullptr, nullptr, _instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER));
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
break;
default:
break;
@@ -1054,7 +1054,7 @@ public:
timer = 0;
me->SetDisplayId(11686);
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->DespawnOrUnsummon(2000);
me->DespawnOrUnsummon(2s);
}
else
timer -= diff;
@@ -1096,7 +1096,7 @@ public:
void JustSummoned(Creature* summon) override
{
if (me->GetInstanceScript() && me->GetInstanceScript()->GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE)
summon->DespawnOrUnsummon(1);
summon->DespawnOrUnsummon(1ms);
else if (Unit* target = SelectTargetFromPlayerList(200.0f))
summon->AI()->AttackStart(target);
}
@@ -534,12 +534,12 @@ public:
if (Creature* factionNPC = ObjectAccessor::GetCreature(*me, _factionNPC))
{
factionNPC->GetMotionMaster()->MovePath(factionNPC->GetSpawnId() * 10, false);
factionNPC->DespawnOrUnsummon(46500);
factionNPC->DespawnOrUnsummon(46500ms);
std::list<Creature*> followers;
factionNPC->GetCreaturesWithEntryInRange(followers, 30, _instance->GetData(DATA_TEAMID_IN_INSTANCE) == TEAM_HORDE ? NPC_KOR_KRON_GENERAL : NPC_ALLIANCE_COMMANDER);
for (Creature* follower : followers)
{
follower->DespawnOrUnsummon(46500);
follower->DespawnOrUnsummon(46500ms);
}
}
me->setActive(false);
@@ -1810,7 +1810,7 @@ public:
{
_vehicleCheckTimer = 500;
if (!me->GetVehicle())
me->DespawnOrUnsummon(100);
me->DespawnOrUnsummon(100ms);
}
else
_vehicleCheckTimer -= diff;
@@ -2151,7 +2151,7 @@ class spell_svalna_remove_spear : public SpellScript
{
if (Unit* vehicle = target->GetVehicleBase())
vehicle->RemoveAurasDueToSpell(SPELL_IMPALING_SPEAR);
target->DespawnOrUnsummon(1);
target->DespawnOrUnsummon(1ms);
}
}
@@ -499,7 +499,7 @@ public:
break;
case NPC_INFILTRATOR_MINCHAR_BQ:
if (BloodQuickeningState == DONE)
creature->DespawnOrUnsummon(1);
creature->DespawnOrUnsummon(1ms);
break;
case NPC_MINCHAR_BEAM_STALKER:
if (BloodQuickeningState != DONE)
@@ -661,7 +661,7 @@ public:
{
c->CastSpell(c, VOID_ZONE_VISUAL, true);
unit->SummonCreature(NPC_RISEN_DEATHSPEAKER_SERVANT, *unit, TEMPSUMMON_MANUAL_DESPAWN);
unit->ToCreature()->DespawnOrUnsummon(3000);
unit->ToCreature()->DespawnOrUnsummon(3s);
}
break;
default:
@@ -507,7 +507,7 @@ public:
{
if (!me->IsInCombat())
{
me->DespawnOrUnsummon(500);
me->DespawnOrUnsummon(500ms);
}
}
if (param == ACTION_GUARDIANS_OFF)
@@ -803,10 +803,10 @@ public:
{
case NPC_ARCANE_OVERLOAD:
summon->CastSpell(summon, SPELL_ARCANE_OVERLOAD_DMG, true);
summon->DespawnOrUnsummon(45000);
summon->DespawnOrUnsummon(45s);
break;
case NPC_STATIC_FIELD:
summon->DespawnOrUnsummon(20000);
summon->DespawnOrUnsummon(20s);
break;
}
}
@@ -1018,7 +1018,7 @@ public:
me->ReplaceAllUnitFlags(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
me->RemoveAura(SPELL_POWER_SPARK_VISUAL);
me->CastSpell(me, SPELL_POWER_SPARK_GROUND_BUFF, true);
me->DespawnOrUnsummon(60000);
me->DespawnOrUnsummon(60s);
}
}
}
@@ -1459,14 +1459,14 @@ public:
else if (pass && pass->IsPlayer() && me->IsAlive())
{
me->SetDisplayId(11686); // prevents nasty falling animation at despawn
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
}
void JustDied(Unit* /*killer*/) override
{
me->SetDisplayId(11686); // prevents nasty falling animation at despawn
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
};
};
@@ -29,7 +29,7 @@ bool EoEDrakeEnterVehicleEvent::Execute(uint64 /*eventTime*/, uint32 /*updateTim
p->CastCustomSpell(60683, SPELLVALUE_BASE_POINT0, 1, &_owner, true);
return true;
}
_owner.DespawnOrUnsummon(1);
_owner.DespawnOrUnsummon(1ms);
return true;
}
@@ -150,7 +150,7 @@ struct boss_magus_telestra : public BossAI
if (spellInfo->Id >= SPELL_FIRE_MAGUS_DEATH && spellInfo->Id <= SPELL_ARCANE_MAGUS_DEATH && caster->ToCreature())
{
events.ScheduleEvent(EVENT_MAGUS_FAIL_ACHIEVEMENT, 5s);
caster->ToCreature()->DespawnOrUnsummon(1000);
caster->ToCreature()->DespawnOrUnsummon(1s);
if (++copiesDied >= 3)
{
@@ -387,7 +387,7 @@ public:
}
else
{
me->DespawnOrUnsummon(2050);
me->DespawnOrUnsummon(2050ms);
me->SetOrientation(2.5f);
me->SetSpeedRate(MOVE_FLIGHT, 1.0f);
Position pos = me->GetPosition();
@@ -444,7 +444,7 @@ public:
}
else
{
me->DespawnOrUnsummon(2050);
me->DespawnOrUnsummon(2050ms);
me->SetOrientation(2.5f);
me->SetSpeedRate(MOVE_FLIGHT, 1.0f);
Position pos = me->GetPosition();
@@ -461,7 +461,7 @@ public:
{
if (despawnTimer >= 5000)
{
me->DespawnOrUnsummon(2050);
me->DespawnOrUnsummon(2050ms);
me->SetOrientation(2.5f);
Position pos = me->GetPosition();
Position offset = { 10.0f, 10.0f, 12.0f, 0.0f };
@@ -269,7 +269,7 @@ public:
me->RemoveAllAuras();
me->CastSpell(me, SPELL_SPARK_DESPAWN, true);
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
}
}
};
@@ -378,7 +378,7 @@ public:
volkhan->AI()->DoAction(ACTION_DESTROYED);
me->CastSpell(me, me->GetMap()->IsHeroic() ? SPELL_SHATTER_H : SPELL_SHATTER_N, true);
me->DespawnOrUnsummon(500);
me->DespawnOrUnsummon(500ms);
}
}
@@ -594,7 +594,7 @@ public:
if (Creature* darkMatterTarget = ObjectAccessor::GetCreature(*me, darkMatterTargetGUID))
{
darkMatterTarget->CastSpell(darkMatterTarget, darkMatterTarget->GetMap()->IsHeroic() ? SPELL_DARK_MATTER_H : SPELL_DARK_MATTER, true);
darkMatterTarget->DespawnOrUnsummon(500);
darkMatterTarget->DespawnOrUnsummon(500ms);
}
break;
}
@@ -443,7 +443,7 @@ public:
if (me->IsInCombat())
events.ScheduleEvent(EVENT_DESPAWN_ALGALON_4, 26s);
events.ScheduleEvent(EVENT_DESPAWN_ALGALON_5, 32s);
me->DespawnOrUnsummon(39000);
me->DespawnOrUnsummon(39s);
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
@@ -795,7 +795,7 @@ public:
case EVENT_OUTRO_11:
me->SetStandState(UNIT_STAND_STATE_STAND);
me->CastSpell(me, SPELL_TELEPORT, false);
me->DespawnOrUnsummon(3000);
me->DespawnOrUnsummon(3s);
break;
case EVENT_DESPAWN_ALGALON_1:
Talk(SAY_ALGALON_DESPAWN_1);
@@ -812,7 +812,7 @@ public:
case EVENT_DESPAWN_ALGALON_5:
me->SetStandState(UNIT_STAND_STATE_STAND);
me->CastSpell(me, SPELL_TELEPORT, false);
me->DespawnOrUnsummon(3000);
me->DespawnOrUnsummon(3s);
break;
case EVENT_CHECK_HERALD_ITEMS:
if (!DoCheckHeraldOfTheTitans())
@@ -886,7 +886,7 @@ public:
events.ScheduleEvent(EVENT_SUMMON_ALGALON, 7500ms);
return;
case 10:
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
return;
case POINT_BRANN_OUTRO:
case POINT_BRANN_OUTRO_END:
@@ -1025,10 +1025,10 @@ public:
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, EVENT_ID_SUPERMASSIVE_START);
caster->CastSpell((Unit*)nullptr, SPELL_BLACK_HOLE_CREDIT, TRIGGERED_FULL_MASK);
caster->ToCreature()->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1);
caster->ToCreature()->DespawnOrUnsummon(1ms);
me->DespawnOrUnsummon(1ms);
if (Creature* voidZone = caster->FindNearestCreature(NPC_ALGALON_VOID_ZONE_VISUAL_STALKER, 10.0f))
voidZone->DespawnOrUnsummon(1);
voidZone->DespawnOrUnsummon(1ms);
}
void UpdateAI(uint32 diff) override
@@ -579,7 +579,7 @@ public:
if (Player* target = SelectTargetFromPlayerList(150))
me->GetMotionMaster()->MoveFollow(target, 0.0f, 0.0f);
else
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
void MovementInform(uint32 type, uint32 /*id*/) override
@@ -588,7 +588,7 @@ public:
{
_boomed = true;
me->CastSpell(me, SPELL_LIGHTNING_BLAST, true);
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
}
}
};
@@ -902,7 +902,7 @@ class spell_assembly_rune_of_summoning_aura : public AuraScript
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (TempSummon* summ = GetTarget()->ToTempSummon())
summ->DespawnOrUnsummon(1);
summ->DespawnOrUnsummon(1ms);
}
void Register() override
@@ -393,7 +393,7 @@ public:
else
{
summons.DespawnAll();
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
if (_feralEssenceStack)
@@ -748,7 +748,7 @@ public:
_despawnTimer = 0;
if (Vehicle* veh = me->GetVehicle())
if (veh->GetPassenger(0) == me || veh->GetPassenger(1) == me)
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
}
@@ -1157,7 +1157,7 @@ public:
_beamTimer = 0;
_removeTimer = 1;
me->DespawnOrUnsummon(5 * IN_MILLISECONDS);
me->DespawnOrUnsummon(5s);
}
}
if (_removeTimer)
@@ -1364,7 +1364,7 @@ public:
liquid->CastSpell(liquid, SPELL_DUST_CLOUD_IMPACT, true);
}
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
}
@@ -1750,7 +1750,7 @@ class spell_vehicle_grab_pyrite : public SpellScript
target->CastSpell(seat, GetEffectValue());
if (target->IsCreature())
target->ToCreature()->DespawnOrUnsummon(1300);
target->ToCreature()->DespawnOrUnsummon(1300ms);
}
}
}
@@ -1024,7 +1024,7 @@ public:
{
me->RemoveAurasDueToSpell(SPELL_AUTO_GROW);
me->CastSpell(me, me->GetMap()->Is25ManRaid() ? SPELL_LIFEBINDER_HEAL_25 : SPELL_LIFEBINDER_HEAL_10, true);
me->DespawnOrUnsummon(2000);
me->DespawnOrUnsummon(2s);
_healTimer = 0;
}
}
@@ -1063,7 +1063,7 @@ public:
if (_despawnTimer >= 22000)
{
me->RemoveAurasDueToSpell(SPELL_AUTO_GROW);
me->DespawnOrUnsummon(2200);
me->DespawnOrUnsummon(2200ms);
_despawnTimer = 0;
}
}
@@ -1203,7 +1203,7 @@ public:
if (Unit* target = SelectTargetFromPlayerList(80))
AttackStart(target);
else
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
events.Repeat(10s);
break;
}
@@ -1250,7 +1250,7 @@ public:
if (_explodeTimer >= 11000)
{
me->CastSpell(me, me->GetMap()->Is25ManRaid() ? SPELL_NATURE_BOMB_DAMAGE_25 : SPELL_NATURE_BOMB_DAMAGE_10, false);
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
_explodeTimer = 0;
}
@@ -450,7 +450,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
me->DespawnOrUnsummon(3000);
me->DespawnOrUnsummon(3s);
if (pInstance)
if (Creature* vezax = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(TYPE_VEZAX)))
@@ -704,18 +704,18 @@ public:
if (Unit* s = me->ToTempSummon()->GetSummonerUnit())
{
if ((s->IsPlayer() && !s->HasAura(SPELL_FLASH_FREEZE_TRAPPED_PLAYER)) || (s->IsCreature() && !s->HasAura(SPELL_FLASH_FREEZE_TRAPPED_NPC)))
me->DespawnOrUnsummon(2000);
me->DespawnOrUnsummon(2s);
else if (s->IsPlayer())
if (InstanceScript* instanceScript = me->GetInstanceScript())
if (instanceScript->GetData(TYPE_HODIR) == NOT_STARTED)
{
s->CastSpell(s, SPELL_FLASH_FREEZE_INSTAKILL, true);
me->DespawnOrUnsummon(2000);
me->DespawnOrUnsummon(2s);
}
}
else
{
me->DespawnOrUnsummon(2000);
me->DespawnOrUnsummon(2s);
}
}
}
@@ -339,9 +339,9 @@ public:
go->SetLootRecipient(me);
}
if (Creature* arm = ObjectAccessor::GetCreature(*me, _left))
arm->DespawnOrUnsummon(3000); // visual
arm->DespawnOrUnsummon(3s); // visual
if (Creature* arm = ObjectAccessor::GetCreature(*me, _right))
arm->DespawnOrUnsummon(3000); // visual
arm->DespawnOrUnsummon(3s); // visual
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->SetDisableGravity(true);
}
@@ -740,17 +740,17 @@ public:
LMK2->InterruptNonMeleeSpells(false);
LMK2->AttackStop();
LMK2->AI()->SetData(1, 0);
LMK2->DespawnOrUnsummon(7000);
LMK2->DespawnOrUnsummon(7s);
LMK2->SetReactState(REACT_PASSIVE);
VX001->InterruptNonMeleeSpells(false);
VX001->AttackStop();
VX001->AI()->SetData(1, 0);
VX001->DespawnOrUnsummon(7000);
VX001->DespawnOrUnsummon(7s);
VX001->SetReactState(REACT_PASSIVE);
ACU->InterruptNonMeleeSpells(false);
ACU->AttackStop();
ACU->AI()->SetData(1, 0);
ACU->DespawnOrUnsummon(7000);
ACU->DespawnOrUnsummon(7s);
ACU->SetReactState(REACT_PASSIVE);
Position exitPos = me->GetPosition();
@@ -1221,7 +1221,7 @@ public:
if (p->GetEntry() == NPC_LEVIATHAN_MKII_CANNON && !apply)
{
Unit::Kill(p, p);
p->ToCreature()->DespawnOrUnsummon(6000);
p->ToCreature()->DespawnOrUnsummon(6s);
}
}
@@ -1343,7 +1343,7 @@ public:
for (uint8 i = 0; i < 2; ++i)
if (Unit* r = vk->GetPassenger(5 + i))
if (r->IsCreature())
r->ToCreature()->DespawnOrUnsummon(1);
r->ToCreature()->DespawnOrUnsummon(1ms);
}
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
@@ -1555,7 +1555,7 @@ public:
void PassengerBoarded(Unit* p, int8 /*seat*/, bool apply) override
{
if (p->GetEntry() == NPC_ROCKET_VISUAL && !apply)
p->ToCreature()->DespawnOrUnsummon(8000);
p->ToCreature()->DespawnOrUnsummon(8s);
}
void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override
@@ -2015,7 +2015,7 @@ public:
if (despawnTimer <= diff)
{
despawnTimer = 60000;
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
else
despawnTimer -= diff;
@@ -2081,7 +2081,7 @@ public:
bot->CastSpell(bot, SPELL_EMERGENCY_MODE, true);
}
me->DespawnOrUnsummon(500);
me->DespawnOrUnsummon(500ms);
timer = 99999;
}
else
@@ -2346,7 +2346,7 @@ public:
CAST_AI(npc_ulduar_flames_initial::npc_ulduar_flames_initialAI, c->AI())->RemoveFlame(me->GetGUID());
me->RemoveAllAuras();
me->DespawnOrUnsummon(2500);
me->DespawnOrUnsummon(2500ms);
}
break;
case SPELL_VX001_FROST_BOMB:
@@ -859,7 +859,7 @@ public:
else if (param == ACTION_SIF_TRANSFORM)
{
me->CastSpell(me, SPELL_SIF_TRANSFORM, true);
me->DespawnOrUnsummon(5000);
me->DespawnOrUnsummon(5s);
events.Reset();
_allowCast = false;
}
@@ -875,7 +875,7 @@ public:
{
case EVENT_SIF_FINISH_DOMINION:
Talk(SAY_SIF_HM_MISSED);
me->DespawnOrUnsummon(5000);
me->DespawnOrUnsummon(5s);
break;
case EVENT_SIF_START_TALK:
Talk(SAY_SIF_AGGRO);
@@ -611,7 +611,7 @@ public:
if (!urand(0, 2))
pXT002->AI()->Talk(EMOTE_SCRAPBOT);
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
}
@@ -657,7 +657,7 @@ public:
if (Unit* target = SelectTargetFromPlayerList(200))
AttackStart(target);
else
me->DespawnOrUnsummon(500);
me->DespawnOrUnsummon(500ms);
}
void UpdateAI(uint32 diff) override
@@ -1807,7 +1807,7 @@ public:
}
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_NONE);
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
}
private:
@@ -80,7 +80,7 @@ struct npc_frost_tomb : public NullCreatureAI
if (PrisonerGUID)
if (Unit* p = ObjectAccessor::GetUnit(*me, PrisonerGUID))
p->RemoveAurasDueToSpell(SPELL_FROST_TOMB_AURA);
me->DespawnOrUnsummon(5000);
me->DespawnOrUnsummon(5s);
}
void UpdateAI(uint32 /*diff*/) override
@@ -344,7 +344,7 @@ public:
if (Creature* pIchoron = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_ICHORON_GUID)))
if (pIchoron->AI())
pIchoron->AI()->DoAction(ACTION_WATER_ELEMENT_KILLED);
me->DespawnOrUnsummon(2500);
me->DespawnOrUnsummon(2500ms);
}
void AttackStart(Unit* /*who*/) override {}
@@ -135,7 +135,7 @@ public:
if (me->GetDistance(c) < 3.0f)
{
c->CastSpell(me, SPELL_ARCANE_POWER, false);
c->DespawnOrUnsummon(8000);
c->DespawnOrUnsummon(8s);
found = true;
}
if (found)
@@ -222,7 +222,7 @@ public:
if (Creature* c = pInstance->instance->GetCreature(SummonedGUID))
c->DespawnOrUnsummon();
}
me->DespawnOrUnsummon(5000);
me->DespawnOrUnsummon(5s);
}
void SummonedCreatureDespawn(Creature* pSummoned) override
@@ -205,7 +205,7 @@ public:
break;
case EVENT_SUMMON_SABOTEOUR:
DoSummon(NPC_SABOTEOUR, me, 2.0f, 0, TEMPSUMMON_CORPSE_DESPAWN);
me->DespawnOrUnsummon(3000);
me->DespawnOrUnsummon(3s);
break;
}
@@ -1136,7 +1136,7 @@ public:
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->SetDisplayId(11686);
me->CastSpell(me, SPELL_TELEPORT_VISUAL, true);
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
}
++count;
}
@@ -63,7 +63,7 @@ class spell_q11919_q11940_drake_hunt_aura : public AuraScript
GetCaster()->CastSpell(GetCaster(), SPELL_DRAKE_HATCHLING_SUBDUED, true);
owner->SetFaction(FACTION_FRIENDLY);
owner->SetImmuneToAll(true);
owner->DespawnOrUnsummon(3 * MINUTE * IN_MILLISECONDS);
owner->DespawnOrUnsummon(180s);
}
void Register() override
@@ -44,7 +44,7 @@ struct npc_preparations_for_war_vehicle : public NullCreatureAI
WPPath* path = sSmartWaypointMgr->GetPath(me->GetEntry());
if (!path || path->empty())
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
return;
}
@@ -108,7 +108,7 @@ struct npc_preparations_for_war_vehicle : public NullCreatureAI
if (me->GetDistance2d(x, y) < 10.0f)
{
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
if (Vehicle* vehicle = me->GetVehicleKit())
if (Unit* passenger = vehicle->GetPassenger(0))
{
@@ -491,9 +491,9 @@ public:
HideNozdormu();
if (Creature* cr = GetCopy())
cr->AI()->Talk(SAY_HOURGLASS_END_2, GetPlayer());
me->DespawnOrUnsummon(500);
me->DespawnOrUnsummon(500ms);
if (GetCopy())
GetCopy()->DespawnOrUnsummon(500);
GetCopy()->DespawnOrUnsummon(500ms);
break;
}
}
@@ -626,7 +626,7 @@ public:
{
Talk(0);
me->RemoveAllAuras();
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
if (TempSummon* summon = me->ToTempSummon())
if (Unit* owner = summon->GetSummonerUnit())
if (Player* player = owner->ToPlayer())
@@ -726,7 +726,7 @@ public:
}
case EVENT_TAKE_OFF:
{
me->DespawnOrUnsummon(4050);
me->DespawnOrUnsummon(4050ms);
me->SetOrientation(2.5f);
me->SetSpeedRate(MOVE_FLIGHT, 1.0f);
Position pos = me->GetPosition();
@@ -1055,12 +1055,12 @@ public:
if (fromReset)
{
if (Creature* c = me->FindNearestCreature(NPC_SAC_LIGHTS_VENGEANCE, 150.0f, true))
c->DespawnOrUnsummon(1);
c->DespawnOrUnsummon(1ms);
if (Creature* c = me->FindNearestCreature(NPC_SAC_LIGHTS_VENGEANCE_VEH_1, 150.0f, true))
c->RemoveAllAuras();
}
if (Creature* c = me->FindNearestCreature(NPC_SAC_LIGHTS_VENGEANCE_VEH_2, 150.0f, true))
c->DespawnOrUnsummon(1);
c->DespawnOrUnsummon(1ms);
if (GameObject* go = me->FindNearestGameObject(GO_SAC_LIGHTS_VENGEANCE_1, 150.0f))
go->Delete();
if (GameObject* go = me->FindNearestGameObject(GO_SAC_LIGHTS_VENGEANCE_2, 150.0f))
@@ -1289,18 +1289,18 @@ public:
{
c->CastSpell(v, SPELL_SAC_KILL_VEGARD, true);
v->SetDisplayId(11686);
v->DespawnOrUnsummon(1000);
v->DespawnOrUnsummon(1s);
b->CastSpell(b, SPELL_SAC_HOLY_BOMB_EXPLOSION, true);
b->CastSpell(b, SPELL_SAC_SUMMON_GO_2, true);
if (Unit* vb = c->GetVehicleBase())
{
if (Unit* pass = vb->GetVehicleKit()->GetPassenger(0))
if (pass->IsCreature())
pass->ToCreature()->DespawnOrUnsummon(1);
pass->ToCreature()->DespawnOrUnsummon(1ms);
vb->RemoveAllAuras();
vb->ToCreature()->DespawnOrUnsummon(1);
vb->ToCreature()->DespawnOrUnsummon(1ms);
}
c->ToCreature()->DespawnOrUnsummon(1);
c->ToCreature()->DespawnOrUnsummon(1ms);
}
}
break;
@@ -1325,7 +1325,7 @@ public:
if (spell->Id == SPELL_SAC_REPEL_HAMMER && target->IsCreature())
{
target->CastSpell((Unit*)nullptr, SPELL_SAC_THROW_HAMMER, true);
target->ToCreature()->DespawnOrUnsummon(1);
target->ToCreature()->DespawnOrUnsummon(1ms);
if (Unit* c = target->GetVehicleBase())
c->RemoveAurasDueToSpell(SPELL_SAC_HOLY_ZONE_AURA);
}
@@ -1559,7 +1559,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
Talk(1);
me->DespawnOrUnsummon(10000);
me->DespawnOrUnsummon(10s);
if (Creature* c = me->FindNearestCreature(NPC_SAC_LICH_KING, 200.0f, true))
c->AI()->SetData(3, 3);
}
@@ -2062,7 +2062,7 @@ class spell_q12096_q12092_dummy : public SpellScript
{
tree->CastSpell(player, SPELL_CREATE_ITEM_BARK);
tree->AI()->Talk(SAY_WALKER_FRIENDLY, player);
tree->DespawnOrUnsummon(1000);
tree->DespawnOrUnsummon(1s);
}
else if (roll == 0) // enemy version
{
@@ -2321,7 +2321,7 @@ class spell_dragonblight_devour_ghoul_periodic : public AuraScript
if (GetUnitOwner() && GetUnitOwner()->ToCreature())
{
GetUnitOwner()->ExitVehicle();
GetUnitOwner()->ToCreature()->DespawnOrUnsummon(2000);
GetUnitOwner()->ToCreature()->DespawnOrUnsummon(2s);
}
}
@@ -590,77 +590,77 @@ public:
if (me->GetPositionY() == -2835.11f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_1, false);
me->DespawnOrUnsummon(20000);
me->DespawnOrUnsummon(20s);
}
if (me->GetPositionY() == -2981.89f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_3, false);
me->DespawnOrUnsummon(18000);
me->DespawnOrUnsummon(18s);
}
if (me->GetPositionY() == -2934.44f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_3, false);
me->DespawnOrUnsummon(9000);
me->DespawnOrUnsummon(9s);
}
if (me->GetPositionY() == -3020.99f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_1, false);
me->DespawnOrUnsummon(22000);
me->DespawnOrUnsummon(22s);
}
if (me->GetPositionY() == -2964.73f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_2, false);
me->DespawnOrUnsummon(15000);
me->DespawnOrUnsummon(15s);
}
if (me->GetPositionY() == -2940.50f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_1, false);
me->DespawnOrUnsummon(20000);
me->DespawnOrUnsummon(20s);
}
if (me->GetPositionY() == -2847.93f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_1, false);
me->DespawnOrUnsummon(30000);
me->DespawnOrUnsummon(30s);
}
if (me->GetPositionY() == -2835.31f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_1, false);
me->DespawnOrUnsummon(27000);
me->DespawnOrUnsummon(27s);
}
if (me->GetPositionY() == -2822.20f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_1, false);
me->DespawnOrUnsummon(25000);
me->DespawnOrUnsummon(25s);
}
if (me->GetPositionY() == -2846.31f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_1, false);
me->DespawnOrUnsummon(21000);
me->DespawnOrUnsummon(21s);
}
if (me->GetPositionY() == -2897.23f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_3, false);
me->DespawnOrUnsummon(15000);
me->DespawnOrUnsummon(15s);
}
if (me->GetPositionY() == -2886.01f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_3, false);
me->DespawnOrUnsummon(25000);
me->DespawnOrUnsummon(25s);
}
if (me->GetPositionY() == -2906.89f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_3, false);
me->DespawnOrUnsummon(25000);
me->DespawnOrUnsummon(25s);
}
if (me->GetPositionY() == -3048.94f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_2, false);
me->DespawnOrUnsummon(30000);
me->DespawnOrUnsummon(30s);
}
if (me->GetPositionY() == -2961.08f)
{
me->GetMotionMaster()->MovePath(WOUNDED_MOVE_2, false);
me->DespawnOrUnsummon(25000);
me->DespawnOrUnsummon(25s);
}
break;
case EVENT_CLEAVE:
@@ -871,7 +871,7 @@ public:
{
if (_following)
if (!me->HasAura(SPELL_FROG_LOVE))
me->DespawnOrUnsummon(1000);
me->DespawnOrUnsummon(1s);
_events.Update(diff);
@@ -898,7 +898,7 @@ public:
break;
case EVENT_LAKEFROG_5:
Talk(SAY_MAIDEN_1);
me->DespawnOrUnsummon(4000);
me->DespawnOrUnsummon(4s);
break;
default:
break;
@@ -44,9 +44,9 @@ public:
if (Creature* cow = me->FindNearestCreature(24797, 5.0f, true))
{
me->CastSpell(me, 44460, true);
me->DespawnOrUnsummon(10000);
me->DespawnOrUnsummon(10s);
cow->CastSpell(cow, 44460, true);
cow->DespawnOrUnsummon(10000);
cow->DespawnOrUnsummon(10s);
if (me->IsSummon())
if (Unit* owner = me->ToTempSummon()->GetSummonerUnit())
owner->CastSpell(owner, 44463, true);
+10 -10
View File
@@ -501,7 +501,7 @@ public:
events.RescheduleEvent(EVENT_SOUL_COAX, 5s);
}
else
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
break;
case EVENT_SOUL_COAX:
Talk(SAY_ARETE_1);
@@ -580,14 +580,14 @@ public:
if (Creature* soul = ObjectAccessor::GetCreature(*me, _landgrenSoulGUID))
{
soul->AI()->Talk(SAY_SOUL_4);
soul->DespawnOrUnsummon(2000);
soul->DespawnOrUnsummon(2s);
}
events.ScheduleEvent(EVENT_SCENE_10, 3s);
break;
case EVENT_SCENE_10:
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_QUESTGIVER);
Talk(SAY_ARETE_6);
me->DespawnOrUnsummon(60000);
me->DespawnOrUnsummon(60s);
break;
}
}
@@ -796,7 +796,7 @@ public:
summon->SetUInt32Value(UNIT_NPC_EMOTESTATE, param);
break;
case ACTION_SUMMON_DESPAWN:
summon->DespawnOrUnsummon(param);
summon->DespawnOrUnsummon(Milliseconds(param));
break;
case ACTION_SUMMON_ORIENTATION:
summon->SetFacingTo(param / 100.0f);
@@ -1022,9 +1022,9 @@ public:
{
if (summon->GetEntry() == NPC_TIRION_LICH_KING)
summon->CastSpell(summon, SPELL_LICH_KINGS_FURY, false);
summon->DespawnOrUnsummon(summon->GetEntry() == NPC_TIRION_LICH_KING ? 10000 : 4000);
summon->DespawnOrUnsummon(summon->GetEntry() == NPC_TIRION_LICH_KING ? 10s : 4s);
}
me->DespawnOrUnsummon(10000);
me->DespawnOrUnsummon(10s);
break;
}
}
@@ -1310,14 +1310,14 @@ public:
turret->HandleSpellClick(owner, 0);
return;
}
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
break;
case EVENT_START_FLIGHT:
{
WPPath* path = sSmartWaypointMgr->GetPath(me->GetEntry());
if (!path || path->empty())
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
return;
}
@@ -1342,7 +1342,7 @@ public:
// Check if path is finished
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != ESCORT_MOTION_TYPE)
{
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
return;
}
@@ -1381,7 +1381,7 @@ public:
station->RemoveAurasDueToSpell(SPELL_INFRA_GREEN_SHIELD);
}
if (!playerPresent)
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
events.ScheduleEvent(EVENT_SYNCHRONIZE_SHIELDS, 1s);
break;
@@ -159,7 +159,7 @@ public:
me->RemoveAllAurasExceptType(SPELL_AURA_MECHANIC_IMMUNITY);
Talk(1);
caster->ToPlayer()->KilledMonsterCredit(me->GetEntry());
me->DespawnOrUnsummon(8000);
me->DespawnOrUnsummon(8s);
me->GetMotionMaster()->MoveJump(8721.94f, -1955, 963, 70.0f, 30.0f);
}
}
@@ -1149,13 +1149,13 @@ public:
}
else
{
me->DespawnOrUnsummon(100);
me->DespawnOrUnsummon(100ms);
}
break;
case 24:
if (me->GetEntry() == NPC_PROPELLED_DEVICE_1)
{
me->DespawnOrUnsummon(100);
me->DespawnOrUnsummon(100ms);
}
break;
default:
@@ -591,7 +591,7 @@ public:
// pointer check not needed
DoCast(rageclaw, SPELL_FREE_RAGECLAW, true);
_rageclawGUID.Clear();
me->DespawnOrUnsummon(1);
me->DespawnOrUnsummon(1ms);
}
void SpellHit(Unit* caster, SpellInfo const* spell) override
@@ -660,7 +660,7 @@ public:
DoCast(me, SPELL_UNSHACKLED, true);
Talk(SAY_RAGECLAW);
me->GetMotionMaster()->MoveRandom(10);
me->DespawnOrUnsummon(10000);
me->DespawnOrUnsummon(10s);
}
}
};
@@ -755,7 +755,7 @@ public:
case EVENT_RECRUIT_2:
me->SetWalk(true);
me->GetMotionMaster()->MovePoint(0, me->GetPositionX() + (cos(_heading) * 10), me->GetPositionY() + (std::sin(_heading) * 10), me->GetPositionZ());
me->DespawnOrUnsummon(5000);
me->DespawnOrUnsummon(5s);
break;
default:
break;