Jump to content

Gommes

Members
  • Posts

    18
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Gommes

  1. are u sure it is correct? my deep wounds after few row crits tick for 8k... 8k every 3sec :>

    Ok so the problem is like this (will describe on Deep Wounds).

    1) You make critical attack on Target - he gest debuff.

    2) After 4sec duration u make again critical on him - damage from DW get added

    3) After few such crits and stacks u make 8k ticks or even more (some ppl hit to 30k ticks on PvE) making 10k DPS ticks in PVE

    How it should work:

    1) You make critical attack on Target - he gets debuff

    2) After 4sec duration u make again critical on him - damage from DW get added

    3) After next 2 secs THE OLD DEEP WOUNDS damage add gets removed and only new Deep Wounds damage ticks.

    So generally: the dmg should be subtracted as well when the previous wounds hidden timer ends

    That is one deep bug

  2. What bug does the patch fix? What features does the patch add?

    Fix Lightning Oveloard, very small fix

    For which repository revision was the patch created?

    7288

    Who has been writing this patch?

    Me

    @@ -5721,11 +5721,11 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu

    triggered_spell_id = 58879;

    break;

    }

    }

    // Ancestral Awakening

    - if (dummySpell->SpellIconID == 2018)

    + if (dummySpell->SpellIconID == 3065)

    {

    // TODO: frite dummy fot triggered spell

    triggered_spell_id = 52759;

    basepoints0 = triggerAmount * damage / 100;

    target = this;

  3. What bug does the patch fix? What features does the patch add?

    Fix Sudden Death

    For which repository revision was the patch created?

    Any compatible with 3.0.8 version.

    Who has been writing this patch?

    kozelo, I made patch files.

    In Spell.cpp

    @@ -3615,10 +3615,30 @@ void Spell::TriggerSpell()
        }
    }
    
    uint8 Spell::CanCast(bool strict)
    {
    +      // Sudden death
    +      bool ex=false;
    +      switch(m_spellInfo->Id)
    +      {
    +      case 5308:
    +      case 20658:
    +      case 20660:
    +      case 20661:
    +      case 20662:
    +      case 25234:
    +      case 25236:
    +      case 47470:
    +      case 20647:
    +      case 47471: ex= true;
    +      }
    +      
    +      
    +      if(ex && m_caster->HasAura(52437)) return 0; // Allow execute
    +      
    +
        // check cooldowns to prevent cheating
        if(m_caster->GetTypeId()==TYPEID_PLAYER && ((Player*)m_caster)->HasSpellCooldown(m_spellInfo->Id))
        {
            if(m_triggeredByAuraSpell)
                return SPELL_FAILED_DONT_REPORT;
    
    

    SpellEffects.cpp

    @@ -1187,24 +1187,46 @@ void Spell::EffectDummy(uint32 i)
                    return;
                }
                // Execute
                if(m_spellInfo->SpellFamilyFlags & 0x20000000)
                {
    -                if(!unitTarget)
    -                    return;
    -
    -                uint32 rage = m_caster->GetPower(POWER_RAGE);
    -                // Glyph of Execution bonus
    -                if (Aura *aura = m_caster->GetDummyAura(58367))
    -                    rage+=aura->GetModifier()->m_amount;
    -
    -                int32 basePoints0 = damage+int32(rage * m_spellInfo->DmgMultiplier[i] +
    -                                                 m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f);
    -                m_caster->CastCustomSpell(unitTarget, 20647, &basePoints0, NULL, NULL, true, 0);
    -                m_caster->SetPower(POWER_RAGE,0);
    -                return;
    -            }
    +                 if(!unitTarget)
    +                     return;
    +        int lastrage=0;
    +        uint32 rage2 = 30;
    +        uint32 rage = m_caster->GetPower(POWER_RAGE);
    +
    +        if(m_targets.getUnitTarget()->GetHealth() < m_targets.getUnitTarget()->GetMaxHealth()*0.2) rage2=rage; //Clean execute, ignore Sudden death
    +        else if(m_caster->HasAura(29723)) lastrage=3;
    +        else if (m_caster->HasAura(29725)) lastrage=7;
    +        else if (m_caster->HasAura(29724)) lastrage=10;
    +        
    +                 // Glyph of Execution bonus
    +                 if (Aura *aura = m_caster->GetDummyAura(58367)
    +                 rage2+=aura->GetModifier()->m_amount;
    +        
    + 
    +                int32 basePoints0 = damage+int32(rage2 * m_spellInfo->DmgMultiplier[i] +
    +                                                  m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f);
    +                 m_caster->CastCustomSpell(unitTarget, 20647, &basePoints0, NULL, NULL, true, 0);
    +
    +        if(m_caster->HasAura(52437)) m_caster->RemoveSingleSpellAurasFromStack(52437);
    +        if(lastrage !=0  ) 
    +        {
    +        if(rage-30 < lastrage)
    +            m_caster->SetPower(POWER_RAGE,lastrage);
    +        else
    +            m_caster->SetPower(POWER_RAGE,rage-30);
    +
    +        }
    +        else
    +        {
    +                       m_caster->SetPower(POWER_RAGE,0);
    +        }
    +        
    +                 return;
    +             }
                // Slam
                if(m_spellInfo->SpellFamilyFlags & 0x0000000000200000LL)
                {
                    if(!unitTarget)
                        return;
    

    Unit.cpp, void Unit::CalculateMeleeDamage

    @@ -1274,10 +1274,28 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
                if (pVictim->GetTypeId()==TYPEID_PLAYER)
                {
                    uint32 resilienceReduction = ((Player*)pVictim)->GetMeleeCritDamageReduction(damageInfo->damage);
                    damageInfo->damage      -= resilienceReduction;
                    damageInfo->cleanDamage += resilienceReduction;
    +                
    +                if(GetTypeId()==TYPEID_PLAYER)
    +                {
    +                        //sudden death
    +                          int chance = rand()%100;
    +                            if(HasAura(29723) && chance<4)
    +                              {
    +                                CastSpell(this, 52437, true);
    +                              }
    +                          if(HasAura(29725) && chance<7)
    +                            {
    +                                CastSpell(this, 52437, true);
    +                              }
    +                        if(HasAura(29724) && chance<10)
    +                            {
    +                                 CastSpell(this, 52437, true);
    +                               }
    +                   }
                }
                break;
            }
            case MELEE_HIT_PARRY:
                damageInfo->TargetState  = VICTIMSTATE_PARRY;
    @@ -11346,6 +11364,6 @@ void Unit::SetPhaseMask(uint32 newPhaseMask, bool update)
        WorldObject::SetPhaseMask(newPhaseMask,update);
    
        if(IsInWorld())
            if(Pet* pet = GetPet())
                pet->SetPhaseMask(newPhaseMask,true);
    -}
    \\ No newline at end of file
    +}
    

    well hell I need to download Mangos again xD

×
×
  • 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