Jump to content

Mathman

Members
  • Posts

    35
  • Joined

  • Last visited

  • Donations

    0.00 GBP 

Posts posted by Mathman

  1. This patch isnt for a clean mangos repo, may a patch for a clean repo would be easier to implement and test? Though it worked, i started testing with saronite bombs on one of the three wintergrasp towers in the south of the map, the bomb destroyed the tower in one try, the animations are working great but the tower "dies" directly.

    We may a patch compatible with vehicle patch

  2. For player.cpp

    /*static WorldStatePair SA_world_states[] =                   // SA
    {
       { 0xf09, 0x4 },                                         // 7
       { 0xe36, 0x4 },                                         // 8
       { 0xe27, 0x4 },                                         // 9
       { 0xe24, 0x4 },                                         // 10
       { 0xe21, 0x4 },                                         // 11
       { 0xe1e, 0x4 },                                         // 12
       { 0xdf3, 0x0 },                                         // 13
       { 0xded, 0x0 },                                         // 14
       { 0xdec, 0x1 },                                         // 15
       { 0xde9, 0x9 },                                         // 16
       { 0xde8, 0x5 },                                         // 17
       { 0xde7, 0x19 },                                        // 18
       { 0xe35, 0x1 },                                         // 19
       { 0xe34, 0x1 },                                         // 20
       { 0xe33, 0x1 },                                         // 21
       { 0xe32, 0x0 },                                         // 22
       { 0xe31, 0x0 },                                         // 23
       { 0xe30, 0x0 },                                         // 24
       { 0xe2f, 0x1 },                                         // 25
       { 0xe2e, 0x0 },                                         // 26
       { 0xe2d, 0x0 },                                         // 27
       { 0xe2c, 0x0 },                                         // 28
       { 0xe2b, 0x1 },                                         // 29
       { 0xe2a, 0x1 },                                         // 30
       { 0x0,   0x0 }
    };*/
    

    And

    /*case 4384:                                          // SA
               if (bg && bg->GetTypeID(true) == BATTLEGROUND_SA)
                   bg->FillInitialWorldStates(data, count);
               else
               {
                   FillInitialWorldState(data,count, SA_world_states);
               }
               break;*/
           default:
    

  3. fix typo :

    -            if(!m_spawnedByDefault)
    -            {
    -                m_respawnTime = 0;
    -                return;
    -            }
    
                // since pool system can fail to roll unspawned object, this one can remain spawned, so must set respawn nevertheless
    -             m_respawnTime = time(NULL) + m_respawnDelayTime;
    +             m_respawnTime = m_spawnedByDefault ? time(NULL) + m_respawnDelayTime : 0;
    

    instead of :

    -            if(!m_spawnedByDefault)
    -            {
    -                m_respawnTime = 0;
    -                return;
    -            }
    +            m_respawnTime = m_spawnedByDefault ? time(NULL) + m_respawnDelayTime : 0;
    
                // since pool system can fail to roll unspawned object, this one can remain spawned, so must set respawn nevertheless
                m_respawnTime = time(NULL) + m_respawnDelayTime;
    

  4. Hello,

    Mangos Version: 9792

    Custom Patches: insider, tasssadar, ...

    SD2 Version: 1679

    Database Name and Version : ytdb 544

    When i am in battleground preparation of arathi basin and i summons a mount i have the spell incantation but after the mount does not appear.

    Can you show just a way for me?

    Thank you and sorry for my bad english.

  5. Update rev 9542

    Kill command

    src/game/SpellAuras.cpp

    @@ -1232,6 +1232,12 @@ bool Aura::modStackAmount(int32 num)
            return true; // need remove aura
        }
    
    +    // reset charge when modding stack, update aura in SetStackamount
    +    m_procCharges = m_spellProto->procCharges;
    +    Player* modOwner = GetCaster() ? GetCaster()->GetSpellModOwner() : NULL;
    +    if(modOwner)
    +        modOwner->ApplySpellMod(GetId(), SPELLMOD_CHARGES, m_procCharges);
    +
        // Update stack amount
        SetStackAmount(stackAmount);
        return false;
    @@ -2102,6 +2108,21 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
                    if(caster)
                        caster->CastSpell(caster, 13138, true, NULL, this);
                    return;
    +            case 34026:                                     // kill command
    +            {
    +                 Unit* caster = GetCaster();
    +                if(!caster || caster->GetTypeId() != TYPEID_PLAYER || !caster->GetPet() )
    +                    return;
    +                caster->CastSpell(caster,34027,true,NULL,this);
    +
    +                // set 3 stacks
    +                Aura* owner_aura  = caster->GetAura(34027,EFFECT_INDEX_0);
    +                Aura* pet_aura  = caster->GetPet()->GetAura(58914,EFFECT_INDEX_0);
    +                if( owner_aura )
    +                    owner_aura->SetStackAmount(3);
    +                if( pet_aura )
    +                    pet_aura->SetStackAmount(3);
    +                return;
    +            }
                case 39850:                                     // Rocket Blast
                    if(roll_chance_i(20))                       // backfire stun
                        m_target->CastSpell(m_target, 51581, true, NULL, this);
    @@ -2207,6 +2228,17 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
                    m_target->CastSpell(m_target, 47287, true, NULL, this);
                    return;
                }
    +            case 58914:
    +            {
    +                Unit* caster = GetCaster();
    +                // kill command, just eye candy
    +                if(!caster)
    +                    return;
    +                // the "casting" dummy aura
    +                caster->RemoveAurasDueToSpell(34026);
    +                // the spellmod aura (e.g. in case pet gets killed)
    +                caster->RemoveAurasDueToSpell(34027);
    +                return;
    +            }
            }
    
            if (caster && m_removeMode == AURA_REMOVE_BY_DEATH)
    
    

    src/game/Unit.cpp

    @@ -1028,7 +1028,16 @@ void Unit::CalculateSpellDamage(SpellNonMeleeDamage *damageInfo, int32 damage, S
                // Physical Damage
                if ( damageSchoolMask & SPELL_SCHOOL_MASK_NORMAL )
                {
    -                //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;
    +                        }
    +
    +        //Calculate armor mitigation
                    damage = CalcArmorReducedDamage(pVictim, damage);
                    // Get blocked status
                    blocked = isSpellBlocked(pVictim, spellInfo, attackType);
    @@ -4834,6 +4843,16 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
                        target = this;
                        break;
                    }
    +                // kill command (pet aura proc)
    +                case 58914:
    +                {
    +                    Unit* owner = GetOwner();
    +                    if( !owner || owner->GetTypeId() != TYPEID_PLAYER )
    +                        break;
    +                    // reduce the owner's aura stack
    +                    owner->RemoveSingleSpellAurasFromStack(34027);
    +                    break;
    +                }
                    // Vampiric Touch (generic, used by some boss)
                    case 52723:
                    case 60501:
    @@ -11061,9 +11080,9 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
            // Sort spells and remove dublicates
            removedSpells.sort();
            removedSpells.unique();
    -        // Remove auras from removedAuras
    +        // Remove auras (one stack) from removedAuras
            for(RemoveSpellList::const_iterator i = removedSpells.begin(); i != removedSpells.end();++i)
    -            RemoveAurasDueToSpell(*i);
    +            RemoveSingleSpellAurasFromStack(*i);
        }
    }
    

    focused fire

    src/game/SpellAuras.cpp

    @@ -2239,8 +2239,15 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
                    caster->RemoveAurasDueToSpell(34027);
                    return;
                }
    +            case 34026:
    +            {
    +                Unit* caster = GetCaster();
    +                // kill command, remove focused fire bonus
    +                if(!caster)
    +                    return;
    +                caster->RemoveAurasDueToSpell(60110);
    +                caster->RemoveAurasDueToSpell(60113);
    +                 return;
    +            }
            }
    -
            if (caster && m_removeMode == AURA_REMOVE_BY_DEATH)
            {
                // Stop caster Arcane Missle chanelling on death
    

    src/game/Unit.cpp

    @@ -5505,7 +5505,14 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
                    target = this;
                    break;
                }
    -            break;
    +            // Focused Fire, kill command proc
    +      if ( dummySpell->Id == 35029 || dummySpell->Id == 35030 )
    +      {
    +        triggered_spell_id = dummySpell->Id == 35029 ? 60110 : 60113;
    +        target = this;
    +        break;
    +      }
    +      break;
            }
            case SPELLFAMILY_PALADIN:
            {
    

    Is it correct?

    Work in compile but if i use spell 34026 nothing

    each special attack of pet spell 34027 disappear, normally "30 seconds remaining"

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