From 3106b8b33390d1810c06169505f7d51561bbe0cc Mon Sep 17 00:00:00 2001 From: joschiwald Date: Tue, 3 Oct 2017 13:40:03 +0200 Subject: Scripts/AQ20: Fixed crash in npc_buru_egg and removed hack in spell_egg_explosion --- src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp index 88097b1ec30..e0567a68e6f 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp @@ -37,8 +37,8 @@ enum Spells SPELL_THORNS = 25640, SPELL_BURU_TRANSFORM = 24721, SPELL_SUMMON_HATCHLING = 1881, - SPELL_EXPLODE = 19593, - SPELL_EXPLODE_2 = 5255, + SPELL_EGG_EXPLOSION = 19593, + SPELL_EXPLOSION_DAMAGE = 5255, SPELL_BURU_EGG_TRIGGER = 26646 }; @@ -225,9 +225,8 @@ class npc_buru_egg : public CreatureScript void JustDied(Unit* /*killer*/) override { - DoCastAOE(SPELL_EXPLODE, true); - DoCastAOE(SPELL_EXPLODE_2, true); // Unknown purpose - DoCast(me, SPELL_SUMMON_HATCHLING, true); + DoCastAOE(SPELL_EGG_EXPLOSION, true); + DoCastAOE(SPELL_SUMMON_HATCHLING, true); if (Creature* buru = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_BURU))) if (boss_buru::boss_buruAI* buruAI = dynamic_cast(buru->AI())) @@ -243,6 +242,7 @@ class npc_buru_egg : public CreatureScript } }; +// 19593 - Egg Explosion class spell_egg_explosion : public SpellScriptLoader { public: @@ -261,7 +261,10 @@ class spell_egg_explosion : public SpellScriptLoader void HandleDummyHitTarget(SpellEffIndex /*effIndex*/) { if (Unit* target = GetHitUnit()) - GetCaster()->DealDamage(target, -16 * GetCaster()->GetDistance(target) + 500); + { + int32 damage = std::max(0, -16 * GetCaster()->GetDistance(target) + 500); + GetCaster()->CastCustomSpell(SPELL_EXPLOSION_DAMAGE, SPELLVALUE_BASE_POINT0, damage, target, true); + } } void Register() override -- cgit v1.2.3