Jump to content

przemratajczak

Members
  • Posts

    346
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by przemratajczak

  1. MaNGOS 9610

    UDB 388

    SD2 1653

    4 horsemen marks

    http://www.wowhead.com/?spell=28832

    http://www.wowhead.com/?spell=28833

    http://www.wowhead.com/?spell=28834

    http://www.wowhead.com/?spell=28835

    has to trigger damage aura with dmg related to amount of stacks present on aura target. I wrote code below, but when 2nd and next stacks apply server does not pass through Aura::HandleAuraDummy (it is executed only once, at initial stack apply). Don't know where to relocate this code to make it working :/

    diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
    index f887f6b..b0425c7 100644
    --- a/src/game/SpellAuras.cpp
    +++ b/src/game/SpellAuras.cpp
    @@ -2390,6 +2390,33 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
                            if (Unit* caster = GetCaster())
                                caster->CastSpell(caster, 13138, true, NULL, this);
                            return;
    +                    case 28832:                             // Mark of Korth'azz
    +                    case 28833:                             // Mark of Blaumeux
    +                    case 28834:                             // Mark of Rivendare
    +                    case 28835:                             // Mark of Zeliek
    +                    {
    +                         Aura* aur = m_target->GetAura(GetId(), EFFECT_INDEX_0);
    +                         if (!aur)
    +                             return;
    +
    +                         uint8 stacks = aur->GetStackAmount();
    +                         int32 damage = 0;
    +
    +                         if (stacks == 1)
    +                            damage = 500;
    +                         else if (stacks == 2)
    +                            damage = 1500;
    +                         else if (stacks == 3)
    +                            damage = 4000;
    +                         else if (stacks == 4)
    +                            damage = 12500;
    +                         else if (stacks > 4)
    +                            damage = 20000 + 1000 * (stacks - 5);
    +
    +                         if (Unit* caster = GetCaster())
    +                              caster->CastCustomSpell(m_target, 28836, &damage, NULL, NULL, true, NULL, this, caster->GetGUID());
    +                         return;
    +                    }
                        case 39850:                             // Rocket Blast
                            if (roll_chance_i(20))              // backfire stun
                                m_target->CastSpell(m_target, 51581, true, NULL, this);
    

    EDIT:

    Arrai pointed that problem is related to

           if (amount!=m_modifier.m_amount)
           {
               ApplyModifier(false, true);
               m_modifier.m_amount = amount;
               ApplyModifier(true, true);
           }
    

  2. for shattered barrier try this

    diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
    index 9d3a5a7..fe713a4 100644
    --- a/src/game/SpellAuras.cpp
    +++ b/src/game/SpellAuras.cpp
    @@ -6501,8 +6501,8 @@ void Aura::HandleSpellSpecificBoosts(bool apply)
                            if ((*itr)->GetSpellProto()->SpellIconID == 2945)
                            {
                                cast_at_remove = true;
    -                            // first rank have 50% chance
    -                            if ((*itr)->GetId() != 44745 || roll_chance_i(50))
    +                            // 1st rank have 50% chance, 2nd 100%
    +                            if (((*itr)->GetId() == 44745 && roll_chance_i(50)) || (*itr)->GetId() == 54787)
                                    spellId1 = 55080;
                                break;
                            }
    @@ -6510,6 +6510,7 @@ void Aura::HandleSpellSpecificBoosts(bool apply)
                    }
                    else
                        return;
    +                break;
                }
    
                switch(GetId())
    
    

  3. I don't know if it isn't something form insiders branch (I am merging it with your petstats ;-) ) but after player call pet (for example dismount) pets HP is increased by stat modifier but not filled to propper %. For example if raw pets maxhp is 5000, current saved hp is 5000 (100%) after stat modiefier applied additional 1500 hp is like 5000/6500. at least i think it could be the reason. Can anyone confirmes my issue?

  4. 1) thanks for your great job :P pasdVn does it still requires spell_proc_event records?

    2)

                       if( !p_caster->GetPet() )
                       {
                           Spell::SendCastResult((Player*)p_caster, m_spellProto, 0, SPELL_FAILED_NO_PET);
                           ((Player*)p_caster)->RemoveSpellCooldown(m_spellProto->Id, true);
                           SetAuraDuration(0);
                           return;
                       }
    

    looks like not the best approach, didn't tested it yet but I met similar solution with removing cooldown on spell when cast failed in some other patch. This leads to exploit with another auras procing from spell cast (for example one of metagems restoring mana). ofc this could be considered as a core issue.

  5. - //Calculate armor mitigation

    + // FIX ME: physical school damage spells should also get affected from bonus damage

    + for (int j = 0; j < 3; j++)

    + if( spellInfo->Effect[j] == SPELL_EFFECT_SCHOOL_DAMAGE )

    + if( Player* modOwner = GetSpellModOwner() )

    + {

    + modOwner->ApplySpellMod(spellInfo->Id, SPELLMOD_DAMAGE, damage);

    + break;

    + }

    I'm not sure if this part isn't already implemented in mangos in more generic way
  6. MaNGOS 9527

    SD2 1607

    UDB 387

    Bug:

    Lightwell http://www.wowhead.com/?spell=724 and ranks is not working at all

    Comments:

    * lightwell is respawning if ForcedDespawn() used to despawn so I had to use AddObjectToRemoveList()

    Proposed fix:

    diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
    index c02a49f..168d34a 100644
    --- a/src/game/SpellAuras.cpp
    +++ b/src/game/SpellAuras.cpp
    @@ -2461,6 +2461,10 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
                        case 58591:                                 // Stoneclaw Totem X
                            m_target->CastSpell(m_target, 58585, true);
                            return;
    +                    case 59907:                             // Lightwell charges
    +                        if (m_target->GetTypeId() == TYPEID_UNIT)
    +                            ((Creature*)m_target)->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
    +                        return;
                        case 62061:                             // Festive Holiday Mount
                            if (m_target->HasAuraType(SPELL_AURA_MOUNTED))
                                // Reindeer Transformation
    @@ -2711,6 +2715,12 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
                        caster->RemoveAurasDueToSpell(34027);
                    return;
                }
    +            case 59907:                                     // Lightwell charges - despawn creature if no charges remain
    +            {
    +                if (m_target->GetTypeId() == TYPEID_UNIT)
    +                    ((Creature*)m_target)->AddObjectToRemoveList();
    +                return;
    +            }
            }
            // Living Bomb
            if (m_spellProto->SpellFamilyName == SPELLFAMILY_MAGE && (m_spellProto->SpellFamilyFlags & UI64LIT(0x2000000000000)))
    diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
    index 7ded7bf..0860f25 100644
    --- a/src/game/SpellEffects.cpp
    +++ b/src/game/SpellEffects.cpp
    @@ -6150,6 +6150,37 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx)
                        unitTarget->CastSpell(unitTarget, 59943, true);
                        return;
                    }
    +                case 60123:                                 // Lightwell Renew
    +                {
    +                    Unit* creator = Unit::GetUnit(*m_caster, m_caster->GetCreatorGUID());
    +
    +                    if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER || 
    +                        !creator || creator->GetTypeId() != TYPEID_PLAYER || 
    +                        ((Player*)unitTarget)->GetTeam() != ((Player*)creator)->GetTeam())
    +                        return;
    +                    
    +                    uint32 renewSpell = 0;
    +                    switch(m_caster->GetEntry())
    +                    {
    +                        case 31897: renewSpell = 7001; break;
    +                        case 31896: renewSpell = 27873; break;
    +                        case 31895: renewSpell = 27874; break;
    +                        case 31894: renewSpell = 28276; break;
    +                        case 31893: renewSpell = 48084; break;
    +                        case 31883: renewSpell = 48085; break;
    +                        default: break;
    +                    }
    +
    +                    m_caster->CastSpell(unitTarget, renewSpell, true);
    +
    +                    if (Aura* aur = m_caster->GetAura(59907, EFFECT_INDEX_0))
    +                    {
    +                        if (aur->GetAuraCharges() > 1)
    +                            aur->DropAuraCharge();
    +                        else m_caster->RemoveAura(aur);
    +                    }
    +                    return;
    +                }
                                                                // random spell learn instead placeholder
                    case 60893:                                 // Northrend Alchemy Research
                    case 61177:                                 // Northrend Inscription Research
    
    

    SQL

    DELETE FROM npc_spellclick_spells WHERE npc_entry IN (31883,31893,31894,31895,31896,31897);
    INSERT INTO npc_spellclick_spells VALUES
    (31897,60123,0,0,0,2), -- rank 1
    (31896,60123,0,0,0,2), -- rank 2
    (31895,60123,0,0,0,2), -- rank 3
    (31894,60123,0,0,0,2), -- rank 4
    (31893,60123,0,0,0,2), -- rank 5
    (31883,60123,0,0,0,2); -- rank 6
    
    DELETE FROM creature_template_addon WHERE entry IN (31897,31896,31895,31894,31893,31883);
    INSERT INTO creature_template_addon VALUES
    (31883,0,0,0,0,0,'59907 0'),
    (31893,0,0,0,0,0,'59907 0'),
    (31894,0,0,0,0,0,'59907 0'),
    (31895,0,0,0,0,0,'59907 0'),
    (31896,0,0,0,0,0,'59907 0'),
    (31897,0,0,0,0,0,'59907 0');
    

  7. reset your source, than install for example tortoise SVN and merge again. when merge confict message emerge use command "git mergetool". It will display "mine" and "theirs" windows with highligted conflicted parts. Than you can read mismatching hunks and add it manualy.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use