Jump to content

darkEvil

Members
  • Posts

    14
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by darkEvil

  1. Mangos Version: 0.12 latest (should be a general problem in all versions)

    Custom Patches: none

    How it DOES work: If two paladins consecrate the same area, no damage is done at all.

    How it SHOULD work: Not exactly sure. I can not test it, since i have no retail account. But no damage at all seems wrong. Either both should deal damage or just the higher rank.

    How to reproduce: Take two paladins and consecrate the same area (you need a hostile creature/player of course).

  2. balrok actually managed to get it working

    diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
    index b0c97f6..cf6e23b 100644
    --- a/src/game/Unit.cpp
    +++ b/src/game/Unit.cpp
    @@ -607,8 +607,18 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
            // Reward player, his pets, and group/raid members
            // call kill spell proc event (before real die and combat stop to triggering auras removed at death/combat stop)
            if(player && player!=pVictim)
    +        {
    +            WorldPacket data(SMSG_PARTYKILLLOG, (8+8)); //send event PARTY_KILL
    +            data << uint64(player->GetGUID()); //player with killing blow
    +            data << uint64(pVictim->GetGUID()); //victim
    +            if (Group *group =  player->GetGroup())
    +                group->BroadcastPacket(&data, group->GetMemberGroup(player->GetGUID()));
    +            else
    +                player->SendDirectMessage(&data);
    +
                if(player->RewardPlayerAndGroupAtKill(pVictim))
                    player->ProcDamageAndSpell(pVictim,PROC_FLAG_KILL_XP_GIVER,PROC_FLAG_NONE);
    +        }
    
            DEBUG_LOG("DealDamageAttackStop");
    
    @@ -1455,9 +1465,6 @@ uint32 Unit::SpellNonMeleeDamageLog(Unit *pVictim, uint32 spellID, uint32 damage
                return 0;
            }
    
    -        // Deal damage done
    -        damage = DealDamage(pVictim, damage, &cleanDamage, SPELL_DIRECT_DAMAGE, GetSpellSchoolMask(spellInfo), spellInfo, true);
    -
            // Send damage log
            sLog.outDetail("SpellNonMeleeDamageLog: %u (TypeId: %u) attacked %u (TypeId: %u) for %u dmg inflicted by %u,absorb is %u,resist is %u",
                GetGUIDLow(), GetTypeId(), pVictim->GetGUIDLow(), pVictim->GetTypeId(), damage, spellID, absorb,resist);
    @@ -1465,6 +1472,9 @@ uint32 Unit::SpellNonMeleeDamageLog(Unit *pVictim, uint32 spellID, uint32 damage
            // Actual log sent to client
            SendSpellNonMeleeDamageLog(pVictim, spellID, damage, GetSpellSchoolMask(spellInfo), absorb, resist, false, 0, crit);
    
    +        // Deal damage done
    +        damage = DealDamage(pVictim, damage, &cleanDamage, SPELL_DIRECT_DAMAGE, GetSpellSchoolMask(spellInfo), spellInfo, true);
    +
            // Procflags
            uint32 procAttacker = PROC_FLAG_HIT_SPELL;
            uint32 procVictim   = (PROC_FLAG_STRUCK_SPELL|PROC_FLAG_TAKE_DAMAGE);
    

    PARTY_KILL is send to you and your party (not raid).

    It is send after the killing-blow and before UNIT_DIED.

    9/16 23:00:38.921 PARTY_KILL,0x000000000011DFA3,"Kla",0x10514,0xF13000420700E4B1,"Mörderischer Schlammling",0xa48

    9/16 23:00:39.031 UNIT_DIED,0x0000000000000000,nil,0x80000000,0xF13000420700E4B1,"Mörderischer Schlammling",0xa48

  3. This is my suggestion to fix this:

    @@ -599,10 +599,14 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
            DEBUG_LOG("DealDamage: victim just died");
    
            // find player: owner of controlled `this` or `this` itself maybe
            Player *player = GetCharmerOrOwnerPlayerOrPlayerItself();
    
    +        WorldPacket data(SMSG_PARTYKILLLOG, (8+8)); //send event PARTY_KILL
    +        data << uint64(this->GetGUID()); //player with killing blow
    +        data << uint64(pVictim->GetGUID()); //victim
    +
            if(pVictim->GetTypeId() == TYPEID_UNIT && ((Creature*)pVictim)->GetLootRecipient())
                player = ((Creature*)pVictim)->GetLootRecipient();
            // Reward player, his pets, and group/raid members
            // call kill spell proc event (before real die and combat stop to triggering auras removed at death/combat stop)
            if(player && player!=pVictim)
    
    

    Is this correct? Can anyone test and give feedback?

  4. Mangos version:

    0.12 rev8348

    How it SHOULD work:

    If you or someone in your group (not raid) kills a unit, the event PARTY_KILL should be fired.

    How it DOES work:

    The event isn't fired at all. Just UNIT_DIED is fired, but with it you can't determine the player who made the killing-blow.

    It would be very nice, if this event could be implemented so that killing-blow addons can work properly.

    Examples:

    http://www.wowwiki.com/COMBAT_LOG_EVENT_UNFILTERED#Special_Events_2

    http://www.wowinterface.com/forums/showthread.php?t=18062 (fired even in pve)

    http://code.google.com/p/wow-raid-log-analysis/wiki/NewCombatLogSample (official log)

    http://paste2.org/p/425706 (MaNGOS log)

    Patch

    See post below.

  5. What bug does the patch fix?

    This will fix the assault-sounds in arathi basin.

    When the alliance assaulted a node, the horde sound was played and vice versa.

    For which repository revision was the patch created?

    0.12.0 rev7424

    Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread.

    No. (Strange, nobody noticed Oo)

    Who has been writing this patch?

    myself

    Just change the lines 168 and 169 in /src/game/BattleGroundAB.h

    BG_AB_SOUND_NODE_ASSAULTED_ALLIANCE = 8174,
    BG_AB_SOUND_NODE_ASSAULTED_HORDE = 8212,

    to

    BG_AB_SOUND_NODE_ASSAULTED_ALLIANCE = 8212,
    BG_AB_SOUND_NODE_ASSAULTED_HORDE = 8174,

    :D

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