mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 13:37:00 +00:00
[8391] Apply for FORM_SHADOW aditionl auras from spell 49868.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
0ae528775d
commit
c5bed93909
2 changed files with 28 additions and 23 deletions
|
|
@ -5426,7 +5426,7 @@ void Aura::HandleNoReagentUseAura(bool /*Apply*/, bool Real)
|
||||||
|
|
||||||
void Aura::HandleShapeshiftBoosts(bool apply)
|
void Aura::HandleShapeshiftBoosts(bool apply)
|
||||||
{
|
{
|
||||||
uint32 spellId = 0;
|
uint32 spellId1 = 0;
|
||||||
uint32 spellId2 = 0;
|
uint32 spellId2 = 0;
|
||||||
uint32 HotWSpellId = 0;
|
uint32 HotWSpellId = 0;
|
||||||
uint32 MasterShaperSpellId = 0;
|
uint32 MasterShaperSpellId = 0;
|
||||||
|
|
@ -5436,87 +5436,92 @@ void Aura::HandleShapeshiftBoosts(bool apply)
|
||||||
switch(form)
|
switch(form)
|
||||||
{
|
{
|
||||||
case FORM_CAT:
|
case FORM_CAT:
|
||||||
spellId = 3025;
|
spellId1 = 3025;
|
||||||
HotWSpellId = 24900;
|
HotWSpellId = 24900;
|
||||||
MasterShaperSpellId = 48420;
|
MasterShaperSpellId = 48420;
|
||||||
break;
|
break;
|
||||||
case FORM_TREE:
|
case FORM_TREE:
|
||||||
spellId = 5420;
|
spellId1 = 5420;
|
||||||
spellId2 = 34123;
|
spellId2 = 34123;
|
||||||
MasterShaperSpellId = 48422;
|
MasterShaperSpellId = 48422;
|
||||||
break;
|
break;
|
||||||
case FORM_TRAVEL:
|
case FORM_TRAVEL:
|
||||||
spellId = 5419;
|
spellId1 = 5419;
|
||||||
break;
|
break;
|
||||||
case FORM_AQUA:
|
case FORM_AQUA:
|
||||||
spellId = 5421;
|
spellId1 = 5421;
|
||||||
break;
|
break;
|
||||||
case FORM_BEAR:
|
case FORM_BEAR:
|
||||||
spellId = 1178;
|
spellId1 = 1178;
|
||||||
spellId2 = 21178;
|
spellId2 = 21178;
|
||||||
HotWSpellId = 24899;
|
HotWSpellId = 24899;
|
||||||
MasterShaperSpellId = 48418;
|
MasterShaperSpellId = 48418;
|
||||||
break;
|
break;
|
||||||
case FORM_DIREBEAR:
|
case FORM_DIREBEAR:
|
||||||
spellId = 9635;
|
spellId1 = 9635;
|
||||||
spellId2 = 21178;
|
spellId2 = 21178;
|
||||||
HotWSpellId = 24899;
|
HotWSpellId = 24899;
|
||||||
MasterShaperSpellId = 48418;
|
MasterShaperSpellId = 48418;
|
||||||
break;
|
break;
|
||||||
case FORM_BATTLESTANCE:
|
case FORM_BATTLESTANCE:
|
||||||
spellId = 21156;
|
spellId1 = 21156;
|
||||||
break;
|
break;
|
||||||
case FORM_DEFENSIVESTANCE:
|
case FORM_DEFENSIVESTANCE:
|
||||||
spellId = 7376;
|
spellId1 = 7376;
|
||||||
break;
|
break;
|
||||||
case FORM_BERSERKERSTANCE:
|
case FORM_BERSERKERSTANCE:
|
||||||
spellId = 7381;
|
spellId1 = 7381;
|
||||||
break;
|
break;
|
||||||
case FORM_MOONKIN:
|
case FORM_MOONKIN:
|
||||||
spellId = 24905;
|
spellId1 = 24905;
|
||||||
// aura from effect trigger spell
|
// aura from effect trigger spell
|
||||||
spellId2 = 24907;
|
spellId2 = 24907;
|
||||||
MasterShaperSpellId = 48421;
|
MasterShaperSpellId = 48421;
|
||||||
break;
|
break;
|
||||||
case FORM_FLIGHT:
|
case FORM_FLIGHT:
|
||||||
spellId = 33948;
|
spellId1 = 33948;
|
||||||
spellId2 = 34764;
|
spellId2 = 34764;
|
||||||
break;
|
break;
|
||||||
case FORM_FLIGHT_EPIC:
|
case FORM_FLIGHT_EPIC:
|
||||||
spellId = 40122;
|
spellId1 = 40122;
|
||||||
spellId2 = 40121;
|
spellId2 = 40121;
|
||||||
break;
|
break;
|
||||||
case FORM_METAMORPHOSIS:
|
case FORM_METAMORPHOSIS:
|
||||||
spellId = 54817;
|
spellId1 = 54817;
|
||||||
spellId2 = 54879;
|
spellId2 = 54879;
|
||||||
break;
|
break;
|
||||||
case FORM_SPIRITOFREDEMPTION:
|
case FORM_SPIRITOFREDEMPTION:
|
||||||
spellId = 27792;
|
spellId1 = 27792;
|
||||||
spellId2 = 27795; // must be second, this important at aura remove to prevent to early iterator invalidation.
|
spellId2 = 27795; // must be second, this important at aura remove to prevent to early iterator invalidation.
|
||||||
break;
|
break;
|
||||||
|
case FORM_SHADOW:
|
||||||
|
spellId1 = 49868;
|
||||||
|
|
||||||
|
if(m_target->GetTypeId() == TYPEID_PLAYER) // Spell 49868 have same category as main form spell and share cooldown
|
||||||
|
((Player*)m_target)->RemoveSpellCooldown(49868);
|
||||||
|
break;
|
||||||
case FORM_GHOSTWOLF:
|
case FORM_GHOSTWOLF:
|
||||||
case FORM_AMBIENT:
|
case FORM_AMBIENT:
|
||||||
case FORM_GHOUL:
|
case FORM_GHOUL:
|
||||||
case FORM_SHADOW:
|
|
||||||
case FORM_STEALTH:
|
case FORM_STEALTH:
|
||||||
case FORM_CREATURECAT:
|
case FORM_CREATURECAT:
|
||||||
case FORM_CREATUREBEAR:
|
case FORM_CREATUREBEAR:
|
||||||
spellId = 0;
|
spellId1 = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(apply)
|
if(apply)
|
||||||
{
|
{
|
||||||
if (spellId) m_target->CastSpell(m_target, spellId, true, NULL, this );
|
if (spellId1) m_target->CastSpell(m_target, spellId1, true, NULL, this );
|
||||||
if (spellId2) m_target->CastSpell(m_target, spellId2, true, NULL, this);
|
if (spellId2) m_target->CastSpell(m_target, spellId2, true, NULL, this);
|
||||||
|
|
||||||
if(m_target->GetTypeId() == TYPEID_PLAYER)
|
if (m_target->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
const PlayerSpellMap& sp_list = ((Player *)m_target)->GetSpellMap();
|
const PlayerSpellMap& sp_list = ((Player *)m_target)->GetSpellMap();
|
||||||
for (PlayerSpellMap::const_iterator itr = sp_list.begin(); itr != sp_list.end(); ++itr)
|
for (PlayerSpellMap::const_iterator itr = sp_list.begin(); itr != sp_list.end(); ++itr)
|
||||||
{
|
{
|
||||||
if(itr->second->state == PLAYERSPELL_REMOVED) continue;
|
if (itr->second->state == PLAYERSPELL_REMOVED) continue;
|
||||||
if(itr->first==spellId || itr->first==spellId2) continue;
|
if (itr->first==spellId1 || itr->first==spellId2) continue;
|
||||||
SpellEntry const *spellInfo = sSpellStore.LookupEntry(itr->first);
|
SpellEntry const *spellInfo = sSpellStore.LookupEntry(itr->first);
|
||||||
if (!spellInfo || !(spellInfo->Attributes & (SPELL_ATTR_PASSIVE | (1<<7))))
|
if (!spellInfo || !(spellInfo->Attributes & (SPELL_ATTR_PASSIVE | (1<<7))))
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -5599,7 +5604,7 @@ void Aura::HandleShapeshiftBoosts(bool apply)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_target->RemoveAurasDueToSpell(spellId);
|
m_target->RemoveAurasDueToSpell(spellId1);
|
||||||
m_target->RemoveAurasDueToSpell(spellId2);
|
m_target->RemoveAurasDueToSpell(spellId2);
|
||||||
m_target->RemoveAurasDueToSpell(MasterShaperSpellId);
|
m_target->RemoveAurasDueToSpell(MasterShaperSpellId);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8390"
|
#define REVISION_NR "8391"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue