Jump to content

bulek

Members
  • Posts

    194
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by bulek

  1. diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp

    index 6948cbd..a6bb18e 100644

    --- a/src/game/SpellAuras.cpp

    +++ b/src/game/SpellAuras.cpp

    @@ -2456,7 +2456,18 @@ void Aura::HandleAuraDummy(bool apply, bool Real)

    break;

    }

    case SPELLFAMILY_MAGE:

    + {

    + // Living Bomb

    + if (m_spellProto->SpellIconID == 3000 && (m_spellProto->SpellFamilyFlags & UI64LIT(0x2000000000000)))

    + {

    + // Zero duration is equal to AURA_REMOVE_BY_DEFAULT. We can't use it directly, as it is set even

    + // when removing aura from one target due to casting Living Bomb at other.

    + if (caster && !apply && (m_duration == 0 || m_removeMode == AURA_REMOVE_BY_DISPEL))

    + caster->CastSpell(m_target,m_modifier.m_amount,true);

    + return;

    + }

    break;

    + }

    case SPELLFAMILY_PRIEST:

    {

    // Pain and Suffering

    diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp

    index fa0cff1..a20a310 100644

    --- a/src/game/SpellMgr.cpp

    +++ b/src/game/SpellMgr.cpp

    @@ -186,6 +186,9 @@ SpellSpecific GetSpellSpecific(uint32 spellId)

    if ((spellInfo->SpellFamilyFlags & UI64LIT(0x1000000)) && spellInfo->EffectApplyAuraName[0]==SPELL_AURA_MOD_CONFUSE)

    return SPELL_MAGE_POLYMORPH;

    + if (spellInfo->SpellFamilyFlags & UI64LIT(0x2000000000000))

    + return SPELL_MAGE_BOMB;

    +

    break;

    }

    case SPELLFAMILY_WARRIOR:

    @@ -288,6 +291,7 @@ bool IsSingleFromSpellSpecificPerTargetPerCaster(SpellSpecific spellSpec1,SpellS

    case SPELL_POSITIVE_SHOUT:

    case SPELL_JUDGEMENT:

    case SPELL_HAND:

    + case SPELL_MAGE_BOMB:

    return spellSpec1==spellSpec2;

    default:

    return false;

    @@ -303,6 +307,7 @@ bool IsSingleFromSpellSpecificSpellRanksPerTarget(SpellSpecific spellSpec1,Spell

    case SPELL_AURA:

    case SPELL_CURSE:

    case SPELL_HAND:

    + case SPELL_MAGE_BOMB:

    return spellSpec1==spellSpec2;

    default:

    return false;

    @@ -1369,6 +1374,11 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons

    case SPELLFAMILY_MAGE:

    if( spellInfo_2->SpellFamilyName == SPELLFAMILY_MAGE )

    {

    + // Living Bomb & Ignite

    + if( (spellInfo_1->SpellIconID == 3000) && (spellInfo_2->SpellIconID == 937) ||

    + (spellInfo_2->SpellIconID == 3000) && (spellInfo_1->SpellIconID == 937) )

    + return false;

    +

    // Blizzard & Chilled (and some other stacked with blizzard spells

    if( (spellInfo_1->SpellFamilyFlags & UI64LIT(0x80)) && (spellInfo_2->SpellFamilyFlags & UI64LIT(0x100000)) ||

    (spellInfo_2->SpellFamilyFlags & UI64LIT(0x80)) && (spellInfo_1->SpellFamilyFlags & UI64LIT(0x100000)) )

    diff --git a/src/game/SpellMgr.h b/src/game/SpellMgr.h

    index 236a7f8..298ac81 100644

    --- a/src/game/SpellMgr.h

    +++ b/src/game/SpellMgr.h

    @@ -103,6 +103,7 @@ enum SpellSpecific

    SPELL_FOOD = 20,

    SPELL_DRINK = 21,

    SPELL_FOOD_AND_DRINK = 22,

    + SPELL_MAGE_BOMB = 23,

    };

    SpellSpecific GetSpellSpecific(uint32 spellId);

    yeah this patch is nice :) mangos devs please review this patch :)

  2. http://www.wowwiki.com/Patch_3.2.0

      Shaman
       * Base health increased by approximately 7% to correct for shamans having lower health than other classes. 

    I have tried this sql and it works:

    UPDATE `player_classlevelstats` SET `basehp`= `basehp` * 1.07 WHERE class = 7;

    I use YTDB R51 and mangos 8781.

    Your fix works only for new characters are created with the player but not for the old are already level 80:(

  3. diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
    index ff6d791..a25b38d 100644
    --- a/src/game/SpellAuras.cpp
    +++ b/src/game/SpellAuras.cpp
    @@ -1011,13 +1011,18 @@ void Aura::_AddAura()
            }
        }
    
    -    if (IsNeedVisibleSlot(caster))
    +    // Test hack of set slot and aura update of Warbringer and Juggernaut 
    +    if (IsNeedVisibleSlot(caster) || ((m_spellProto->Id == 57499 || m_spellProto->Id == 64976) && m_spellProto->EffectApplyAuraName[GetEffIndex()] == SPELL_AURA_262))
        {
            SetAuraSlot( slot );
            if(slot < MAX_AURAS)                        // slot found send data to client
            {
                SetAura(false);
    -            SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE));
    +            // Send new auraFlags 
    +            if ((m_spellProto->Id == 57499 || m_spellProto->Id == 64976) && m_spellProto->EffectApplyAuraName[GetEffIndex()] == SPELL_AURA_262) 
    +                SetAuraFlags((7) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE)); 
    +            else 
    +                SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE));
                SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL));
                SendAuraUpdate(false);
            }
    

    Author: MaS0n from getmangos.ru

    work for me:)

  4. this works for me:

    diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
    index 582946a..e962486 100644
    --- a/src/game/SpellAuras.cpp
    +++ b/src/game/SpellAuras.cpp
    @@ -256,7 +256,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
        &Aura::HandleNoImmediateEffect,                         //203 SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_DAMAGE  implemented in Unit::CalculateMeleeDamage and Unit::SpellCriticalDamageBonus
        &Aura::HandleNoImmediateEffect,                         //204 SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_DAMAGE implemented in Unit::CalculateMeleeDamage and Unit::SpellCriticalDamageBonus
        &Aura::HandleNoImmediateEffect,                         //205 SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_DAMAGE  implemented in Unit::SpellCriticalDamageBonus
    -    &Aura::HandleNULL,                                      //206 SPELL_AURA_MOD_SPEED_MOUNTED
    +    &Aura::HandleAuraModIncreaseFlightSpeed,                //206 SPELL_AURA_MOD_SPEED_MOUNTED
        &Aura::HandleAuraModIncreaseFlightSpeed,                //207 SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED
        &Aura::HandleAuraModIncreaseFlightSpeed,                //208 SPELL_AURA_MOD_SPEED_FLIGHT, used only in spell: Flight Form (Passive)
        &Aura::HandleAuraModIncreaseFlightSpeed,                //209 SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS
    diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
    index a282c96..b06868d 100644
    --- a/src/game/Unit.cpp
    +++ b/src/game/Unit.cpp
    @@ -10023,7 +10023,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
                if (IsMounted()) // Use on mount auras
                    main_speed_mod  = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED);
                else             // Use not mount (shapeshift for example) auras (should stack)
    -                main_speed_mod  = GetTotalAuraModifier(SPELL_AURA_MOD_SPEED_FLIGHT);
    +                main_speed_mod  = GetTotalAuraModifier(SPELL_AURA_MOD_SPEED_MOUNTED);
                stack_bonus     = GetTotalAuraMultiplier(SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS);
                non_stack_bonus = (100.0 + GetMaxPositiveAuraModifier(SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACK))/100.0f;
                break;
    

    BUMP!

    this patch work for me

  5. ok, and this patch works correct?

    diff -- git a / src / game / SpellAuras . cpp b / src / game / SpellAuras . cpp
    index 3a0862d . .0d28cb8 100644
    --- a / src / game / SpellAuras . cpp
    +++ b / src / game / SpellAuras . cpp
    @@ - 2637 , 6 + 2637 , 9 @@ void Aura :: HandleAuraModShapeshift ( bool apply , bool Real )
    case FORM_SHADOW :
    case FORM_STEALTH :
    break;
    +        case FORM_SHADOWDANCE :
    + PowerType = POWER_ENERGY ;
    +            break;
    case FORM_TREE :
    modelid = 864 ;
    break;
    @@ - 2682 , 7 + 2685 , 8 @@ void Aura :: HandleAuraModShapeshift ( bool apply , bool Real )
    if( m_target -> m_ShapeShiftFormSpellId )
    m_target -> RemoveAurasDueToSpell ( m_target -> m_ShapeShiftFormSpellId , this );
    
    - m_target -> SetByteValue ( UNIT_FIELD_BYTES_2 , 3 , form );
    + // For Shadow Dance we must apply Stealth form (30) instead of current (13)
    + m_target -> SetByteValue ( UNIT_FIELD_BYTES_2 , 3 , ( form == FORM_SHADOWDANCE ) ? uint8 ( FORM_STEALTH ) : form );
    
    if( modelid > 0 )
    m_target -> SetDisplayId ( modelid );
    @@ - 2747 , 6 + 2751 , 10 @@ void Aura :: HandleAuraModShapeshift ( bool apply , bool Real )
    m_target -> SetPower ( POWER_RAGE , Rage_val );
    break;
    }
    + // Shadow Dance - apply stealth mode stand flag
    +                case FORM_SHADOWDANCE :
    + m_target -> SetStandFlags ( UNIT_STAND_FLAGS_CREEP );
    +                    break;
    default:
    break;
    }
    @@ - 2779 , 6 + 2787 , 10 @@ void Aura :: HandleAuraModShapeshift ( bool apply , bool Real )
    if( Aura * dummy = m_target -> GetDummyAura ( 37324 ) )
    m_target -> CastSpell ( m_target , 37325 , true , NULL , dummy );
    break;
    + // Shadow Dance - remove stealth mode stand flag
    +            case FORM_SHADOWDANCE :
    + m_target -> RemoveStandFlags ( UNIT_STAND_FLAGS_CREEP );
    +                break;
    default:
    break;
    }
    diff -- git a / src / game / Unit . h b / src / game / Unit . h
    index faefbef . .3f0e578 100644
    --- a / src / game / Unit . h
    +++ b / src / game / Unit . h
    @@ - 167 , 6 + 167 , 7 @@ enum ShapeshiftForm
    FORM_GHOUL = 0x07 ,
    FORM_DIREBEAR = 0x08 ,
    FORM_CREATUREBEAR = 0x0E ,
    + FORM_SHADOWDANCE = 0x0D ,
    FORM_CREATURECAT = 0x0F ,
    FORM_GHOSTWOLF = 0x10 ,
    FORM_BATTLESTANCE = 0x11 ,

    bump this patch work on 8742

  6. my testers know method how to "win" roll without having highet roll. It is matter of propper key combination in exact time. I don't know how to do this but if you want I can ask (or perform interrogation xD)

    hmm interesting ... bite, therefore, ask your testers but I doubt that this is possible can capture packet ....:huh:

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