*Fix kill command-by pasdVn.

*Fix tidal force.

--HG--
branch : trunk
This commit is contained in:
QAston
2009-03-22 22:21:25 +01:00
parent 25c13e0d62
commit 36ccfd4168
4 changed files with 66 additions and 6 deletions
+6
View File
@@ -0,0 +1,6 @@
DELETE FROM `spell_proc_event` WHERE `entry` IN (55198, 34026);
INSERT INTO `spell_proc_event` VALUES
-- Tidial Force
(55198, 0x00, 11, 0x000001C0, 0x00000000, 0x00000000, 0x00004000, 0x00000002, 0.000000, 0.000000, 0),
-- Kill Command
(34026, 0x00, 9, 0x00000000, 0x10000000, 0x00000000, 0x0000000, 0x00000000, 0.000000, 0.000000, 0);
+39
View File
@@ -1162,6 +1162,7 @@ void Aura::HandleAddModifier(bool apply, bool Real)
case 57761: // Fireball!
SetAuraCharges(1);
break;
}
SpellModifier *mod = new SpellModifier;
@@ -1955,6 +1956,44 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
if(caster)
caster->CastSpell(caster,13138,true,NULL,this);
return;
case 34026: // kill command
{
Unit * pet = m_target->GetPet();
if (!pet)
return;
m_target->CastSpell(m_target,34027,true,NULL,this);
// set 3 stacks and 3 charges (to make all auras not disappear at once)
Aura* owner_aura = m_target->GetAura(34027,0);
Aura* pet_aura = pet->GetAura(58914,0);
if( owner_aura )
{
owner_aura->SetStackAmount(owner_aura->GetSpellProto()->StackAmount);
}
if( pet_aura )
{
pet_aura->SetAuraCharges(0);
pet_aura->SetStackAmount(owner_aura->GetSpellProto()->StackAmount);
}
return;
}
case 55198: // Tidal Force
{
m_target->CastSpell(m_target,55166,true,NULL,this);
// set 3 stacks and 3 charges (to make all auras not disappear at once)
Aura* owner_aura = m_target->GetAura(55166,0);
if( owner_aura )
{
// This aura lasts 2 sec, need this hack to properly proc spells
// TODO: drop aura charges for ApplySpellMod in ProcDamageAndSpell
SetAuraDuration(owner_aura->GetAuraDuration());
// Make aura be not charged-this prevents removing charge on not crit spells
owner_aura->SetAuraCharges(0);
owner_aura->SetStackAmount(owner_aura->GetSpellProto()->StackAmount);
}
return;
}
case 39850: // Rocket Blast
if(roll_chance_i(20)) // backfire stun
m_target->CastSpell(m_target, 51581, true, NULL, this);
-5
View File
@@ -2395,11 +2395,6 @@ void SpellMgr::LoadSpellCustomAttr()
if(spellInfo->SpellFamilyFlags[2] & 0x100)
spellInfo->MaxAffectedTargets = 2;
break;
case SPELLFAMILY_PRIEST:
// Penance
if (spellInfo->SpellFamilyFlags[1] & 0x800000)
spellInfo->AttributesEx5 |= SPELL_ATTR_EX5_START_PERIODIC_AT_APPLY;
break;
}
}
}
+21 -1
View File
@@ -5388,6 +5388,18 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
target = this;
break;
}
// Kill command
case 58914:
{
// Remove aura stack from pet
RemoveSingleSpellAurasFromStack(58914);
Unit* owner = GetOwner();
if(!owner)
return true;
// reduce the owner's aura stack
owner->RemoveSingleSpellAurasFromStack(34027);
return true;
}
// Vampiric Touch (generic, used by some boss)
case 52723:
case 60501:
@@ -6345,8 +6357,16 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
triggered_spell_id = 16086;
break;
}
// Tidal Force
case 55198:
{
// Remove aura stack from caster
RemoveSingleSpellAurasFromStack(55166);
// drop charges
return false;
}
// Totemic Power (The Earthshatterer set)
case 28823:
case 28823:
{
if( !pVictim )
return false;