[8416] Fixed problem with double cast form passives at loading. Author: VladimirMangos
* Drop learning form passives at form psell learning, and cast it explictly from code in all cases.
* Drop cast form passives at learning.
* Note: talents that have dependent form time passives still work in original way: learned and casted at learn if need.
* Drop hack for spell 24907 casting at form apply: it casted fines as result normal triggered effect in related form spell.
Original patch provided by nos4r2zod.
--HG--
branch : trunk
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
-- ALTER TABLE db_version CHANGE COLUMN required_8412_01_mangos_mangos_string required_8416_01_mangos_spell_learn_spell bit;
|
||||||
|
|
||||||
|
/* All form passives */
|
||||||
|
DELETE FROM spell_learn_spell WHERE SpellID in (
|
||||||
|
1178, /* Bear Form (Passive) */
|
||||||
|
3025, /* Cat Form (Passive) */
|
||||||
|
5419, /* Travel Form (Passive) */
|
||||||
|
5420, /* Tree of Life _passive_ */
|
||||||
|
5421, /* Aquatic Form (Passive) */
|
||||||
|
7376, /* Defensive Stance Passive */
|
||||||
|
7381, /* Berserker Stance Passive */
|
||||||
|
9635, /* Dire Bear Form (Passive) */
|
||||||
|
21156, /* Battle Stance Passive */
|
||||||
|
21178, /* Bear Form (Passive2) */
|
||||||
|
24905, /* Moonkin Form (Passive) */
|
||||||
|
34123, /* Tree of Life _pasive_ */
|
||||||
|
33948, /* Flight Form (Passive) */
|
||||||
|
34764, /* Flight Form (Passive) */
|
||||||
|
40121, /* Swift Flight Form (Passive) */
|
||||||
|
40122 /* Swift Flight Form (Passive) */
|
||||||
|
);
|
||||||
+3
-17
@@ -3315,23 +3315,9 @@ void Player::RemoveTemporarySpell(uint32 spellId)
|
|||||||
|
|
||||||
bool Player::IsNeedCastPassiveSpellAtLearn(SpellEntry const* spellInfo) const
|
bool Player::IsNeedCastPassiveSpellAtLearn(SpellEntry const* spellInfo) const
|
||||||
{
|
{
|
||||||
bool need_cast = false;
|
// note: form passives activated with shapeshift spells be implemented by HandleShapeshiftBoosts instead of spell_learn_spell
|
||||||
|
// talent dependent passives activated at form apply have proper stance data
|
||||||
switch(spellInfo->Id)
|
bool need_cast = !spellInfo->Stances || m_form != 0 && (spellInfo->Stances & (1<<(m_form-1)));
|
||||||
{
|
|
||||||
// some spells not have stance data expected cast at form change or present
|
|
||||||
case 5419: need_cast = (m_form == FORM_TRAVEL); break;
|
|
||||||
case 7376: need_cast = (m_form == FORM_DEFENSIVESTANCE); break;
|
|
||||||
case 7381: need_cast = (m_form == FORM_BERSERKERSTANCE); break;
|
|
||||||
case 21156: need_cast = (m_form == FORM_BATTLESTANCE); break;
|
|
||||||
case 21178: need_cast = (m_form == FORM_BEAR || m_form == FORM_DIREBEAR); break;
|
|
||||||
case 33948: need_cast = (m_form == FORM_FLIGHT); break;
|
|
||||||
case 34764: need_cast = (m_form == FORM_FLIGHT); break;
|
|
||||||
case 40121: need_cast = (m_form == FORM_FLIGHT_EPIC); break;
|
|
||||||
case 40122: need_cast = (m_form == FORM_FLIGHT_EPIC); break;
|
|
||||||
// another spells have proper stance data
|
|
||||||
default: need_cast = !spellInfo->Stances || m_form != 0 && (spellInfo->Stances & (1<<(m_form-1))); break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Check CasterAuraStates
|
//Check CasterAuraStates
|
||||||
return need_cast && (!spellInfo->CasterAuraState || HasAuraState(AuraState(spellInfo->CasterAuraState)));
|
return need_cast && (!spellInfo->CasterAuraState || HasAuraState(AuraState(spellInfo->CasterAuraState)));
|
||||||
|
|||||||
@@ -1936,8 +1936,6 @@ void AuraEffect::HandleShapeshiftBoosts(bool apply)
|
|||||||
break;
|
break;
|
||||||
case FORM_MOONKIN:
|
case FORM_MOONKIN:
|
||||||
spellId = 24905;
|
spellId = 24905;
|
||||||
// aura from effect trigger spell
|
|
||||||
spellId2 = 24907;
|
|
||||||
break;
|
break;
|
||||||
case FORM_FLIGHT:
|
case FORM_FLIGHT:
|
||||||
spellId = 33948;
|
spellId = 33948;
|
||||||
|
|||||||
Reference in New Issue
Block a user