mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
*Fix 'crazy procs' issue and shadowstep remove on stealth.
--HG-- branch : trunk
This commit is contained in:
@@ -1439,12 +1439,12 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
|
||||
switch (attackType)
|
||||
{
|
||||
case BASE_ATTACK:
|
||||
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MILEE_HIT;
|
||||
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MELEE_HIT;
|
||||
damageInfo->procVictim = PROC_FLAG_TAKEN_MELEE_HIT;
|
||||
damageInfo->HitInfo = HITINFO_NORMALSWING2;
|
||||
break;
|
||||
case OFF_ATTACK:
|
||||
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MILEE_HIT | PROC_FLAG_SUCCESSFUL_OFFHAND_HIT;
|
||||
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MELEE_HIT | PROC_FLAG_SUCCESSFUL_OFFHAND_HIT;
|
||||
damageInfo->procVictim = PROC_FLAG_TAKEN_MELEE_HIT;//|PROC_FLAG_TAKEN_OFFHAND_HIT // not used
|
||||
damageInfo->HitInfo = HITINFO_LEFTSWING;
|
||||
break;
|
||||
@@ -2982,7 +2982,7 @@ SpellMissInfo Unit::SpellHitResult(Unit *pVictim, SpellEntry const *spell, bool
|
||||
if (reflectchance > 0 && roll_chance_i(reflectchance))
|
||||
{
|
||||
// Start triggers for remove charges if need (trigger only for victim, and mark as active spell)
|
||||
ProcDamageAndSpell(pVictim, PROC_FLAG_NONE, PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT, PROC_EX_REFLECT, 0, BASE_ATTACK, spell);
|
||||
ProcDamageAndSpell(pVictim, PROC_FLAG_NONE, PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT, PROC_EX_REFLECT, 1, BASE_ATTACK, spell);
|
||||
return SPELL_MISS_REFLECT;
|
||||
}
|
||||
}
|
||||
@@ -12834,6 +12834,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
|
||||
// Remove charge (aura can be removed by triggers)
|
||||
if(useCharges && takeCharges)
|
||||
{
|
||||
sLog.outError("%d, %d, %d", Id, procSpell? procSpell->Id : 0, procFlag);
|
||||
i->aura->DropAuraCharge();
|
||||
}
|
||||
}
|
||||
@@ -13480,7 +13481,7 @@ bool Unit::IsTriggeredAtSpellProcEvent(Unit *pVictim, Aura * aura, SpellEntry co
|
||||
}
|
||||
|
||||
// Check spellProcEvent data requirements
|
||||
if(!spellmgr.IsSpellProcEventCanTriggeredBy(spellProcEvent, EventProcFlag, procSpell, procFlag, procExtra))
|
||||
if(!spellmgr.IsSpellProcEventCanTriggeredBy(spellProcEvent, EventProcFlag, procSpell, procFlag, procExtra, active))
|
||||
return false;
|
||||
// In most cases req get honor or XP from kill
|
||||
if (EventProcFlag & PROC_FLAG_KILL && GetTypeId() == TYPEID_PLAYER)
|
||||
|
||||
Reference in New Issue
Block a user