mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
fix(Scripts/ZulGurub): Improvements to Gah'zranka: (#11908)
Summoned Mudskunk Lure object and added visual splash. Added pathing to Gahzranka Corrected visual coordinates. Gahzranka can be summoned only once per instance. Fixes #11560
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
--
|
||||
UPDATE `spell_target_position` SET `PositionX`=-11688.5, `PositionY`=-1737.74, `PositionZ`=8.409842 WHERE `id` IN (24325, 24593);
|
||||
DELETE FROM `event_scripts` WHERE `id`=9104;
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id`=24325;
|
||||
INSERT INTO `spell_script_names` VALUES
|
||||
(24325, 'spell_pagles_point_cast');
|
||||
|
||||
DELETE FROM `waypoint_data` WHERE `id`=151140;
|
||||
INSERT INTO `waypoint_data` VALUES
|
||||
(151140,1,-11697.263,-1759.001,10.364448,0,0,0,0,100,0),
|
||||
(151140,2,-11689.899,-1776.087,12.593142,6.098,0,0,0,100,0);
|
||||
@@ -32,7 +32,8 @@ enum Spells
|
||||
SPELL_FROSTBREATH = 16099,
|
||||
SPELL_MASSIVEGEYSER = 22421,
|
||||
SPELL_SLAM = 24326,
|
||||
SPELL_THRASH = 3417 // Triggers 3391
|
||||
SPELL_THRASH = 3417, // Triggers 3391
|
||||
SPELL_SPLASH = 24593
|
||||
};
|
||||
|
||||
enum Events
|
||||
@@ -42,6 +43,11 @@ enum Events
|
||||
EVENT_SLAM = 3
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
GAMEOBJECT_MUDSKUNK_LURE = 180346
|
||||
};
|
||||
|
||||
class boss_gahzranka : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -51,6 +57,11 @@ public:
|
||||
{
|
||||
boss_gahzrankaAI(Creature* creature) : BossAI(creature, DATA_GAHZRANKA) { }
|
||||
|
||||
void IsSummonedBy(Unit* /*summoner*/) override
|
||||
{
|
||||
me->GetMotionMaster()->MovePath(me->GetEntry() * 10, false);
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_Reset();
|
||||
@@ -147,8 +158,45 @@ private:
|
||||
bool _wipeThreat = false;
|
||||
};
|
||||
|
||||
class spell_pagles_point_cast : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_pagles_point_cast);
|
||||
|
||||
void OnEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* caster = GetCaster())
|
||||
{
|
||||
if (InstanceScript* instanceScript = caster->GetInstanceScript())
|
||||
{
|
||||
if (!instanceScript->GetData(DATA_GAHZRANKA))
|
||||
{
|
||||
caster->m_Events.AddEventAtOffset([caster]()
|
||||
{
|
||||
if (GameObject* lure = caster->SummonGameObject(GAMEOBJECT_MUDSKUNK_LURE, -11688.5f, -1737.74f, 10.409842f, 1.f, 0.f, 0.f, 0.f, 0.f, 30 * IN_MILLISECONDS))
|
||||
{
|
||||
caster->m_Events.AddEventAtOffset([caster, lure]()
|
||||
{
|
||||
if (lure)
|
||||
lure->DespawnOrUnsummon();
|
||||
caster->CastSpell(caster, SPELL_SPLASH, true);
|
||||
caster->SummonCreature(NPC_GAHZRANKA, -11688.5f, -1723.74f, -5.78f, 0.f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5 * DAY * IN_MILLISECONDS);
|
||||
}, 5s);
|
||||
}
|
||||
}, 2s);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectLaunch += SpellEffectFn(spell_pagles_point_cast::OnEffect, EFFECT_1, SPELL_EFFECT_SEND_EVENT);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_gahzranka()
|
||||
{
|
||||
new boss_gahzranka();
|
||||
RegisterSpellScript(spell_gahzranka_slam);
|
||||
RegisterSpellScript(spell_pagles_point_cast);
|
||||
}
|
||||
|
||||
@@ -79,6 +79,11 @@ public:
|
||||
marli->AI()->JustSummoned(creature);
|
||||
}
|
||||
break;
|
||||
case NPC_GAHZRANKA:
|
||||
_gahzrankaGUID = creature->GetGUID();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
InstanceScript::OnCreatureCreate(creature);
|
||||
@@ -119,6 +124,16 @@ public:
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type) const override
|
||||
{
|
||||
if (type == DATA_GAHZRANKA)
|
||||
{
|
||||
return _gahzrankaGUID || GetBossState(DATA_GAHZRANKA) == DONE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
@@ -170,6 +185,7 @@ public:
|
||||
ObjectGuid _arlokkGUID;
|
||||
ObjectGuid _goGongOfBethekkGUID;
|
||||
ObjectGuid _hakkarGUID;
|
||||
ObjectGuid _gahzrankaGUID;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -62,7 +62,8 @@ enum CreatureIds
|
||||
NPC_CHAINED_SPIRIT = 15117, // Mandokir Event
|
||||
NPC_HAKKAR = 14834,
|
||||
NPC_ZULGURUB_TIGER = 11361,
|
||||
NPC_BRAIN_WASH_TOTEM = 15112
|
||||
NPC_BRAIN_WASH_TOTEM = 15112,
|
||||
NPC_GAHZRANKA = 15114
|
||||
};
|
||||
|
||||
enum GameobjectIds
|
||||
|
||||
Reference in New Issue
Block a user