mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
Add SPELL_EFFECT_SCRIPT_EFFECT for Hunter 53209
Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
parent
68a23f6587
commit
381e801b7c
1 changed files with 53 additions and 1 deletions
|
|
@ -5002,8 +5002,60 @@ void Spell::EffectScriptEffect(uint32 effIndex)
|
|||
break;
|
||||
}
|
||||
}
|
||||
if( m_spellInfo->SpellFamilyName == SPELLFAMILY_HUNTER )
|
||||
{
|
||||
switch(m_spellInfo->Id)
|
||||
{
|
||||
// Chimera Shot
|
||||
case 53209:
|
||||
{
|
||||
uint32 spellId = 0;
|
||||
int32 basePoint = 0;
|
||||
Unit::AuraMap& Auras = unitTarget->GetAuras();
|
||||
for(Unit::AuraMap::iterator i = Auras.begin(); i != Auras.end(); ++i)
|
||||
{
|
||||
Aura *aura = (*i).second;
|
||||
if (aura->GetCasterGUID() != m_caster->GetGUID())
|
||||
continue;
|
||||
// Search only Serpent Sting, Viper Sting, Scorpid Sting auras
|
||||
uint64 familyFlag = aura->GetSpellProto()->SpellFamilyFlags;
|
||||
if (!(familyFlag & 0x000000800000C000LL))
|
||||
continue;
|
||||
// Refresh aura duration
|
||||
aura->SetAuraDuration(aura->GetAuraMaxDuration());
|
||||
aura->SendAuraUpdate(false);
|
||||
|
||||
if( m_spellInfo->SpellFamilyName == SPELLFAMILY_PALADIN )
|
||||
// Serpent Sting - Instantly deals 40% of the damage done by your Serpent Sting.
|
||||
if (familyFlag & 0x0000000000004000LL && aura->GetEffIndex() == 0)
|
||||
{
|
||||
spellId = 53353; // 53353 Chimera Shot - Serpent
|
||||
basePoint = aura->GetModifier()->m_amount * 5 * 40 / 100;
|
||||
}
|
||||
// Viper Sting - Instantly restores mana to you equal to 60% of the total amount drained by your Viper Sting.
|
||||
if (familyFlag & 0x0000008000000000LL && aura->GetEffIndex() == 0)
|
||||
{
|
||||
spellId = 53358; // 53358 Chimera Shot - Viper
|
||||
basePoint = aura->GetModifier()->m_amount * 4 * 60 / 100;
|
||||
}
|
||||
// Scorpid Sting - Attempts to Disarm the target for 10 sec. This effect cannot occur more than once per 1 minute.
|
||||
if (familyFlag & 0x0000000000008000LL)
|
||||
spellId = 53359; // 53359 Chimera Shot - Scorpid
|
||||
// ?? nothing say in spell desc (possibly need addition check)
|
||||
//if (familyFlag & 0x0000010000000000LL || // dot
|
||||
// familyFlag & 0x0000100000000000LL) // stun
|
||||
//{
|
||||
// spellId = 53366; // 53366 Chimera Shot - Wyvern
|
||||
//}
|
||||
}
|
||||
if (spellId)
|
||||
m_caster->CastCustomSpell(unitTarget, spellId, &basePoint, 0, 0, false);
|
||||
return;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if( m_spellInfo->SpellFamilyName == SPELLFAMILY_PALADIN )
|
||||
{
|
||||
switch(m_spellInfo->SpellFamilyFlags)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue