fix(Scripts/Freya): misc improvements (#11665)
This commit is contained in:
@@ -183,25 +183,26 @@ enum FreyaEvents
|
|||||||
EVENT_DETONATING_LASHER_FLAME_LASH = 55,
|
EVENT_DETONATING_LASHER_FLAME_LASH = 55,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FreyaSounds
|
enum Texts
|
||||||
{
|
{
|
||||||
// STONEBARK
|
// Elder Brightleaf / Elder Ironbranch / Elder Stonebark
|
||||||
SOUND_STONEBARK_AGGRO = 15500,
|
SAY_ELDER_AGGRO = 0,
|
||||||
SOUND_STONEBARK_SLAY1 = 15501,
|
SAY_ELDER_SLAY = 1,
|
||||||
SOUND_STONEBARK_SLAY2 = 15502,
|
SAY_ELDER_DEATH = 2,
|
||||||
SOUND_STONEBARK_DEATH = 15503,
|
|
||||||
|
|
||||||
// IRONBRANCH
|
// Freya
|
||||||
SOUND_IRONBRANCH_AGGRO = 15493,
|
SAY_AGGRO = 0,
|
||||||
SOUND_IRONBRANCH_SLAY1 = 15494,
|
SAY_AGGRO_WITH_ELDER = 1,
|
||||||
SOUND_IRONBRANCH_SLAY2 = 15495,
|
SAY_SLAY = 2,
|
||||||
SOUND_IRONBRANCH_DEATH = 15496,
|
SAY_DEATH = 3,
|
||||||
|
SAY_BERSERK = 4,
|
||||||
// BRIGHTLEAF
|
SAY_SUMMON_CONSERVATOR = 5,
|
||||||
SOUND_BRIGHTLEAF_AGGRO = 15483,
|
SAY_SUMMON_TRIO = 6,
|
||||||
SOUND_BRIGHTLEAF_SLAY1 = 15485,
|
SAY_SUMMON_LASHERS = 7,
|
||||||
SOUND_BRIGHTLEAF_SLAY2 = 15486,
|
EMOTE_LIFEBINDERS_GIFT = 8,
|
||||||
SOUND_BRIGHTLEAF_DEATH = 15487,
|
EMOTE_ALLIES_OF_NATURE = 9,
|
||||||
|
EMOTE_GROUND_TREMOR = 10,
|
||||||
|
EMOTE_IRON_ROOTS = 11,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FreyaNPCs
|
enum FreyaNPCs
|
||||||
@@ -224,20 +225,6 @@ enum FreyaNPCs
|
|||||||
NPC_DETONATING_LASHER = 32918,
|
NPC_DETONATING_LASHER = 32918,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FreyaSouns
|
|
||||||
{
|
|
||||||
SOUND_AGGRO = 15526,
|
|
||||||
SOUND_ELDERS = 15527,
|
|
||||||
SOUND_CONSERVATOR = 15528,
|
|
||||||
SOUND_SLAY1 = 15529,
|
|
||||||
SOUND_SLAY2 = 15530,
|
|
||||||
SOUND_DEATH = 15531,
|
|
||||||
SOUND_BERSERK = 15532,
|
|
||||||
SOUND_TRIO = 15533,
|
|
||||||
SOUND_DETONATING = 15534,
|
|
||||||
SOUND_ASKHELP = 15535,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum Misc
|
enum Misc
|
||||||
{
|
{
|
||||||
ACTION_REMOVE_10_STACK = 10,
|
ACTION_REMOVE_10_STACK = 10,
|
||||||
@@ -245,6 +232,7 @@ enum Misc
|
|||||||
ACTION_REMOVE_2_STACK = 2,
|
ACTION_REMOVE_2_STACK = 2,
|
||||||
ACTION_RESPAWN_TRIO = 1,
|
ACTION_RESPAWN_TRIO = 1,
|
||||||
ACTION_LUMBERJACKED = -1,
|
ACTION_LUMBERJACKED = -1,
|
||||||
|
ACTION_ELDER_FREYA_KILLED = 1,
|
||||||
|
|
||||||
EVENT_PHASE_ADDS = 1,
|
EVENT_PHASE_ADDS = 1,
|
||||||
EVENT_PHASE_FINAL = 2,
|
EVENT_PHASE_FINAL = 2,
|
||||||
@@ -322,32 +310,21 @@ public:
|
|||||||
if (victim->GetTypeId() != TYPEID_PLAYER || urand(0, 2))
|
if (victim->GetTypeId() != TYPEID_PLAYER || urand(0, 2))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (urand(0, 1))
|
Talk(SAY_SLAY);
|
||||||
{
|
|
||||||
me->Yell("Forgive me.", LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_SLAY1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
me->Yell("From your death springs life anew!", LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_SLAY2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||||
{
|
{
|
||||||
// kaboom!
|
|
||||||
if (damage >= me->GetHealth())
|
if (damage >= me->GetHealth())
|
||||||
{
|
{
|
||||||
me->Yell("His hold on me dissipates. I can see clearly once more. Thank you, heroes.", LANG_UNIVERSAL);
|
Talk(SAY_DEATH);
|
||||||
me->PlayDirectSound(SOUND_DEATH);
|
|
||||||
|
|
||||||
damage = 0;
|
damage = 0;
|
||||||
|
me->SetReactState(REACT_PASSIVE);
|
||||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||||
me->SetFaction(FACTION_FRIENDLY);
|
me->SetFaction(FACTION_FRIENDLY);
|
||||||
me->SetHealth(me->GetMaxHealth());
|
|
||||||
me->CombatStop();
|
|
||||||
me->RemoveAllAuras();
|
me->RemoveAllAuras();
|
||||||
|
me->AttackStop();
|
||||||
events.Reset();
|
events.Reset();
|
||||||
|
|
||||||
summons.DespawnAll();
|
summons.DespawnAll();
|
||||||
@@ -360,7 +337,7 @@ public:
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (Creature* e = ObjectAccessor::GetCreature(*me, _elderGUID[i]))
|
if (Creature* e = ObjectAccessor::GetCreature(*me, _elderGUID[i]))
|
||||||
Unit::Kill(e, e);
|
e->AI()->DoAction(ACTION_ELDER_FREYA_KILLED);
|
||||||
|
|
||||||
++_elderCount;
|
++_elderCount;
|
||||||
}
|
}
|
||||||
@@ -397,12 +374,12 @@ public:
|
|||||||
void SpawnWave()
|
void SpawnWave()
|
||||||
{
|
{
|
||||||
_waveNumber = _waveNumber == 1 ? 3 : _waveNumber - 1;
|
_waveNumber = _waveNumber == 1 ? 3 : _waveNumber - 1;
|
||||||
|
Talk(EMOTE_ALLIES_OF_NATURE);
|
||||||
|
|
||||||
// Wave of three
|
// Wave of three
|
||||||
if (_waveNumber == 1)
|
if (_waveNumber == 1)
|
||||||
{
|
{
|
||||||
me->Yell("Children, assist me!", LANG_UNIVERSAL);
|
Talk(SAY_SUMMON_TRIO);
|
||||||
me->PlayDirectSound(SOUND_TRIO);
|
|
||||||
me->SummonCreature(NPC_ANCIENT_WATER_SPIRIT, me->GetPositionX() + urand(5, 15), me->GetPositionY() + urand(5, 15), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()));
|
me->SummonCreature(NPC_ANCIENT_WATER_SPIRIT, me->GetPositionX() + urand(5, 15), me->GetPositionY() + urand(5, 15), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()));
|
||||||
me->SummonCreature(NPC_STORM_LASHER, me->GetPositionX() + urand(5, 15), me->GetPositionY() + urand(5, 15), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()));
|
me->SummonCreature(NPC_STORM_LASHER, me->GetPositionX() + urand(5, 15), me->GetPositionY() + urand(5, 15), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()));
|
||||||
me->SummonCreature(NPC_SNAPLASHER, me->GetPositionX() + urand(5, 15), me->GetPositionY() + urand(5, 15), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()));
|
me->SummonCreature(NPC_SNAPLASHER, me->GetPositionX() + urand(5, 15), me->GetPositionY() + urand(5, 15), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()));
|
||||||
@@ -410,15 +387,13 @@ public:
|
|||||||
// Ancient Conservator
|
// Ancient Conservator
|
||||||
else if (_waveNumber == 2)
|
else if (_waveNumber == 2)
|
||||||
{
|
{
|
||||||
me->Yell("Eonar, your servant requires aid!", LANG_UNIVERSAL);
|
Talk(SAY_SUMMON_CONSERVATOR);
|
||||||
me->PlayDirectSound(SOUND_CONSERVATOR);
|
|
||||||
me->SummonCreature(NPC_ANCIENT_CONSERVATOR, me->GetPositionX() + urand(5, 15), me->GetPositionY() + urand(5, 15), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()), 0, TEMPSUMMON_CORPSE_DESPAWN);
|
me->SummonCreature(NPC_ANCIENT_CONSERVATOR, me->GetPositionX() + urand(5, 15), me->GetPositionY() + urand(5, 15), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()), 0, TEMPSUMMON_CORPSE_DESPAWN);
|
||||||
}
|
}
|
||||||
// Detonating Lashers
|
// Detonating Lashers
|
||||||
else if (_waveNumber == 3)
|
else if (_waveNumber == 3)
|
||||||
{
|
{
|
||||||
me->Yell("The swarm of the elements shall overtake you!", LANG_UNIVERSAL);
|
Talk(SAY_SUMMON_LASHERS);
|
||||||
me->PlayDirectSound(SOUND_DETONATING);
|
|
||||||
for (uint8 i = 0; i < 10; ++i)
|
for (uint8 i = 0; i < 10; ++i)
|
||||||
me->SummonCreature(NPC_DETONATING_LASHER, me->GetPositionX() + urand(5, 20), me->GetPositionY() + urand(5, 20), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()), 0, TEMPSUMMON_CORPSE_DESPAWN);
|
me->SummonCreature(NPC_DETONATING_LASHER, me->GetPositionX() + urand(5, 20), me->GetPositionY() + urand(5, 20), me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()), 0, TEMPSUMMON_CORPSE_DESPAWN);
|
||||||
}
|
}
|
||||||
@@ -553,13 +528,11 @@ public:
|
|||||||
|
|
||||||
if (_elderGUID[0] || _elderGUID[1] || _elderGUID[2])
|
if (_elderGUID[0] || _elderGUID[1] || _elderGUID[2])
|
||||||
{
|
{
|
||||||
me->Yell("Elders, grant me your strength!", LANG_UNIVERSAL);
|
Talk(SAY_AGGRO_WITH_ELDER);
|
||||||
me->PlayDirectSound(SOUND_ELDERS);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
me->Yell("The Conservatory must be protected!", LANG_UNIVERSAL);
|
Talk(SAY_AGGRO);
|
||||||
me->PlayDirectSound(SOUND_AGGRO);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -595,6 +568,7 @@ public:
|
|||||||
break;
|
break;
|
||||||
case EVENT_FREYA_LIFEBINDER:
|
case EVENT_FREYA_LIFEBINDER:
|
||||||
{
|
{
|
||||||
|
Talk(EMOTE_LIFEBINDERS_GIFT);
|
||||||
events.RepeatEvent(45000);
|
events.RepeatEvent(45000);
|
||||||
float x, y, z;
|
float x, y, z;
|
||||||
for (uint8 i = 0; i < 10; ++i)
|
for (uint8 i = 0; i < 10; ++i)
|
||||||
@@ -643,15 +617,16 @@ public:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case EVENT_FREYA_BERSERK:
|
case EVENT_FREYA_BERSERK:
|
||||||
me->Yell("You have strayed too far, wasted too much time!", LANG_UNIVERSAL);
|
Talk(SAY_BERSERK);
|
||||||
me->PlayDirectSound(SOUND_BERSERK);
|
|
||||||
me->CastSpell(me, SPELL_BERSERK, true);
|
me->CastSpell(me, SPELL_BERSERK, true);
|
||||||
break;
|
break;
|
||||||
case EVENT_FREYA_GROUND_TREMOR:
|
case EVENT_FREYA_GROUND_TREMOR:
|
||||||
|
Talk(EMOTE_GROUND_TREMOR);
|
||||||
me->CastSpell(me, SPELL_GROUND_TREMOR_FREYA, false);
|
me->CastSpell(me, SPELL_GROUND_TREMOR_FREYA, false);
|
||||||
events.RepeatEvent(25000 + urand(0, 10000));
|
events.RepeatEvent(25000 + urand(0, 10000));
|
||||||
break;
|
break;
|
||||||
case EVENT_FREYA_IRON_ROOT:
|
case EVENT_FREYA_IRON_ROOT:
|
||||||
|
Talk(EMOTE_IRON_ROOTS);
|
||||||
me->CastCustomSpell(SPELL_IRON_ROOTS_FREYA, SPELLVALUE_MAX_TARGETS, 1, me, false);
|
me->CastCustomSpell(SPELL_IRON_ROOTS_FREYA, SPELLVALUE_MAX_TARGETS, 1, me, false);
|
||||||
events.RepeatEvent(45000 + urand(0, 10000));
|
events.RepeatEvent(45000 + urand(0, 10000));
|
||||||
break;
|
break;
|
||||||
@@ -706,24 +681,14 @@ public:
|
|||||||
if (urand(0, 1))
|
if (urand(0, 1))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (urand(0, 1))
|
Talk(SAY_ELDER_SLAY);
|
||||||
{
|
|
||||||
me->TextEmote("Angry roar");
|
|
||||||
me->PlayDirectSound(SOUND_STONEBARK_SLAY1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
me->Yell("Such a waste.", LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_STONEBARK_SLAY2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* killer) override
|
void JustDied(Unit* killer) override
|
||||||
{
|
{
|
||||||
if (killer && me->GetEntry() == killer->GetEntry())
|
if (killer && me->GetEntry() == killer->GetEntry())
|
||||||
return;
|
return;
|
||||||
me->Yell("Matron, flee! They are ruthless....", LANG_UNIVERSAL);
|
Talk(SAY_ELDER_DEATH);
|
||||||
me->PlayDirectSound(SOUND_STONEBARK_DEATH);
|
|
||||||
|
|
||||||
// Lumberjacked
|
// Lumberjacked
|
||||||
if (me->GetInstanceScript())
|
if (me->GetInstanceScript())
|
||||||
@@ -737,8 +702,8 @@ public:
|
|||||||
events.ScheduleEvent(EVENT_STONEBARK_GROUND_TREMOR, 5000);
|
events.ScheduleEvent(EVENT_STONEBARK_GROUND_TREMOR, 5000);
|
||||||
events.ScheduleEvent(EVENT_STONEBARK_PETRIFIED_BARK, 20000);
|
events.ScheduleEvent(EVENT_STONEBARK_PETRIFIED_BARK, 20000);
|
||||||
|
|
||||||
me->Yell("This place will serve as your graveyard.", LANG_UNIVERSAL);
|
if (!me->HasAura(SPELL_DRAINED_OF_POWER)) // Prevents speech if combat is initiated by hardmode activation
|
||||||
me->PlayDirectSound(SOUND_STONEBARK_AGGRO);
|
Talk(SAY_ELDER_AGGRO);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType damageType, SpellSchoolMask damageSchoolMask) override
|
void DamageTaken(Unit*, uint32& damage, DamageEffectType damageType, SpellSchoolMask damageSchoolMask) override
|
||||||
@@ -779,6 +744,16 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DoAction(int32 action) override
|
||||||
|
{
|
||||||
|
switch (action)
|
||||||
|
{
|
||||||
|
case ACTION_ELDER_FREYA_KILLED:
|
||||||
|
me->DespawnOrUnsummon();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -812,24 +787,14 @@ public:
|
|||||||
if (urand(0, 1))
|
if (urand(0, 1))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (urand(0, 1))
|
Talk(SAY_ELDER_SLAY);
|
||||||
{
|
|
||||||
me->Yell("Fertilizer.", LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_BRIGHTLEAF_SLAY1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
me->Yell("Your corpse will nourish the soil!", LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_BRIGHTLEAF_SLAY2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* killer) override
|
void JustDied(Unit* killer) override
|
||||||
{
|
{
|
||||||
if (killer && me->GetEntry() == killer->GetEntry())
|
if (killer && me->GetEntry() == killer->GetEntry())
|
||||||
return;
|
return;
|
||||||
me->Yell("Matron, one has fallen!", LANG_UNIVERSAL);
|
Talk(SAY_ELDER_DEATH);
|
||||||
me->PlayDirectSound(SOUND_BRIGHTLEAF_DEATH);
|
|
||||||
|
|
||||||
// Lumberjacked
|
// Lumberjacked
|
||||||
if (me->GetInstanceScript())
|
if (me->GetInstanceScript())
|
||||||
@@ -843,8 +808,8 @@ public:
|
|||||||
events.ScheduleEvent(EVENT_BRIGHTLEAF_SOLAR_FLARE, 5000);
|
events.ScheduleEvent(EVENT_BRIGHTLEAF_SOLAR_FLARE, 5000);
|
||||||
events.ScheduleEvent(EVENT_BRIGHTLEAF_UNSTABLE_SUN_BEAM, 8000);
|
events.ScheduleEvent(EVENT_BRIGHTLEAF_UNSTABLE_SUN_BEAM, 8000);
|
||||||
|
|
||||||
me->Yell("Matron, the Conservatory has been breached!", LANG_UNIVERSAL);
|
if (!me->HasAura(SPELL_DRAINED_OF_POWER)) // Prevents speech if combat is initiated by hardmode activation
|
||||||
me->PlayDirectSound(SOUND_BRIGHTLEAF_AGGRO);
|
Talk(SAY_ELDER_AGGRO);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateAI(uint32 diff) override
|
void UpdateAI(uint32 diff) override
|
||||||
@@ -902,6 +867,16 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DoAction(int32 action) override
|
||||||
|
{
|
||||||
|
switch (action)
|
||||||
|
{
|
||||||
|
case ACTION_ELDER_FREYA_KILLED:
|
||||||
|
me->DespawnOrUnsummon();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -933,24 +908,14 @@ public:
|
|||||||
if (urand(0, 1))
|
if (urand(0, 1))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (urand(0, 1))
|
Talk(SAY_ELDER_SLAY);
|
||||||
{
|
|
||||||
me->Yell("I return you whence you came!", LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_IRONBRANCH_SLAY1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
me->Yell("BEGONE!", LANG_UNIVERSAL);
|
|
||||||
me->PlayDirectSound(SOUND_IRONBRANCH_SLAY2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* killer) override
|
void JustDied(Unit* killer) override
|
||||||
{
|
{
|
||||||
if (killer && me->GetEntry() == killer->GetEntry())
|
if (killer && me->GetEntry() == killer->GetEntry())
|
||||||
return;
|
return;
|
||||||
me->Yell("Freya! They come for you.", LANG_UNIVERSAL);
|
Talk(SAY_ELDER_DEATH);
|
||||||
me->PlayDirectSound(SOUND_IRONBRANCH_DEATH);
|
|
||||||
|
|
||||||
// Lumberjacked
|
// Lumberjacked
|
||||||
if (me->GetInstanceScript())
|
if (me->GetInstanceScript())
|
||||||
@@ -964,8 +929,8 @@ public:
|
|||||||
events.ScheduleEvent(EVENT_IRONBRANCH_IRON_ROOT, 15000);
|
events.ScheduleEvent(EVENT_IRONBRANCH_IRON_ROOT, 15000);
|
||||||
events.ScheduleEvent(EVENT_IRONBRANCH_THORN_SWARM, 3000);
|
events.ScheduleEvent(EVENT_IRONBRANCH_THORN_SWARM, 3000);
|
||||||
|
|
||||||
me->Yell("Mortals have no place here!", LANG_UNIVERSAL);
|
if (!me->HasAura(SPELL_DRAINED_OF_POWER)) // Prevents speech if combat is initiated by hardmode activation
|
||||||
me->PlayDirectSound(SOUND_IRONBRANCH_AGGRO);
|
Talk(SAY_ELDER_AGGRO);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateAI(uint32 diff) override
|
void UpdateAI(uint32 diff) override
|
||||||
@@ -996,6 +961,16 @@ public:
|
|||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DoAction(int32 action) override
|
||||||
|
{
|
||||||
|
switch (action)
|
||||||
|
{
|
||||||
|
case ACTION_ELDER_FREYA_KILLED:
|
||||||
|
me->DespawnOrUnsummon();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user