Merge branch 'azerothcore:master' into Playerbot

This commit is contained in:
bash
2025-09-22 21:59:40 +02:00
committed by GitHub
6 changed files with 233 additions and 8 deletions
@@ -144,7 +144,7 @@ public:
void SummonInfernal()
{
Creature* infernal = me->SummonCreature(NPC_INFERNAL_ATTACKER, me->GetPositionX(), me->GetPositionY(), ground + 0.05f, 0.0f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
Creature* infernal = me->SummonCreature(NPC_INFERNAL_ATTACKER, me->GetPositionX(), me->GetPositionY(), ground + 0.05f, 0.0f, TEMPSUMMON_DEAD_DESPAWN, 0);
infernalGUID = infernal->GetGUID();
}
+17 -7
View File
@@ -21,6 +21,7 @@
#include "GridNotifiers.h"
#include "MapMgr.h"
#include "ScriptedCreature.h"
#include "SpellAuras.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
@@ -1344,11 +1345,12 @@ enum Quest12937Data
{
SPELL_TRIGGER_AID_OF_THE_EARTHEN = 55809,
NPC_FALLEN_EARTHEN_DEFENDER = 30035,
TALK_FALLEN_EARTHEN_HEALED = 0
};
class spell_q12937_relief_for_the_fallen : public SpellScript
class spell_q12937_relief_for_the_fallen : public AuraScript
{
PrepareSpellScript(spell_q12937_relief_for_the_fallen);
PrepareAuraScript(spell_q12937_relief_for_the_fallen);
bool Load() override
{
@@ -1360,20 +1362,28 @@ class spell_q12937_relief_for_the_fallen : public SpellScript
return ValidateSpellInfo({ SPELL_TRIGGER_AID_OF_THE_EARTHEN });
}
void HandleDummy(SpellEffIndex /*effIndex*/)
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Player* caster = GetCaster()->ToPlayer();
if (Creature* target = GetHitCreature())
Unit* target = GetUnitOwner();
if (target && target->ToCreature())
{
caster->CastSpell(caster, SPELL_TRIGGER_AID_OF_THE_EARTHEN, true, nullptr);
caster->KilledMonsterCredit(NPC_FALLEN_EARTHEN_DEFENDER);
target->DespawnOrUnsummon();
target->ToCreature()->DespawnOrUnsummon(5000);
target->SetStandState(UNIT_STAND_STATE_STAND);
target->ToCreature()->AI()->Talk(TALK_FALLEN_EARTHEN_HEALED);
ObjectGuid casterGUID = caster->GetGUID();
caster->m_Events.AddEventAtOffset([casterGUID]{
if (Player* caster = ObjectAccessor::FindPlayer(casterGUID))
caster->CastSpell(caster, SPELL_TRIGGER_AID_OF_THE_EARTHEN, true);
}, 5s);
}
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_q12937_relief_for_the_fallen::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
OnEffectRemove += AuraEffectRemoveFn(spell_q12937_relief_for_the_fallen::OnRemove, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL);
}
};