mirror of
https://github.com/azerothcore/azerothcore-wotlk.git
synced 2025-11-10 12:24:22 +08:00
Compare commits
9 Commits
737257d30e
...
bf412de59a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf412de59a | ||
|
|
283f03bdcd | ||
|
|
57daeed03a | ||
|
|
36d739ee42 | ||
|
|
3ad79541f6 | ||
|
|
be58898d06 | ||
|
|
611a85529d | ||
|
|
040e7a0a4d | ||
|
|
22354daa92 |
3
data/sql/updates/db_world/2025_11_09_02.sql
Normal file
3
data/sql/updates/db_world/2025_11_09_02.sql
Normal file
@ -0,0 +1,3 @@
|
||||
-- DB update 2025_11_09_01 -> 2025_11_09_02
|
||||
--
|
||||
DELETE FROM `creature` WHERE `id1` = 10218;
|
||||
67
data/sql/updates/db_world/2025_11_09_03.sql
Normal file
67
data/sql/updates/db_world/2025_11_09_03.sql
Normal file
@ -0,0 +1,67 @@
|
||||
-- DB update 2025_11_09_02 -> 2025_11_09_03
|
||||
--
|
||||
-- Fixes "Bluff", Set `allowOverride` of action list
|
||||
UPDATE `smart_scripts` SET `action_param3` = 1 WHERE (`entryorguid` IN (23672, 23673, 23675, 24271)) AND (`source_type` = 0) AND (`event_type` = 8) AND (`event_param1` = 44609);
|
||||
|
||||
-- Removes double spawns
|
||||
DELETE FROM `gameobject` WHERE `id` = 186959 AND `guid` IN (264459, 264460, 264461, 264462, 264463, 264464, 264465);
|
||||
|
||||
-- Add missing aura. Usage is unknown
|
||||
DELETE FROM `creature_template_addon` WHERE (`entry` = 24825);
|
||||
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
|
||||
(24825, 0, 0, 0, 0, 0, 0, '44652');
|
||||
|
||||
-- Disable flying vehicle, but causes camera stuttering on rocket jump
|
||||
UPDATE `creature_template_movement` SET `Flight` = 0 WHERE (`CreatureId` = 24825);
|
||||
|
||||
DELETE FROM `creature_text` WHERE (`CreatureID` = 24825) AND (`GroupID` = 1);
|
||||
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
|
||||
(24825, 1, 0, 'Launching.', 12, 0, 100, 0, 0, 0, 23860, 0, 'Iron Rune Construct');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 24825) AND (`source_type` = 0) AND (`id` IN (15, 16));
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(24825, 0, 15, 0, 31, 0, 100, 512, 44609, 0, 3000, 3000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Spellhit \'Bluff\' - Say Line 0'),
|
||||
(24825, 0, 16, 0, 8, 0, 100, 512, 44626, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Spellhit \'Rocket Jump\' - Say Line 1');
|
||||
-- Remove unused 'Say Line 0' in actionscripts
|
||||
DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (2367201, 2367301, 2367501, 2427101)) AND `source_type` = 9 AND `id` = 1 AND `target_type` = 19 AND `target_param1` = 24825 AND `action_type` = 1 AND `target_param2` = 20;
|
||||
|
||||
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` IN (2, 4)) AND (`SourceEntry` = 44608) AND (`SourceId` = 0) AND (`ConditionTypeOrReference` = 31);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(13, 4, 44608, 0, 0, 31, 0, 3, 24826, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 4, 44608, 0, 1, 31, 0, 3, 24827, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 4, 44608, 0, 2, 31, 0, 3, 24828, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 4, 44608, 0, 3, 31, 0, 3, 24829, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 4, 44608, 0, 4, 31, 0, 3, 24831, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 4, 44608, 0, 5, 31, 0, 3, 24832, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 2, 44608, 0, 0, 31, 0, 5, 186953, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 2, 44608, 0, 1, 31, 0, 5, 186960, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 2, 44608, 0, 2, 31, 0, 5, 186961, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 2, 44608, 0, 3, 31, 0, 5, 186963, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 2, 44608, 0, 4, 31, 0, 5, 186962, 0, 0, 0, 0, '', 'Rocket Jump'),
|
||||
(13, 2, 44608, 0, 5, 31, 0, 5, 186964, 0, 0, 0, 0, '', 'Rocket Jump');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 24825);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(24825, 0, 0, 0, 54, 0, 100, 512, 0, 0, 0, 0, 0, 0, 75, 44643, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Just Summoned - Add Aura \'Reputation and Language\''),
|
||||
(24825, 0, 1, 0, 28, 0, 100, 512, 0, 0, 0, 0, 0, 0, 28, 44643, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Passenger Removed - Remove Aura \'Reputation and Language\''),
|
||||
(24825, 0, 2, 0, 38, 0, 100, 512, 0, 1, 0, 0, 0, 0, 53, 2, 24826, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 1 - Start Waypoint Path 24826'),
|
||||
(24825, 0, 3, 0, 38, 0, 100, 512, 0, 2, 0, 0, 0, 0, 53, 2, 24827, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 2 - Start Waypoint Path 24827'),
|
||||
(24825, 0, 4, 0, 38, 0, 100, 512, 0, 3, 0, 0, 0, 0, 53, 2, 24828, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 3 - Start Waypoint Path 24828'),
|
||||
(24825, 0, 5, 0, 38, 0, 100, 512, 0, 4, 0, 0, 0, 0, 53, 2, 24831, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 4 - Start Waypoint Path 24831'),
|
||||
(24825, 0, 6, 0, 38, 0, 100, 512, 0, 5, 0, 0, 0, 0, 53, 2, 24829, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 5 - Start Waypoint Path 24829'),
|
||||
(24825, 0, 7, 0, 38, 0, 100, 512, 0, 6, 0, 0, 0, 0, 53, 2, 24832, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Data Set 0 6 - Start Waypoint Path 24832'),
|
||||
(24825, 0, 8, 0, 58, 0, 100, 512, 0, 0, 0, 0, 0, 0, 28, 44626, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Path 0 Finished - Remove Aura \'Rocket Jump\''),
|
||||
(24825, 0, 9, 0, 31, 0, 100, 512, 44609, 0, 3000, 3000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Target Spellhit \'Bluff\' - Say Line 0'),
|
||||
(24825, 0, 10, 0, 8, 0, 100, 512, 44626, 0, 5000, 5000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Iron Rune Construct - On Spellhit \'Rocket Jump\' - Say Line 1');
|
||||
--
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE (`entry` IN (24826, 24827, 24828, 24829, 24831, 24832));
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` IN (24826, 24827, 24828, 24829, 24831, 24832));
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(24826, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 1'),
|
||||
(24827, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 2, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 2'),
|
||||
(24828, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 3, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 3'),
|
||||
(24831, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 4, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 4'),
|
||||
(24829, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 5'),
|
||||
(24832, 0, 0, 0, 8, 0, 100, 0, 44608, 0, 0, 0, 0, 0, 45, 0, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'On Spellhit \'Rocket Jump\' - Set Data 0 6');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `source_type` = 9 AND `entryorguid` IN (2482600, 2482700, 2482800, 2482900, 2483100, 2483200);
|
||||
6
data/sql/updates/db_world/2025_11_09_04.sql
Normal file
6
data/sql/updates/db_world/2025_11_09_04.sql
Normal file
@ -0,0 +1,6 @@
|
||||
-- DB update 2025_11_09_03 -> 2025_11_09_04
|
||||
--
|
||||
DELETE FROM `spell_custom_attr` WHERE `spell_id` IN (52671, 59834);
|
||||
INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES
|
||||
(52671, 0x00400000),
|
||||
(59834, 0x00400000);
|
||||
@ -2187,12 +2187,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(1);
|
||||
});
|
||||
|
||||
// Halls of Lightning, Arcing Burn
|
||||
ApplySpellFix({ 52671, 59834 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->AttributesEx3 |= SPELL_ATTR3_DOT_STACKING_RULE;
|
||||
});
|
||||
|
||||
// Trial of the Champion, Death's Respite
|
||||
ApplySpellFix({ 68306 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
|
||||
@ -37,15 +37,7 @@ enum Misc
|
||||
NPC_DRAKKARI_SCYTHECLAW = 26628,
|
||||
NPC_DRAKKARI_GUTRIPPER = 26641,
|
||||
|
||||
SAY_CLAW_EMOTE = 0,
|
||||
|
||||
EVENT_SPELL_BELLOWING_ROAR = 1,
|
||||
EVENT_SPELL_GRIEVOUS_BITE = 2,
|
||||
EVENT_SPELL_MANGLING_SLASH = 3,
|
||||
EVENT_SPELL_FEARSOME_ROAR = 4,
|
||||
EVENT_SPELL_PIERCING_SLASH = 5,
|
||||
EVENT_SPELL_RAPTOR_CALL = 6,
|
||||
EVENT_MENACING_CLAW = 7
|
||||
SAY_CLAW_EMOTE = 0
|
||||
};
|
||||
|
||||
class boss_dred : public CreatureScript
|
||||
@ -60,14 +52,52 @@ public:
|
||||
|
||||
struct boss_dredAI : public BossAI
|
||||
{
|
||||
boss_dredAI(Creature* creature) : BossAI(creature, DATA_DRED)
|
||||
{
|
||||
}
|
||||
boss_dredAI(Creature* creature) : BossAI(creature, DATA_DRED) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
BossAI::Reset();
|
||||
_raptorCount = 0;
|
||||
|
||||
ScheduleHealthCheckEvent({ 67, 34 }, [&] {
|
||||
DoCastAOE(SPELL_BELLOWING_ROAR);
|
||||
});
|
||||
}
|
||||
|
||||
void ScheduleTasks() override
|
||||
{
|
||||
ScheduleTimedEvent(20s, [&] {
|
||||
DoCastVictim(SPELL_GRIEVOUS_BITE);
|
||||
}, 20s);
|
||||
|
||||
ScheduleTimedEvent(18s + 500ms, [&] {
|
||||
DoCastVictim(SPELL_MANGLING_SLASH);
|
||||
}, 20s);
|
||||
|
||||
ScheduleTimedEvent(10s, 20s, [&] {
|
||||
DoCastAOE(SPELL_FEARSOME_ROAR);
|
||||
}, 17s);
|
||||
|
||||
ScheduleTimedEvent(17s, [&] {
|
||||
DoCastVictim(SPELL_PIERCING_SLASH);
|
||||
}, 20s);
|
||||
|
||||
if (IsHeroic())
|
||||
{
|
||||
ScheduleTimedEvent(16s, [&] {
|
||||
DoCastSelf(SPELL_RAPTOR_CALL);
|
||||
}, 30s);
|
||||
|
||||
ScheduleTimedEvent(21s, [&] {
|
||||
Talk(SAY_CLAW_EMOTE);
|
||||
me->setAttackTimer(BASE_ATTACK, 2000);
|
||||
me->AttackerStateUpdate(me->GetVictim());
|
||||
if (me->GetVictim())
|
||||
me->AttackerStateUpdate(me->GetVictim());
|
||||
if (me->GetVictim())
|
||||
me->AttackerStateUpdate(me->GetVictim());
|
||||
}, 20s);
|
||||
}
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 data) const override
|
||||
@ -87,67 +117,6 @@ public:
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
_raptorCount = 0;
|
||||
|
||||
events.ScheduleEvent(EVENT_SPELL_BELLOWING_ROAR, 33s);
|
||||
events.ScheduleEvent(EVENT_SPELL_GRIEVOUS_BITE, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_MANGLING_SLASH, 18s + 500ms);
|
||||
events.ScheduleEvent(EVENT_SPELL_FEARSOME_ROAR, 10s, 20s);
|
||||
events.ScheduleEvent(EVENT_SPELL_PIERCING_SLASH, 17s);
|
||||
if (IsHeroic())
|
||||
{
|
||||
events.ScheduleEvent(EVENT_MENACING_CLAW, 21s);
|
||||
events.ScheduleEvent(EVENT_SPELL_RAPTOR_CALL, 20s, 25s);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
switch (events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SPELL_BELLOWING_ROAR:
|
||||
me->CastSpell(me, SPELL_BELLOWING_ROAR, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_BELLOWING_ROAR, 40s);
|
||||
break;
|
||||
case EVENT_SPELL_GRIEVOUS_BITE:
|
||||
me->CastSpell(me->GetVictim(), SPELL_GRIEVOUS_BITE, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_GRIEVOUS_BITE, 20s);
|
||||
break;
|
||||
case EVENT_SPELL_MANGLING_SLASH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_MANGLING_SLASH, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_MANGLING_SLASH, 20s);
|
||||
break;
|
||||
case EVENT_SPELL_FEARSOME_ROAR:
|
||||
me->CastSpell(me, SPELL_FEARSOME_ROAR, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_FEARSOME_ROAR, 17s);
|
||||
break;
|
||||
case EVENT_SPELL_PIERCING_SLASH:
|
||||
me->CastSpell(me->GetVictim(), SPELL_PIERCING_SLASH, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_PIERCING_SLASH, 20s);
|
||||
break;
|
||||
case EVENT_SPELL_RAPTOR_CALL:
|
||||
me->CastSpell(me, SPELL_RAPTOR_CALL, false);
|
||||
events.ScheduleEvent(EVENT_SPELL_RAPTOR_CALL, 20s);
|
||||
break;
|
||||
case EVENT_MENACING_CLAW:
|
||||
Talk(SAY_CLAW_EMOTE);
|
||||
me->setAttackTimer(BASE_ATTACK, 2000);
|
||||
me->AttackerStateUpdate(me->GetVictim());
|
||||
if (me->GetVictim())
|
||||
me->AttackerStateUpdate(me->GetVictim());
|
||||
if (me->GetVictim())
|
||||
me->AttackerStateUpdate(me->GetVictim());
|
||||
events.ScheduleEvent(EVENT_MENACING_CLAW, 20s);
|
||||
break;
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
@ -181,7 +150,16 @@ class spell_dred_raptor_call : public SpellScript
|
||||
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
GetCaster()->SummonCreature(RAND(NPC_DRAKKARI_GUTRIPPER, NPC_DRAKKARI_SCYTHECLAW), -522.02f, -718.89f, 30.26f, 2.41f);
|
||||
std::list<Creature*> raptors;
|
||||
GetCaster()->GetCreatureListWithEntryInGrid(raptors, { NPC_DRAKKARI_SCYTHECLAW, NPC_DRAKKARI_GUTRIPPER }, 100.0f);
|
||||
|
||||
if (!raptors.empty())
|
||||
{
|
||||
Creature* raptor = Acore::Containers::SelectRandomContainerElement(raptors);
|
||||
|
||||
if (GetCaster()->GetVictim())
|
||||
raptor->AI()->AttackStart(GetCaster()->GetVictim());
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
@ -193,16 +171,14 @@ class spell_dred_raptor_call : public SpellScript
|
||||
class achievement_better_off_dred : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_better_off_dred() : AchievementCriteriaScript("achievement_better_off_dred")
|
||||
{
|
||||
}
|
||||
achievement_better_off_dred() : AchievementCriteriaScript("achievement_better_off_dred") { }
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target, uint32 /*criteria_id*/) override
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
return target->GetAI()->GetData(target->GetEntry());
|
||||
return target->GetAI()->GetData(target->GetEntry()) >= 6;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -41,6 +41,7 @@ enum VolkhanOther
|
||||
NPC_VOLKHAN_ANVIL = 28823,
|
||||
NPC_MOLTEN_GOLEM = 28695,
|
||||
NPC_BRITTLE_GOLEM = 28681,
|
||||
NPC_SLAG = 28585,
|
||||
|
||||
// Misc
|
||||
ACTION_SHATTER = 1,
|
||||
@ -77,7 +78,7 @@ enum Yells
|
||||
|
||||
struct boss_volkhan : public BossAI
|
||||
{
|
||||
boss_volkhan(Creature* creature) : BossAI(creature, DATA_VOLKHAN), summons(creature) { }
|
||||
boss_volkhan(Creature* creature) : BossAI(creature, DATA_VOLKHAN) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
@ -104,6 +105,18 @@ struct boss_volkhan : public BossAI
|
||||
{
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
std::list<Creature*> slags;
|
||||
GetCreatureListWithEntryInGrid(slags, me, NPC_SLAG, 100.0f);
|
||||
|
||||
if (!slags.empty())
|
||||
{
|
||||
for (Creature* slag : slags)
|
||||
{
|
||||
if (slag)
|
||||
slag->DespawnOrUnsummon();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GetNextPos()
|
||||
@ -286,8 +299,6 @@ struct boss_volkhan : public BossAI
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
float x, y, z;
|
||||
uint8 PointID;
|
||||
uint8 ShatteredCount;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user