*Fix the bug that improved drain soul talent make caster cannot get soul shard.

--HG--
branch : trunk
This commit is contained in:
megamage
2008-11-29 14:04:20 -06:00
parent 3d8d45c57a
commit 7af8633331
2 changed files with 10 additions and 3 deletions
+6 -1
View File
@@ -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
View File
@@ -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)