Fix pickpocket - reveal rogue only if spell is resisted
--HG-- branch : trunk
This commit is contained in:
@@ -1208,6 +1208,16 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target)
|
|||||||
// Do triggers for unit (reflect triggers passed on hit phase for correct drop charge)
|
// Do triggers for unit (reflect triggers passed on hit phase for correct drop charge)
|
||||||
if (canEffectTrigger && missInfo != SPELL_MISS_REFLECT)
|
if (canEffectTrigger && missInfo != SPELL_MISS_REFLECT)
|
||||||
caster->ProcDamageAndSpell(unit, procAttacker, procVictim, procEx, 0, m_attackType, m_spellInfo, m_triggeredByAuraSpell);
|
caster->ProcDamageAndSpell(unit, procAttacker, procVictim, procEx, 0, m_attackType, m_spellInfo, m_triggeredByAuraSpell);
|
||||||
|
|
||||||
|
// Failed Pickpocket, reveal rogue
|
||||||
|
if (missInfo == SPELL_MISS_RESIST
|
||||||
|
&& m_customAttr & SPELL_ATTR_CU_PICKPOCKET
|
||||||
|
&& unitTarget->GetTypeId() == TYPEID_UNIT)
|
||||||
|
{
|
||||||
|
m_caster->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TALK);
|
||||||
|
if (((Creature*)unitTarget)->IsAIEnabled)
|
||||||
|
((Creature*)unitTarget)->AI()->AttackStart(m_caster);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_caster && !m_caster->IsFriendlyTo(unit) && !IsPositiveSpell(m_spellInfo->Id))
|
if(m_caster && !m_caster->IsFriendlyTo(unit) && !IsPositiveSpell(m_spellInfo->Id))
|
||||||
|
|||||||
@@ -3880,22 +3880,7 @@ void Spell::EffectPickPocket(uint32 /*i*/)
|
|||||||
|
|
||||||
// victim have to be alive and humanoid or undead
|
// victim have to be alive and humanoid or undead
|
||||||
if (unitTarget->isAlive() && (unitTarget->GetCreatureTypeMask() &CREATURE_TYPEMASK_HUMANOID_OR_UNDEAD) != 0)
|
if (unitTarget->isAlive() && (unitTarget->GetCreatureTypeMask() &CREATURE_TYPEMASK_HUMANOID_OR_UNDEAD) != 0)
|
||||||
{
|
|
||||||
int32 chance = 10 + int32(m_caster->getLevel()) - int32(unitTarget->getLevel());
|
|
||||||
|
|
||||||
if (chance > irand(0, 19))
|
|
||||||
{
|
|
||||||
// Stealing successful
|
|
||||||
//sLog.outDebug("Sending loot from pickpocket");
|
|
||||||
((Player*)m_caster)->SendLoot(unitTarget->GetGUID(),LOOT_PICKPOCKETING);
|
((Player*)m_caster)->SendLoot(unitTarget->GetGUID(),LOOT_PICKPOCKETING);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Reveal action + get attack
|
|
||||||
m_caster->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TALK);
|
|
||||||
m_caster->CombatStart(unitTarget);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::EffectAddFarsight(uint32 i)
|
void Spell::EffectAddFarsight(uint32 i)
|
||||||
|
|||||||
Reference in New Issue
Block a user