aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.dev@gmail.com>2011-01-02 21:33:37 +0100
committerShauren <shauren.dev@gmail.com>2011-01-02 21:33:37 +0100
commit9c0cd63e933ece1a9b878b90103b305358202d25 (patch)
tree03f63fa2a44ea6af7c1989c0b7979ba28b3feb06
parentc2f98606b2d0c33f13b55c07c4c0e55d3d959676 (diff)
Core/Scripts: Added wrapper method for despawning creatures DespawnOrUnsummon
-rwxr-xr-xsrc/server/game/AI/CoreAI/CombatAI.cpp2
-rwxr-xr-xsrc/server/game/AI/EventAI/CreatureEventAI.cpp2
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp4
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp6
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp2
-rwxr-xr-xsrc/server/game/Entities/Creature/Creature.cpp8
-rwxr-xr-xsrc/server/game/Entities/Creature/Creature.h1
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp2
-rwxr-xr-xsrc/server/game/Scripting/MapScripts.cpp2
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/MovementHandler.cpp2
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraEffects.cpp6
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp18
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/hinterlands.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp4
-rw-r--r--src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp2
-rw-r--r--src/server/scripts/Kalimdor/azshara.cpp10
-rw-r--r--src/server/scripts/Kalimdor/azuremyst_isle.cpp6
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp6
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp10
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp29
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp6
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp8
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp4
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp7
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp6
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp13
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp13
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp54
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp2
-rw-r--r--src/server/scripts/Northrend/borean_tundra.cpp2
-rw-r--r--src/server/scripts/Northrend/grizzly_hills.cpp4
-rw-r--r--src/server/scripts/Northrend/howling_fjord.cpp4
-rw-r--r--src/server/scripts/Northrend/icecrown.cpp2
-rw-r--r--src/server/scripts/Northrend/sholazar_basin.cpp2
-rw-r--r--src/server/scripts/Northrend/zuldrak.cpp4
-rw-r--r--src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp4
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp4
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp2
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp8
-rw-r--r--src/server/scripts/World/npcs_special.cpp4
66 files changed, 153 insertions, 194 deletions
diff --git a/src/server/game/AI/CoreAI/CombatAI.cpp b/src/server/game/AI/CoreAI/CombatAI.cpp
index ebda538c692..1aedf41cd47 100755
--- a/src/server/game/AI/CoreAI/CombatAI.cpp
+++ b/src/server/game/AI/CoreAI/CombatAI.cpp
@@ -310,7 +310,7 @@ void VehicleAI::UpdateAI(const uint32 diff)
{
m_DoDismiss = false;
me->SetVisible(false);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}else m_DismissTimer -= diff;
}
}
diff --git a/src/server/game/AI/EventAI/CreatureEventAI.cpp b/src/server/game/AI/EventAI/CreatureEventAI.cpp
index b66c97e9fb5..fefd89a16a5 100755
--- a/src/server/game/AI/EventAI/CreatureEventAI.cpp
+++ b/src/server/game/AI/EventAI/CreatureEventAI.cpp
@@ -813,7 +813,7 @@ void CreatureEventAI::ProcessAction(CreatureEventAI_Action const& action, uint32
}
case ACTION_T_FORCE_DESPAWN:
{
- me->ForcedDespawn(action.forced_despawn.msDelay);
+ me->DespawnOrUnsummon(action.forced_despawn.msDelay);
break;
}
case ACTION_T_SET_INVINCIBILITY_HP_LEVEL:
diff --git a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
index 330c13ba01e..c41ce1881d8 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
@@ -246,7 +246,7 @@ void npc_escortAI::UpdateAI(const uint32 uiDiff)
me->Respawn();
}
else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -287,7 +287,7 @@ void npc_escortAI::UpdateAI(const uint32 uiDiff)
me->Respawn();
}
else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
diff --git a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
index 415d4dcc07a..06fb3bc667a 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
@@ -192,7 +192,7 @@ void FollowerAI::UpdateAI(const uint32 uiDiff)
if (HasFollowState(STATE_FOLLOW_COMPLETE) && !HasFollowState(STATE_FOLLOW_POSTEVENT))
{
sLog->outDebug("TSCR: FollowerAI is set completed, despawns.");
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -232,7 +232,7 @@ void FollowerAI::UpdateAI(const uint32 uiDiff)
if (bIsMaxRangeExceeded)
{
sLog->outDebug("TSCR: FollowerAI failed because player/group was to far away or not found");
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -266,7 +266,7 @@ void FollowerAI::MovementInform(uint32 uiMotionType, uint32 uiPointId)
AddFollowState(STATE_FOLLOW_RETURNING);
}
else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 245837b5fc6..90faf524ead 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -84,7 +84,7 @@ void SmartAI::UpdateDespawn(const uint32 diff)
mDespawnState++;
}
else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
} else mDespawnTime -= diff;
}
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 2a5e956cc6d..13e3234412f 100755
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -1656,6 +1656,14 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn)
RemoveCorpse(false);
}
+void Creature::DespawnOrUnsummon(uint32 msTimeToDespawn /*= 0*/)
+{
+ if (TempSummon* summon = this->ToTempSummon())
+ summon->UnSummon();
+ else
+ ForcedDespawn(msTimeToDespawn);
+}
+
bool Creature::IsImmunedToSpell(SpellEntry const* spellInfo)
{
if (!spellInfo)
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index b37440e2706..57941675c79 100755
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -596,6 +596,7 @@ class Creature : public Unit, public GridObject<Creature>
bool isDeadByDefault() const { return m_isDeadByDefault; };
void ForcedDespawn(uint32 timeMSToDespawn = 0);
+ void DespawnOrUnsummon(uint32 msTimeToDespawn = 0);
time_t const& GetRespawnTime() const { return m_respawnTime; }
time_t GetRespawnTimeEx() const;
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index c7aadd0f868..c31f4c40221 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -199,7 +199,7 @@ void Vehicle::RemoveAllPassengers()
// creature passengers mounted on player mounts should be despawned at dismount
if (GetBase()->GetTypeId() == TYPEID_PLAYER && passenger->ToCreature())
- passenger->ToCreature()->ForcedDespawn();
+ passenger->ToCreature()->DespawnOrUnsummon();
}
}
diff --git a/src/server/game/Scripting/MapScripts.cpp b/src/server/game/Scripting/MapScripts.cpp
index fd1ad5fa1e3..41396215156 100755
--- a/src/server/game/Scripting/MapScripts.cpp
+++ b/src/server/game/Scripting/MapScripts.cpp
@@ -801,7 +801,7 @@ void Map::ScriptsProcess()
case SCRIPT_COMMAND_DESPAWN_SELF:
// Target or source must be Creature.
if (Creature* cSource = _GetScriptCreatureSourceOrTarget(source, target, step.script, true))
- cSource->ForcedDespawn(step.script->DespawnSelf.DespawnDelay);
+ cSource->DespawnOrUnsummon(step.script->DespawnSelf.DespawnDelay);
break;
case SCRIPT_COMMAND_LOAD_PATH:
diff --git a/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp b/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp
index c7483f1044b..adab71211bb 100755
--- a/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp
@@ -660,7 +660,7 @@ void WorldSession::HandleEjectPassenger(WorldPacket &data)
{
ASSERT(GetPlayer() == vehicle->GetBase());
unit->ExitVehicle();
- unit->ToCreature()->ForcedDespawn(1000);
+ unit->ToCreature()->DespawnOrUnsummon(1000);
ASSERT(!unit->IsOnVehicle(vehicle->GetBase()));
}
else
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 5f646153fad..ffb5d162e89 100755
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -2229,7 +2229,7 @@ void AuraEffect::TriggerSpell(Unit * target, Unit * caster) const
player->AutoStoreLoot(creature->GetCreatureInfo()->SkinLootId,LootTemplates_Skinning,true);
- creature->ForcedDespawn();
+ creature->DespawnOrUnsummon();
}
return;
}
@@ -2279,7 +2279,7 @@ void AuraEffect::TriggerSpell(Unit * target, Unit * caster) const
Creature* creatureTarget = target->ToCreature();
- creatureTarget->ForcedDespawn();
+ creatureTarget->DespawnOrUnsummon();
return;
}
// Tear of Azzinoth Summon Channel - it's not really supposed to do anything,and this only prevents the console spam
@@ -2375,7 +2375,7 @@ void AuraEffect::TriggerSpell(Unit * target, Unit * caster) const
if (permafrostCaster)
{
if (Creature *permafrostCasterAsCreature = permafrostCaster->ToCreature())
- permafrostCasterAsCreature->ForcedDespawn(3000);
+ permafrostCasterAsCreature->DespawnOrUnsummon(3000);
caster->CastSpell(caster, 66181, false);
caster->RemoveAllAuras();
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 0f90f9bdbd4..7ddb0459313 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -879,7 +879,7 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
m_caster->SummonGameObject(179644, creatureTarget->GetPositionX(), creatureTarget->GetPositionY(), creatureTarget->GetPositionZ(), creatureTarget->GetOrientation(), 0, 0, 0, 0, uint32(creatureTarget->GetRespawnTime()-time(NULL)));
sLog->outDebug("SummonGameObject at SpellEfects.cpp EffectDummy for Spell 23019");
- creatureTarget->ForcedDespawn();
+ creatureTarget->DespawnOrUnsummon();
return;
}
@@ -1044,7 +1044,7 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT)
return;
- unitTarget->ToCreature()->ForcedDespawn();
+ unitTarget->ToCreature()->DespawnOrUnsummon();
//cast spell Raptor Capture Credit
m_caster->CastSpell(m_caster, 42337, true, NULL);
@@ -3681,7 +3681,7 @@ void Spell::EffectTameCreature(SpellEffIndex /*effIndex*/)
return;
// "kill" original creature
- creatureTarget->ForcedDespawn();
+ creatureTarget->DespawnOrUnsummon();
uint8 level = (creatureTarget->getLevel() < (m_caster->getLevel() - 5)) ? (m_caster->getLevel() - 5) : creatureTarget->getLevel();
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
index 443766f949b..b57417f323a 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_nefarian.cpp
@@ -123,7 +123,7 @@ public:
if (DespawnTimer <= diff)
{
if (!UpdateVictim())
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
DespawnTimer = 5000;
} else DespawnTimer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
index 4fdb9f0ad03..1c3b68afb43 100644
--- a/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackwingLair/boss_victor_nefarius.cpp
@@ -370,7 +370,7 @@ public:
if (!Nefarian || !Nefarian->isAlive())
{
NefarianGUID = 0;
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
NefCheckTime = 2000;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
index 46acdacf72f..97b6bdbb5f9 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp
@@ -287,7 +287,7 @@ public:
if (Creature* pPortal = Unit::GetCreature(*me, PortalGUID[i]))
{
CAST_AI(mob_fiendish_portal::mob_fiendish_portalAI, pPortal->AI())->DespawnAllImp();
- pPortal->ForcedDespawn();
+ pPortal->DespawnOrUnsummon();
}
PortalGUID[i] = 0;
@@ -351,7 +351,7 @@ public:
if (PortalGUID[i])
{
if (Creature* pPortal = Unit::GetCreature((*me), PortalGUID[i]))
- pPortal->ForcedDespawn();
+ pPortal->DespawnOrUnsummon();
PortalGUID[i] = 0;
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index 47eb09eb5ee..cde236b8ca7 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -149,7 +149,7 @@ public:
void JustReachedHome()
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void SummonTito();
@@ -337,7 +337,7 @@ public:
void JustReachedHome()
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void SpellHit(Unit* /*caster*/, const SpellEntry *Spell)
@@ -440,7 +440,7 @@ public:
void JustReachedHome()
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void AttackStart(Unit* who)
@@ -564,7 +564,7 @@ public:
void JustReachedHome()
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void JustDied(Unit* /*killer*/)
@@ -648,7 +648,7 @@ public:
void JustReachedHome()
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void EnterCombat(Unit* /*who*/)
@@ -784,7 +784,7 @@ public:
if (Creature* pBigBadWolf = pCreature->SummonCreature(CREATURE_BIG_BAD_WOLF, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, HOUR*2*IN_MILLISECONDS))
pBigBadWolf->AI()->AttackStart(pPlayer);
- pCreature->ForcedDespawn();
+ pCreature->DespawnOrUnsummon();
}
return true;
@@ -848,7 +848,7 @@ public:
void JustReachedHome()
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void JustDied(Unit* /*killer*/)
@@ -1086,7 +1086,7 @@ public:
void JustReachedHome()
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void SpellHit(Unit* /*caster*/, const SpellEntry *Spell)
@@ -1176,7 +1176,7 @@ public:
void JustReachedHome()
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void DamageTaken(Unit* /*done_by*/, uint32 &damage)
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index c42ef75cf95..9ae5cca4cc0 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -274,7 +274,7 @@ public:
if (TalkCount > 3)
{
if (Creature* pSpotlight = Unit::GetCreature(*me, m_uiSpotlightGUID))
- pSpotlight->ForcedDespawn();
+ pSpotlight->DespawnOrUnsummon();
SetEscortPaused(false);
return;
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index df4ebfe1639..eeef3d373a5 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -579,7 +579,7 @@ public:
Phase = 3;
break;
case 3:
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
break;
default:
break;
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
index 2cf1dd9e736..f0efca78876 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
@@ -1331,7 +1331,7 @@ public:
break;
case 73:
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
break;
}
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
index 236d7a944f0..c4c6f53e444 100644
--- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
@@ -114,7 +114,7 @@ class boss_arlokk : public CreatureScript
m_pInstance->SetData(TYPE_ARLOKK, NOT_STARTED);
//we should be summoned, so despawn
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void JustDied(Unit* /*pKiller*/)
diff --git a/src/server/scripts/EasternKingdoms/hinterlands.cpp b/src/server/scripts/EasternKingdoms/hinterlands.cpp
index 62cd5990182..363e7f68e87 100644
--- a/src/server/scripts/EasternKingdoms/hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/hinterlands.cpp
@@ -333,7 +333,7 @@ public:
}
else
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index af900d84185..08bfd7128f5 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -411,9 +411,9 @@ public:
case PHASE_CTHUN_DONE:
Creature* pPortal= me->FindNearestCreature(MOB_CTHUN_PORTAL, 10);
if (pPortal)
- pPortal->ForcedDespawn();
+ pPortal->DespawnOrUnsummon();
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
break;
}
}
diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
index 9d653b993a3..5acc80b3438 100644
--- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
+++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp
@@ -371,7 +371,7 @@ public:
{
pInstance->DoUseDoorOrButton(pInstance->GetData64(GO_END_DOOR));
//TODO: leave the area...
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
};
}
}
diff --git a/src/server/scripts/Kalimdor/azshara.cpp b/src/server/scripts/Kalimdor/azshara.cpp
index 6498282b4a6..af47fe61a78 100644
--- a/src/server/scripts/Kalimdor/azshara.cpp
+++ b/src/server/scripts/Kalimdor/azshara.cpp
@@ -80,7 +80,7 @@ public:
// we mustn't remove the Creature in the same round in which we cast the summon spell, otherwise there will be no summons
if (spellhit && morphtimer >= 5000)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
// walk 5 seconds before summoning
@@ -335,7 +335,7 @@ public:
{
if (Must_Die_Timer <= diff)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
} else Must_Die_Timer -= diff;
}
@@ -396,7 +396,7 @@ public:
Player* pPlayer = Unit::GetPlayer(*me, PlayerGUID);
if (!pPlayer)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -445,7 +445,7 @@ public:
if (id == 57)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -489,7 +489,7 @@ public:
{
if (must_die_timer <= diff)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
} else must_die_timer -= diff;
}
return;
diff --git a/src/server/scripts/Kalimdor/azuremyst_isle.cpp b/src/server/scripts/Kalimdor/azuremyst_isle.cpp
index 15d5bab1f93..45be69b22ec 100644
--- a/src/server/scripts/Kalimdor/azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/azuremyst_isle.cpp
@@ -155,7 +155,7 @@ public:
if (RunAwayTimer)
{
if (RunAwayTimer <= diff)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else
RunAwayTimer -= diff;
@@ -611,7 +611,7 @@ public:
if (DespawnTimer <= diff)
{
//once we are able to, despawn us
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
} else DespawnTimer -= diff;
}
@@ -768,7 +768,7 @@ public:
if(FleeTimer)
{
if(FleeTimer <= diff)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else FleeTimer -= diff;
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index b80a6e55227..4c67249751d 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -445,7 +445,7 @@ public:
{
case ACTION_SCARAB_SUBMERGE:
DoCast(SPELL_SUBMERGE_EFFECT);
- me->ForcedDespawn(1000);
+ me->DespawnOrUnsummon(1000);
break;
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index 40d4c56aa80..2b4733a8ce8 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -216,7 +216,7 @@ public:
{
m_pInstance->SetData(TYPE_CRUSADERS, FAIL);
Summons.DespawnAll();
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
break;
case IN_PROGRESS:
@@ -238,7 +238,7 @@ public:
{
m_pInstance->SetData(TYPE_CRUSADERS, DONE);
Summons.DespawnAll();
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
break;
}
@@ -277,7 +277,7 @@ struct boss_faction_championsAI : public ScriptedAI
if (m_pInstance)
if (Creature* pChampionController = Unit::GetCreature((*me), m_pInstance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, FAIL);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
float CalculateThreat(float distance, float armor, uint32 health)
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 7b6ec8d15dc..4cc4c82a767 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -332,7 +332,7 @@ public:
void JustDied(Unit* /*pKiller*/)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void UpdateAI(const uint32 uiDiff)
@@ -340,7 +340,7 @@ public:
if (m_Timer <= uiDiff)
{
if (m_CountMax && m_CountMax == m_Count)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else
{
DoCast(SPELL_INFERNAL_ERUPTION);
@@ -394,7 +394,7 @@ public:
return;
if (m_pInstance && m_pInstance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
if (m_uiFelStreakTimer <= uiDiff)
{
@@ -464,7 +464,7 @@ public:
if (m_Timer <= uiDiff)
{
if (m_CountMax && m_CountMax == m_Count)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else
{
DoCast(SPELL_NETHER_PORTAL);
@@ -524,7 +524,7 @@ public:
return;
if (m_pInstance && m_pInstance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
if (m_uiShivanSlashTimer <= uiDiff)
{
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 019370c4df7..5f60ae822fc 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -159,7 +159,7 @@ public:
{
if (m_pInstance)
m_pInstance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void EnterCombat(Unit* /*pWho*/)
@@ -287,12 +287,7 @@ public:
{
case 0: // JUMP!? Fuck! THAT'S BEEZARR! Would someone PLEASE make MotionMaster->Move* work better?
if (m_bTargetDied)
- {
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
- else
- me->ForcedDespawn();
- }
+ me->DespawnOrUnsummon();
break;
}
}
@@ -392,15 +387,8 @@ struct boss_jormungarAI : public ScriptedAI
{
instanceScript->SetData(TYPE_NORTHREND_BEASTS, SNAKES_DONE);
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
- else
- me->ForcedDespawn();
-
- if (TempSummon* summ = otherWorm->ToTempSummon())
- summ->UnSummon();
- else
- otherWorm->ForcedDespawn();
+ me->DespawnOrUnsummon();
+ otherWorm->DespawnOrUnsummon();
}
else
instanceScript->SetData(TYPE_NORTHREND_BEASTS, SNAKES_SPECIAL);
@@ -413,10 +401,7 @@ struct boss_jormungarAI : public ScriptedAI
if (instanceScript && instanceScript->GetData(TYPE_NORTHREND_BEASTS) != FAIL)
instanceScript->SetData(TYPE_NORTHREND_BEASTS, FAIL);
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
- else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void KilledUnit(Unit *pWho)
@@ -674,7 +659,7 @@ public:
{
casted = false;
me->SetReactState(REACT_PASSIVE);
- me->ForcedDespawn(60*IN_MILLISECONDS);
+ me->DespawnOrUnsummon(60*IN_MILLISECONDS);
}
void UpdateAI(const uint32 /*uiDiff*/)
@@ -775,7 +760,7 @@ public:
{
if (m_pInstance)
m_pInstance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void KilledUnit(Unit *pWho)
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index 2a81ff31632..62d18c394ab 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -169,7 +169,7 @@ struct boss_twin_baseAI : public ScriptedAI
m_pInstance->SetData(TYPE_VALKIRIES, FAIL);
m_pInstance->SetData(DATA_HEALTH_TWIN_SHARED, me->GetMaxHealth());
}
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void MovementInform(uint32 uiType, uint32 uiId)
@@ -623,7 +623,7 @@ public:
{
DoCastAOE(SPELL_UNLEASHED_DARK);
me->GetMotionMaster()->MoveIdle();
- me->ForcedDespawn(500);
+ me->DespawnOrUnsummon(500);
}
m_uiRangeCheckTimer = IN_MILLISECONDS;
}
@@ -657,7 +657,7 @@ public:
{
DoCastAOE(SPELL_UNLEASHED_LIGHT);
me->GetMotionMaster()->MoveIdle();
- me->ForcedDespawn(500);
+ me->DespawnOrUnsummon(500);
}
m_uiRangeCheckTimer = IN_MILLISECONDS;
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
index a250cee19eb..8aa05c87c6c 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
@@ -325,7 +325,7 @@ class boss_lich_king_toc : public CreatureScript
Creature* pTemp = Unit::GetCreature((*me), m_pInstance->GetData64(NPC_ANUBARAK));
if (!pTemp || !pTemp->isAlive())
pTemp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
m_pInstance->SetData(TYPE_EVENT, 0);
m_uiUpdateTimer = 20000;
break;
@@ -472,9 +472,9 @@ class npc_fizzlebang_toc : public CreatureScript
if (Creature* pTemp = Unit::GetCreature(*me, m_pInstance->GetData64(NPC_JARAXXUS)))
pTemp->SetUInt64Value(UNIT_FIELD_TARGET, me->GetGUID());
if (Creature* pTrigger = Unit::GetCreature(*me, m_uiTriggerGUID))
- pTrigger->ForcedDespawn();
+ pTrigger->DespawnOrUnsummon();
if (Creature* pPortal = Unit::GetCreature(*me, m_uiPortalGUID))
- pPortal->ForcedDespawn();
+ pPortal->DespawnOrUnsummon();
m_pInstance->SetData(TYPE_EVENT, 1144);
m_uiUpdateTimer = 10000;
break;
@@ -806,7 +806,7 @@ class npc_tirion_toc : public CreatureScript
} else m_pInstance->SetData(TYPE_EVENT, 6030);
break;
case 6020:
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
m_uiUpdateTimer = 5000;
m_pInstance->SetData(TYPE_EVENT, 6030);
break;
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index 24831c97e9d..59663e812d1 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -379,7 +379,7 @@ class boss_krick : public CreatureScript
case EVENT_OUTRO_1:
{
if (Creature* temp = me->GetCreature(*me, _instanceScript->GetData64(DATA_JAINA_SYLVANAS_1)))
- temp->ForcedDespawn();
+ temp->DespawnOrUnsummon();
Creature* jainaOrSylvanas = NULL;
if (_instanceScript->GetData(DATA_TEAM_IN_INSTANCE) == TEAM_ALLIANCE)
@@ -599,7 +599,7 @@ class spell_exploding_orb_hasty_grow : public SpellScriptLoader
GetTarget()->RemoveAurasDueToSpell(SPELL_AUTO_GROW);
GetTarget()->RemoveAurasDueToSpell(SPELL_EXPLODING_ORB);
if (Creature* creature = GetTarget()->ToCreature())
- creature->ForcedDespawn(1000);
+ creature->DespawnOrUnsummon(1000);
}
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index fd2c5dff9d5..d61300adc92 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -166,7 +166,7 @@ class boss_tyrannus : public CreatureScript
if (Creature* rimefang = GetRimefang())
rimefang->AI()->EnterEvadeMode();
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void KilledUnit(Unit * victim)
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 3c45bc1e7a9..edde915b73c 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -1373,12 +1373,7 @@ class spell_taldaram_flame_ball_visual : public SpellScriptLoader
target->AI()->DoAction(ACTION_FLAME_BALL_CHASE);
}
else // SPELL_FLAME_SPHERE_DEATH_EFFECT
- {
- if (TempSummon* summ = target->ToTempSummon())
- summ->UnSummon();
- else
- target->ForcedDespawn();
- }
+ target->DespawnOrUnsummon();
}
void Register()
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 5ed62438429..6f312c3e99b 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -643,8 +643,8 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
else if (id == POINT_FINAL)
{
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, deathbringerSaurfangGUID))
- deathbringer->ForcedDespawn();
- me->ForcedDespawn();
+ deathbringer->DespawnOrUnsummon();
+ me->DespawnOrUnsummon();
}
}
@@ -908,7 +908,7 @@ class npc_saurfang_event : public CreatureScript
if (action == ACTION_CHARGE && uiNPCindex)
me->GetMotionMaster()->MoveCharge(chargePos[uiNPCindex].GetPositionX(), chargePos[uiNPCindex].GetPositionY(), chargePos[uiNPCindex].GetPositionZ(), 13.0f, POINT_CHARGE);
else if (action == ACTION_DESPAWN)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
private:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index 6cf12245382..72e514bbe29 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -291,10 +291,7 @@ class npc_coldflame : public CreatureScript
target = creOwner->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true); // or the tank if its solo
if (!target)
{
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
- else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -363,17 +360,15 @@ class npc_bone_spike : public CreatureScript
void JustDied(Unit* /*killer*/)
{
if (TempSummon* summ = me->ToTempSummon())
- {
if (Unit* trapped = summ->GetSummoner())
trapped->RemoveAurasDueToSpell(SPELL_IMPALED);
- summ->UnSummon();
- }
+
+ me->DespawnOrUnsummon();
}
void KilledUnit(Unit* victim)
{
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
+ me->DespawnOrUnsummon();
victim->RemoveAurasDueToSpell(SPELL_IMPALED);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index d5a3647fc05..17c326cf891 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -717,10 +717,8 @@ class npc_volatile_ooze : public CreatureScript
AttackStart(target);
me->CastCustomSpell(SPELL_VOLATILE_OOZE_ADHESIVE, SPELLVALUE_MAX_TARGETS, 1, target, false);
}
- else if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
else
newTargetSelectTimer -= diff;
@@ -815,10 +813,8 @@ class spell_putricide_expunged_gas : public SpellScriptLoader
for (uint8 i = 1; i < stack; ++i)
dmg += mod * stack;
}
- else if (TempSummon* summ = GetCaster()->ToTempSummon())
- summ->UnSummon();
else
- GetCaster()->ToCreature()->ForcedDespawn();
+ GetCaster()->ToCreature()->DespawnOrUnsummon();
SetHitDamage(dmg);
}
@@ -1091,10 +1087,7 @@ class spell_putricide_eat_ooze : public SpellScriptLoader
{
target->RemoveAurasDueToSpell(SPELL_GROW_STACKER);
target->RemoveAura(grow);
- if (TempSummon* summ = target->ToTempSummon())
- summ->UnSummon();
- else
- target->ForcedDespawn();
+ target->DespawnOrUnsummon();
}
else
grow->ModStackAmount(-4);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index 5498d715088..f71f7ce1b5c 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -270,13 +270,10 @@ class npc_little_ooze : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- if (TempSummon* summ = me->ToTempSummon())
- {
- summ->UnSummon();
- if (InstanceScript* instance = me->GetInstanceScript())
- if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
- rotface->AI()->SummonedCreatureDespawn(me);
- }
+ me->DespawnOrUnsummon();
+ if (InstanceScript* instance = me->GetInstanceScript())
+ if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
+ rotface->AI()->SummonedCreatureDespawn(me);
}
void UpdateAI(const uint32 diff)
@@ -332,13 +329,10 @@ class npc_big_ooze : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- if (TempSummon* summ = me->ToTempSummon())
- {
- summ->UnSummon();
- if (InstanceScript* instance = me->GetInstanceScript())
- if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
- rotface->AI()->SummonedCreatureDespawn(me);
- }
+ me->DespawnOrUnsummon();
+ if (InstanceScript* instance = me->GetInstanceScript())
+ if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
+ rotface->AI()->SummonedCreatureDespawn(me);
}
void DoAction(const int32 action)
@@ -501,16 +495,13 @@ class spell_rotface_little_ooze_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitUnit() && GetHitUnit()->isAlive()))
+ if (!(GetHitCreature() && GetHitUnit()->isAlive()))
return;
GetCaster()->RemoveAurasDueToSpell(SPELL_LITTLE_OOZE_COMBINE);
- GetHitUnit()->RemoveAurasDueToSpell(SPELL_LITTLE_OOZE_COMBINE);
- GetHitUnit()->CastSpell(GetCaster(), SPELL_OOZE_MERGE, true);
- if (TempSummon* summ = GetHitUnit()->ToTempSummon())
- summ->UnSummon();
- else
- GetHitCreature()->ForcedDespawn();
+ GetHitCreature()->RemoveAurasDueToSpell(SPELL_LITTLE_OOZE_COMBINE);
+ GetHitCreature()->CastSpell(GetCaster(), SPELL_OOZE_MERGE, true);
+ GetHitCreature()->DespawnOrUnsummon();
}
void Register()
@@ -536,12 +527,12 @@ class spell_rotface_large_ooze_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitUnit() && GetHitUnit()->isAlive()))
+ if (!(GetHitCreature() && GetHitCreature()->isAlive()))
return;
if (Aura* unstable = GetCaster()->GetAura(SPELL_UNSTABLE_OOZE))
{
- if (Aura* targetAura = GetHitUnit()->GetAura(SPELL_UNSTABLE_OOZE))
+ if (Aura* targetAura = GetHitCreature()->GetAura(SPELL_UNSTABLE_OOZE))
unstable->ModStackAmount(targetAura->GetStackAmount());
else
unstable->ModStackAmount(1);
@@ -550,13 +541,9 @@ class spell_rotface_large_ooze_combine : public SpellScriptLoader
}
// just for safety
- GetHitUnit()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);
- GetHitUnit()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
-
- if (TempSummon* summ = GetHitUnit()->ToTempSummon())
- summ->UnSummon();
- else if (GetHitCreature())
- GetHitCreature()->ForcedDespawn();
+ GetHitCreature()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);
+ GetHitCreature()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
+ GetHitCreature()->DespawnOrUnsummon();
}
void Register()
@@ -582,7 +569,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitUnit() && GetHitUnit()->isAlive()))
+ if (!(GetHitCreature() && GetHitCreature()->isAlive()))
return;
if (Aura* unstable = GetCaster()->GetAura(SPELL_UNSTABLE_OOZE))
@@ -611,10 +598,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
}
}
- if (TempSummon* summ = GetHitUnit()->ToTempSummon())
- summ->UnSummon();
- else if (GetHitCreature())
- GetHitCreature()->ForcedDespawn();
+ GetHitCreature()->DespawnOrUnsummon();
}
void Register()
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
index 2eda1a7d857..c8702ca3d90 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
@@ -180,7 +180,7 @@ public:
pSpark->GetMotionMaster()->MovePoint(DATA_POINT_CALLBACK, pos);
}
else
- pSpark->ForcedDespawn();
+ pSpark->DespawnOrUnsummon();
}
}
}
@@ -331,7 +331,7 @@ public:
return;
if (uiPointId == DATA_POINT_CALLBACK)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void DamageTaken(Unit * /*pDoneBy*/, uint32 &uiDamage)
@@ -344,7 +344,7 @@ public:
// Despawn if the encounter is not running
if (pInstance && pInstance->GetData(TYPE_IONAR) != IN_PROGRESS)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -367,7 +367,7 @@ public:
}
}
else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
uiCheckTimer = 2*IN_MILLISECONDS;
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
index 693c40b618f..b2772393a2a 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
@@ -185,7 +185,7 @@ public:
if (Creature* pTemp = Unit::GetCreature(*me, *itr))
{
if (pTemp->isAlive())
- pTemp->ForcedDespawn();
+ pTemp->DespawnOrUnsummon();
}
}
@@ -432,7 +432,7 @@ public:
// This is the dummy effect of the spells
if (pSpell->Id == SPELL_SHATTER_N || pSpell->Id == SPELL_SHATTER_H)
if (me->GetEntry() == NPC_BRITTLE_GOLEM)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void UpdateAI(const uint32 uiDiff)
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
index fe7061f024b..885462ea8d8 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
@@ -343,7 +343,7 @@ public:
{
Creature* pTemp = Unit::GetCreature(*me, pInstance ? (*itr) : 0);
if (pTemp && pTemp->isAlive())
- pTemp->ForcedDespawn();
+ pTemp->DespawnOrUnsummon();
}
lDwarfGUIDList.clear();
}
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp
index caee75d546d..7479d4d3a98 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp
@@ -167,7 +167,7 @@ public:
if (Creature* pTemp = Unit::GetCreature(*me, *itr))
{
if (pTemp->isAlive())
- pTemp->ForcedDespawn();
+ pTemp->DespawnOrUnsummon();
}
}
m_lCollapsingStarGUIDList.clear();
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
index 7075c35809a..a8af8e4ed41 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
@@ -511,7 +511,7 @@ public:
me->setFaction(16); // Same faction as bosses
DoCast(SPELL_RUNE_OF_POWER);
- me->ForcedDespawn(60000);
+ me->DespawnOrUnsummon(60000);
}
};
};
@@ -572,7 +572,7 @@ public:
{
me->CastSpell(me, SPELL_RUNE_OF_SUMMONING_SUMMON, false);
if (++summonCount == 10) // TODO: Find out if this amount is right
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else
summonTimer = 2000; // TODO: Find out of timer is right
}
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
index 36435a20670..838413d9c9f 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
@@ -400,7 +400,7 @@ public:
me->SetHealth(me->GetMaxHealth());
me->RemoveAllAuras();
DoCast(me, SPELL_SARONITE_VAPORS);
- me->ForcedDespawn(30000);
+ me->DespawnOrUnsummon(30000);
if (Creature * pVezax = me->GetCreature(*me, pInstance ? pInstance->GetData64(TYPE_VEZAX) : 0))
pVezax->AI()->DoAction(ACTION_VAPORS_DIE);
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp
index 4c2a1257501..1960ff2e4fa 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp
@@ -330,7 +330,7 @@ public:
if (pIgnis->AI())
pIgnis->AI()->DoAction(ACTION_REMOVE_BUFF);
- me->ForcedDespawn(1000);
+ me->DespawnOrUnsummon(1000);
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
index 2ea6cdfe7b8..a6b9f228620 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
@@ -616,7 +616,7 @@ public:
pXT002->ModifyHealth(int32(pXT002->CountPctFromMaxHealth(1)));
// Despawns the scrapbot
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
}
@@ -739,7 +739,7 @@ public:
DoCast(me, SPELL_BOOM);
//Despawns the boombot
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
index 1b52f682043..5dc022edf30 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
@@ -263,7 +263,7 @@ public:
break;
case CREATURE_TRIGGER:
pSummoned->CastSpell((Unit*)NULL, SPELL_FREEZING_CLOUD, true);
- pSummoned->ForcedDespawn(10*IN_MILLISECONDS);
+ pSummoned->DespawnOrUnsummon(10*IN_MILLISECONDS);
break;
}
Summons.Summon(pSummoned);
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index 05eb0aaba04..c1970aaadb4 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -193,7 +193,7 @@ public:
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetDisplayId(DATA_SVALA_DISPLAY_ID);
- pArthas->ToTempSummon()->UnSummon();
+ pArthas->DespawnOrUnsummon();
uiArthasGUID = 0;
Phase = FINISHED;
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
index 14cb69592a6..e06c4018f0f 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
@@ -243,7 +243,7 @@ class mob_tempest_minion : public CreatureScript
if (overchargedAura->GetStackAmount() == 10)
{
DoCast(me, SPELL_OVERCHARGED_BLAST);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
DoScriptText(EMOTE_MINION_RESPAWN, me);
}
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
index fe1c48cae73..6213a1cd82c 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
@@ -207,7 +207,7 @@ public:
if (killTimer <= diff)
{
if (!UpdateVictim())
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
killTimer = 10000;
}
else
diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
index b6f7c137329..6387cfc8727 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
@@ -95,7 +95,7 @@ public:
{
if (pInstance && pInstance->GetData(DATA_REMOVE_NPC) == 1)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
pInstance->SetData(DATA_REMOVE_NPC, 0);
}
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index 09f555950a5..7b8d72194bd 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -376,7 +376,7 @@ public:
{
if (pIchoron->AI())
pIchoron->AI()->DoAction(ACTION_WATER_ELEMENT_HIT);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
}
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index bdf073e5911..012d67f1846 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -586,7 +586,7 @@ public:
if (pInstance->GetData(DATA_REMOVE_NPC) == 1)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
pInstance->SetData(DATA_REMOVE_NPC, 0);
}
diff --git a/src/server/scripts/Northrend/borean_tundra.cpp b/src/server/scripts/Northrend/borean_tundra.cpp
index 07a348326a0..1f10da283ae 100644
--- a/src/server/scripts/Northrend/borean_tundra.cpp
+++ b/src/server/scripts/Northrend/borean_tundra.cpp
@@ -775,7 +775,7 @@ public:
break;
case 7:
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
IntroPhase = 0;
IntroTimer = 0;
break;
diff --git a/src/server/scripts/Northrend/grizzly_hills.cpp b/src/server/scripts/Northrend/grizzly_hills.cpp
index c030c6058da..67e0ad5d776 100644
--- a/src/server/scripts/Northrend/grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/grizzly_hills.cpp
@@ -591,7 +591,7 @@ public:
void MovementInform(uint32, uint32 id)
{
if (id == 1)
- me->ForcedDespawn(DespawnTimer);
+ me->DespawnOrUnsummon(DespawnTimer);
}
void SpellHit(Unit *caster, const SpellEntry *spell)
@@ -606,7 +606,7 @@ public:
else
{
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->ForcedDespawn(DespawnTimer);
+ me->DespawnOrUnsummon(DespawnTimer);
}
}
diff --git a/src/server/scripts/Northrend/howling_fjord.cpp b/src/server/scripts/Northrend/howling_fjord.cpp
index 57c46659336..1729f5f55d5 100644
--- a/src/server/scripts/Northrend/howling_fjord.cpp
+++ b/src/server/scripts/Northrend/howling_fjord.cpp
@@ -111,7 +111,7 @@ public:
case 23:
if (pPlayer)
pPlayer->GroupEventHappens(QUEST_TRAIL_OF_FIRE, me);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
break;
case 5:
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER,10.0f))
@@ -205,7 +205,7 @@ public:
switch(i)
{
case 26:
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
break;
}
}
diff --git a/src/server/scripts/Northrend/icecrown.cpp b/src/server/scripts/Northrend/icecrown.cpp
index a5226e7cfd7..808717ab6c9 100644
--- a/src/server/scripts/Northrend/icecrown.cpp
+++ b/src/server/scripts/Northrend/icecrown.cpp
@@ -242,7 +242,7 @@ public:
uiDamage = 0;
CAST_PLR(pDoneBy)->KilledMonsterCredit(NPC_ARGENT_VALIANT_CREDIT,0);
me->setFaction(35);
- me->ForcedDespawn(5000);
+ me->DespawnOrUnsummon(5000);
me->SetHomePosition(me->GetPositionX(),me->GetPositionY(),me->GetPositionZ(),me->GetOrientation());
EnterEvadeMode();
}
diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp
index 929647ec130..d18a00c7644 100644
--- a/src/server/scripts/Northrend/sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/sholazar_basin.cpp
@@ -514,7 +514,7 @@ public:
if (spellId)
pPlayer->CastSpell(pPlayer, spellId, true);
DoScriptText(SAY_DWARF_HELP, pCreature);
- pCreature->ForcedDespawn();
+ pCreature->DespawnOrUnsummon();
return true;
}
};
diff --git a/src/server/scripts/Northrend/zuldrak.cpp b/src/server/scripts/Northrend/zuldrak.cpp
index 7b2eb80e91d..f7bb2464817 100644
--- a/src/server/scripts/Northrend/zuldrak.cpp
+++ b/src/server/scripts/Northrend/zuldrak.cpp
@@ -1153,10 +1153,8 @@ public:
{
if (!SummonList.empty())
for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr)
- {
if (Creature* pTemp = Unit::GetCreature(*me, *itr))
- pTemp->ForcedDespawn();
- }
+ pTemp->DespawnOrUnsummon();
if (Player* pPlayer = pKiller->GetCharmerOrOwnerPlayerOrPlayerItself())
pPlayer->GetCharmerOrOwnerPlayerOrPlayerItself()->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_FROM_BEYOND, pKiller);
diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
index 2d43628841a..e67cec43b0e 100644
--- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp
@@ -300,7 +300,7 @@ public:
me->InterruptNonMeleeSpells(true);
DoCast(me, SPELL_ETHEREAL_APPRENTICE, true);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
} else Apprentice_Timer -= diff;
}
diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
index e1bb175be62..30889ff69ad 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp
@@ -168,7 +168,7 @@ public:
{
if (Creature* Essence = Unit::GetCreature(*me, EssenceGUID))
{
- Essence->ForcedDespawn();
+ Essence->DespawnOrUnsummon();
}
EssenceGUID = 0;
}
@@ -324,7 +324,7 @@ public:
{
DoScriptText(DESI_SAY_AFTER, Essence);
}
- Essence->ForcedDespawn();
+ Essence->DespawnOrUnsummon();
me->SetUInt32Value(UNIT_NPC_EMOTESTATE,0);
EssenceGUID = 0;
SoulCount = 0;
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
index 0ed1e6718d4..bb2f006c366 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
@@ -338,7 +338,7 @@ public:
Creature* pCreature = Unit::GetCreature((*me), InnderDemon[i]);
if (pCreature && pCreature->isAlive())
{
- pCreature->ForcedDespawn();
+ pCreature->DespawnOrUnsummon();
}
InnderDemon[i] = 0;
}
@@ -390,7 +390,7 @@ public:
if (Demon)
{
if (Creature* pDemon = Unit::GetCreature(*me, Demon))
- pDemon->ForcedDespawn();
+ pDemon->DespawnOrUnsummon();
}
if (pInstance)
pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, DONE);
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
index 9f5c80eaf9a..b89fa7af86b 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
@@ -337,7 +337,7 @@ public:
DoCast(me->getVictim(), SPELL_GLOBULE_EXPLOSION);
//despawn
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
Check_Timer = 500;
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
index 03376be7056..fb2ef71c576 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
@@ -180,7 +180,7 @@ class mob_abyssal : public CreatureScript
if (Despawn_Timer <= diff)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
else Despawn_Timer -= diff;
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 303eb9fa123..a9fa3a4928e 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -49,7 +49,7 @@ public:
pCreatureTarget->AI()->AttackStart(GetCaster());
if (_despawnTime)
- pCreatureTarget->ForcedDespawn(_despawnTime);
+ pCreatureTarget->DespawnOrUnsummon(_despawnTime);
}
}
@@ -166,7 +166,7 @@ public:
if (uiNewEntry)
{
pCreatureTarget->UpdateEntry(uiNewEntry);
- pCreatureTarget->ForcedDespawn(DESPAWN_TIME);
+ pCreatureTarget->DespawnOrUnsummon(DESPAWN_TIME);
}
}
}
@@ -460,7 +460,7 @@ public:
}
pCaster->CastSpell(pCaster, spellId, true, castItem);
pCaster->CastSpell(pCaster, SPELL_ROBOT_KILL_CREDIT, true);
- pTarget->ForcedDespawn();
+ pTarget->DespawnOrUnsummon();
}
void Register()
@@ -652,7 +652,7 @@ public:
{
pPlayer->CastSpell(pPlayer, SPELL_TRIGGER_AID_OF_THE_EARTHEN, true, NULL);
pPlayer->KilledMonsterCredit(NPC_FALLEN_EARTHEN_DEFENDER, 0);
- pTarget->ForcedDespawn();
+ pTarget->DespawnOrUnsummon();
}
}
}
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index 87ce6d43751..e9b5e36d8bf 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -1965,7 +1965,7 @@ public:
despawnTimer -= diff;
else
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
return;
}
@@ -2073,7 +2073,7 @@ public:
else
{
if (uiDespawnTimer <= uiDiff)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else
uiDespawnTimer -= uiDiff;
}