*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* caster = GetCaster();
|
||||||
Unit* victim = GetTarget();
|
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;
|
return;
|
||||||
|
|
||||||
SpellEntry const *spellInfo = GetSpellProto();
|
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");
|
DEBUG_LOG("DealDamage: victim just died");
|
||||||
|
|
||||||
|
pVictim->SetHealth(0);
|
||||||
|
|
||||||
// find player: owner of controlled `this` or `this` itself maybe
|
// find player: owner of controlled `this` or `this` itself maybe
|
||||||
Player *player = GetCharmerOrOwnerPlayerOrPlayerItself();
|
Player *player = GetCharmerOrOwnerPlayerOrPlayerItself();
|
||||||
|
|
||||||
@@ -761,8 +763,8 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
|
|||||||
// FORM_SPIRITOFREDEMPTION and related auras
|
// FORM_SPIRITOFREDEMPTION and related auras
|
||||||
pVictim->CastSpell(pVictim,27827,true,NULL,spiritOfRedemtionTalentReady);
|
pVictim->CastSpell(pVictim,27827,true,NULL,spiritOfRedemtionTalentReady);
|
||||||
}
|
}
|
||||||
else
|
//else
|
||||||
pVictim->SetHealth(0);
|
// pVictim->SetHealth(0);
|
||||||
|
|
||||||
// remember victim PvP death for corpse type and corpse reclaim delay
|
// remember victim PvP death for corpse type and corpse reclaim delay
|
||||||
// at original death (not at SpiritOfRedemtionTalent timeout)
|
// at original death (not at SpiritOfRedemtionTalent timeout)
|
||||||
|
|||||||
Reference in New Issue
Block a user