*Fix the bug that improved drain soul talent make caster cannot get soul shard.
--HG-- branch : trunk
This commit is contained in:
@@ -2798,7 +2798,12 @@ void Aura::HandleChannelDeathItem(bool apply, bool Real)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
Unit* victim = GetTarget();
|
||||
if(!caster || caster->GetTypeId() != TYPEID_PLAYER || !victim || m_removeMode!=AURA_REMOVE_BY_DEATH)
|
||||
if(!caster || caster->GetTypeId() != TYPEID_PLAYER || !victim)// || m_removeMode!=AURA_REMOVE_BY_DEATH)
|
||||
return;
|
||||
|
||||
//we cannot check removemode = death
|
||||
//talent will remove the caster's aura->interrupt channel->remove victim aura
|
||||
if(victim->GetHealth() > 0)
|
||||
return;
|
||||
|
||||
SpellEntry const *spellInfo = GetSpellProto();
|
||||
|
||||
+4
-2
@@ -679,6 +679,8 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
|
||||
{
|
||||
DEBUG_LOG("DealDamage: victim just died");
|
||||
|
||||
pVictim->SetHealth(0);
|
||||
|
||||
// find player: owner of controlled `this` or `this` itself maybe
|
||||
Player *player = GetCharmerOrOwnerPlayerOrPlayerItself();
|
||||
|
||||
@@ -761,8 +763,8 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
|
||||
// FORM_SPIRITOFREDEMPTION and related auras
|
||||
pVictim->CastSpell(pVictim,27827,true,NULL,spiritOfRedemtionTalentReady);
|
||||
}
|
||||
else
|
||||
pVictim->SetHealth(0);
|
||||
//else
|
||||
// pVictim->SetHealth(0);
|
||||
|
||||
// remember victim PvP death for corpse type and corpse reclaim delay
|
||||
// at original death (not at SpiritOfRedemtionTalent timeout)
|
||||
|
||||
Reference in New Issue
Block a user