aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2009-07-22 22:52:05 +0200
committerQAston <none@none>2009-07-22 22:52:05 +0200
commit9d501da1b8ddb4207ad1d983dcaff2a09b390057 (patch)
tree0c959903dd1c396500ac82b7932d89f7064d0aae /src/game/Unit.cpp
parent974fad377e6f9479d5beb9bca7c51eb8451766a3 (diff)
*Fix Piercing Shots - by freeganja.
*Clear movement generators for unit when removing from world. --HG-- branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 56d3653abd2..5f651fcd015 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -7349,7 +7349,25 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
break;
}
case SPELLFAMILY_HUNTER:
+ {
+ if (auraSpellInfo->SpellIconID == 3247) // Piercing Shots
+ {
+ switch (auraSpellInfo->Id)
+ {
+ case 53234: // Rank 1
+ case 53237: // Rank 2
+ case 53238: // Rank 3
+ trigger_spell_id = 63468;
+ break;
+ default:
+ sLog.outError("Unit::HandleProcTriggerSpell: Spell %u miss posibly Piercing Shots",auraSpellInfo->Id);
+ return false;
+ }
+ basepoints0 = int32(damage * triggerAmount / 100);
+ target = pVictim;
+ }
break;
+ }
case SPELLFAMILY_PALADIN:
{
/*
@@ -12132,6 +12150,7 @@ void Unit::RemoveFromWorld()
ExitVehicle();
UnsummonAllTotems();
RemoveAllControlled();
+ GetMotionMaster()->Clear(false); // remove different non-standard movement generators.
if(m_NotifyListPos >= 0)
{
@@ -12164,7 +12183,6 @@ void Unit::CleanupsBeforeDelete()
getHostilRefManager().setOnlineOfflineState(false);
RemoveAllGameObjects();
RemoveAllDynObjects();
- GetMotionMaster()->Clear(false); // remove different non-standard movement generators.
if(IsInWorld())
RemoveFromWorld();