diff options
Diffstat (limited to 'src/game/SpellEffects.cpp')
-rw-r--r-- | src/game/SpellEffects.cpp | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 47e47d1f119..2a7a45bfbee 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -159,7 +159,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectKillCreditPersonal, // 90 SPELL_EFFECT_KILL_CREDIT Kill credit but only for single person &Spell::EffectUnused, // 91 SPELL_EFFECT_THREAT_ALL one spell: zzOLDBrainwash &Spell::EffectEnchantHeldItem, // 92 SPELL_EFFECT_ENCHANT_HELD_ITEM - &Spell::EffectUnused, // 93 SPELL_EFFECT_SUMMON_PHANTASM + &Spell::EffectForceDeselect, // 93 SPELL_EFFECT_FORCE_DESELECT &Spell::EffectSelfResurrect, // 94 SPELL_EFFECT_SELF_RESURRECT &Spell::EffectSkinning, // 95 SPELL_EFFECT_SKINNING &Spell::EffectCharge, // 96 SPELL_EFFECT_CHARGE @@ -3884,22 +3884,7 @@ void Spell::EffectPickPocket(uint32 /*i*/) // victim have to be alive and humanoid or undead 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); - } - else - { - // Reveal action + get attack - m_caster->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TALK); - m_caster->CombatStart(unitTarget); - } - } + ((Player*)m_caster)->SendLoot(unitTarget->GetGUID(),LOOT_PICKPOCKETING); } void Spell::EffectAddFarsight(uint32 i) @@ -4580,12 +4565,9 @@ void Spell::SpellDamageWeaponDmg(uint32 i) } case SPELLFAMILY_HUNTER: { - // Kill Shot + // Kill Shot - bonus damage from Ranged Attack Power if(m_spellInfo->SpellFamilyFlags[1] & 0x800000) - { - // Increase Weapon Damage by 200% (or Weapon Damage + Weapon Damage) - spell_bonus += m_caster->CalculateDamage(RANGED_ATTACK, false, true); - } + spell_bonus += int32(0.4f*m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)); break; } case SPELLFAMILY_DEATHKNIGHT: @@ -6607,10 +6589,9 @@ void Spell::EffectLeapForward(uint32 i) destz = fabs(ground - z) <= fabs(floor - z) ? ground:floor; } else break; } - if (j == 9) - return; - unitTarget->NearTeleportTo(destx, desty, destz + 0.07531, orientation, unitTarget==m_caster); + if(j < 10) + unitTarget->NearTeleportTo(destx, desty, destz + 0.07531, orientation, unitTarget==m_caster); } void Spell::EffectReputation(uint32 i) @@ -6643,6 +6624,13 @@ void Spell::EffectQuestComplete(uint32 i) _player->AreaExploredOrEventHappens(quest_id); } +void Spell::EffectForceDeselect(uint32 i) +{ + WorldPacket data(SMSG_CLEAR_TARGET, 8); + data << uint64(m_caster->GetGUID()); + m_caster->SendMessageToSet(&data, true); +} + void Spell::EffectSelfResurrect(uint32 i) { if(!unitTarget || unitTarget->isAlive()) |