diff options
Diffstat (limited to 'src')
5 files changed, 9 insertions, 53 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index d0079ad1524..2737c852d98 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1641,6 +1641,8 @@ bool ScriptMgr::CanSpawn(ObjectGuid::LowType spawnId, uint32 entry, CreatureTemp ASSERT(actTemplate); CreatureTemplate const* baseTemplate = sObjectMgr->GetCreatureTemplate(entry); + if (!baseTemplate) + baseTemplate = actTemplate; GET_SCRIPT_RET(CreatureScript, baseTemplate->ScriptID, tmpscript, true); return tmpscript->CanSpawn(spawnId, entry, baseTemplate, actTemplate, cData, map); } 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 d9200fbb2f5..ee44e1391b4 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -829,9 +829,6 @@ class npc_toc_druid : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; @@ -925,9 +922,6 @@ class npc_toc_shaman : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; @@ -1032,9 +1026,6 @@ class npc_toc_paladin : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; @@ -1120,9 +1111,6 @@ class npc_toc_priest : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; @@ -1220,9 +1208,6 @@ class npc_toc_shadow_priest : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } DoSpellAttackIfReady(SPELL_MIND_FLAY); } @@ -1314,9 +1299,6 @@ class npc_toc_warlock : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } DoSpellAttackIfReady(SPELL_SHADOW_BOLT); } @@ -1411,9 +1393,6 @@ class npc_toc_mage : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } DoSpellAttackIfReady(SPELL_FROSTBOLT); } @@ -1516,9 +1495,6 @@ class npc_toc_hunter : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } DoSpellAttackIfReady(SPELL_SHOOT); } @@ -1611,9 +1587,6 @@ class npc_toc_boomkin : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } DoSpellAttackIfReady(SPELL_WRATH); } @@ -1719,9 +1692,6 @@ class npc_toc_warrior : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; @@ -1818,9 +1788,6 @@ class npc_toc_dk : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; @@ -1926,9 +1893,6 @@ class npc_toc_rogue : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; @@ -2060,9 +2024,6 @@ class npc_toc_enh_shaman : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } private: @@ -2172,9 +2133,6 @@ class npc_toc_retro_paladin : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; @@ -2227,9 +2185,6 @@ class npc_toc_pet_warlock : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } } }; 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 64299da79e6..1041d250cc7 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -280,9 +280,6 @@ class boss_gormok : public CreatureScript default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } DoMeleeAttackIfReady(); @@ -617,9 +614,6 @@ struct boss_jormungarAI : public BossAI default: return; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } if (events.IsInPhase(PHASE_MOBILE)) DoMeleeAttackIfReady(); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index ac69f422d5f..ff8eaa5cc37 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -580,7 +580,7 @@ static const float MINION_AGGRO_DISTANCE = 20.0f; struct npc_kelthuzad_minionAI : public ScriptedAI { public: - npc_kelthuzad_minionAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()), _movementTimer(urandms(4,12)), _home(me->GetPosition()) { } + npc_kelthuzad_minionAI(Creature* creature) : ScriptedAI(creature), instance(creature->GetInstanceScript()), pocketId(0), _movementTimer(urandms(4,12)), _home(me->GetPosition()) { } void Reset() override { @@ -601,6 +601,9 @@ struct npc_kelthuzad_minionAI : public ScriptedAI DoZoneInCombat(); return; } + + if (!pocketId) + return; std::list<Creature*> others; me->GetCreatureListWithEntryInGrid(others, me->GetEntry(), 80.0f); diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 168284b31bc..81da50635c3 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -4262,8 +4262,10 @@ class spell_gen_pony_mount_check : public SpellScriptLoader void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) { Unit* caster = GetCaster(); + if (!caster) + return; Player* owner = caster->GetOwner()->ToPlayer(); - if (!caster || !owner || !owner->HasAchieved(ACHIEV_PONY_UP)) + if (!owner || !owner->HasAchieved(ACHIEV_PONY_UP)) return; if (owner->IsMounted()) |