Trinitycore: [3.3.5] Baltharus - Siphoned Might

Created on 4 Dec 2017  路  3Comments  路  Source: TrinityCore/TrinityCore

Description:

ID - 74502 Enervating Brand
Effect 0: Id 6 (SPELL_EFFECT_APPLY_AURA)
BasePoints = 0
Targets (6, 0) (TARGET_UNIT_TARGET_ENEMY, NO_TARGET)
Aura Id 23 (SPELL_AURA_PERIODIC_TRIGGER_SPELL), value = 0, misc = 0 (0), miscB = 0, periodic = 2000
   Trigger spell (74505) Enervating Brand. Chance = 101
ID - 74505 Enervating Brand
Effect 0: Id 6 (SPELL_EFFECT_APPLY_AURA)
BasePoints = -2
Targets (22, 30) (TARGET_SRC_CASTER, TARGET_UNIT_SRC_AREA_ALLY)
Aura Id 79 (SPELL_AURA_MOD_DAMAGE_PERCENT_DONE), value = -2, misc = 127 (127), miscB = 0, periodic = 0
Radius (Id 32) 12,00

Effect 1: Id 6 (SPELL_EFFECT_APPLY_AURA)
BasePoints = -2
Targets (22, 30) (TARGET_SRC_CASTER, TARGET_UNIT_SRC_AREA_ALLY)
Aura Id 136 (SPELL_AURA_MOD_HEALING_DONE_PERCENT), value = -2, misc = 127 (127), miscB = 0, periodic = 0
Radius (Id 32) 12,00



md5-27e049b47b3cac90cec8e39b84786858



ID - 74507 Siphoned Might
Effect 0: Id 6 (SPELL_EFFECT_APPLY_AURA)
BasePoints = 2
Targets (25, 0) (TARGET_UNIT_TARGET_ANY, NO_TARGET)
Aura Id 79 (SPELL_AURA_MOD_DAMAGE_PERCENT_DONE), value = 2, misc = 127 (127), miscB = 0, periodic = 0

Effect 1: Id 6 (SPELL_EFFECT_APPLY_AURA)
BasePoints = 2
Targets (25, 0) (TARGET_UNIT_TARGET_ANY, NO_TARGET)
Aura Id 61 (SPELL_AURA_MOD_SCALE), value = 2, misc = 0 (0), miscB = 0, periodic = 0

https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp#L341

@Keader all for you 馃槃

Current behaviour:

When Baltharus or Clone cast ID - 74502 Enervating Brand on Player, trigger spell ID - 74505 Enervating Brand and when hit 74505 on Player, Player get ID - 74507 Siphoned Might

Expected behaviour:

When Baltharus or Clone cast ID - 74502 Enervating Brand on Player, trigger spell ID - 74505 Enervating Brand and when hit 74505 on Player, Baltharus or Clone (the true caster) should get ID - 74507 Siphoned Might

Steps to reproduce the problem:

  1. Go to Ruby Sanctum
  2. Attack Baltharus
  3. See the auras

Branch(es): 3.3.5

TC rev. hash/commit: 463ed5e1ac6881696124cfaa2eeb49b95a082914

TDB version: TDB335.63

Operating system: Debian

Most helpful comment

There you go 馃槂 tested, Baltharus does get stacks

class spell_baltharus_enervating_brand_trigger : public SpellScriptLoader
{
    public:
        spell_baltharus_enervating_brand_trigger() : SpellScriptLoader("spell_baltharus_enervating_brand_trigger") { }

        class spell_baltharus_enervating_brand_trigger_SpellScript : public SpellScript
        {
            PrepareSpellScript(spell_baltharus_enervating_brand_trigger_SpellScript);

            bool Validate(SpellInfo const* /*spell*/) override
            {
                return ValidateSpellInfo({ SPELL_SIPHONED_MIGHT });
            }

            void TriggerSpell()
            {
                if (const SpellInfo* triggeringSpellInfo = GetTriggeringSpell())
                    if (Aura* triggeringAura = GetCaster()->GetAura(triggeringSpellInfo->Id))
                        GetHitUnit()->CastSpell(triggeringAura->GetCaster(), SPELL_SIPHONED_MIGHT, true);
            }

            void Register() override
            {
                OnHit += SpellHitFn(spell_baltharus_enervating_brand_trigger_SpellScript::TriggerSpell);
            }
        };

        SpellScript* GetSpellScript() const override
        {
            return new spell_baltharus_enervating_brand_trigger_SpellScript();
        }
};

All 3 comments

There you go 馃槂 tested, Baltharus does get stacks

class spell_baltharus_enervating_brand_trigger : public SpellScriptLoader
{
    public:
        spell_baltharus_enervating_brand_trigger() : SpellScriptLoader("spell_baltharus_enervating_brand_trigger") { }

        class spell_baltharus_enervating_brand_trigger_SpellScript : public SpellScript
        {
            PrepareSpellScript(spell_baltharus_enervating_brand_trigger_SpellScript);

            bool Validate(SpellInfo const* /*spell*/) override
            {
                return ValidateSpellInfo({ SPELL_SIPHONED_MIGHT });
            }

            void TriggerSpell()
            {
                if (const SpellInfo* triggeringSpellInfo = GetTriggeringSpell())
                    if (Aura* triggeringAura = GetCaster()->GetAura(triggeringSpellInfo->Id))
                        GetHitUnit()->CastSpell(triggeringAura->GetCaster(), SPELL_SIPHONED_MIGHT, true);
            }

            void Register() override
            {
                OnHit += SpellHitFn(spell_baltharus_enervating_brand_trigger_SpellScript::TriggerSpell);
            }
        };

        SpellScript* GetSpellScript() const override
        {
            return new spell_baltharus_enervating_brand_trigger_SpellScript();
        }
};

Weird...
Btw, was not my script (already present on core before cleanup) haha
Something change SpellScripts, because Caster become player, HitUnit is player, OriginalCaster is player and it was working before.
Thanks @Mihapro
And wtf, missing validate o.o

I doubt this is only one missing validate :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Rushor picture Rushor  路  3Comments

Tatara902 picture Tatara902  路  3Comments

jerbookins picture jerbookins  路  3Comments

DDuarte picture DDuarte  路  3Comments

daddycaddy picture daddycaddy  路  3Comments