*Update to Mangos 7195.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-01-29 18:18:33 -06:00
parent 94f0a02f66
commit 7663c741c7
6 changed files with 46 additions and 16 deletions
+6 -2
View File
@@ -19453,10 +19453,12 @@ void Player::UpdateZoneDependentAuras( uint32 newZone )
} }
// Some spells applied at enter into zone (with subzones) // Some spells applied at enter into zone (with subzones)
switch(newZone)
{
case 2367: // Old Hillsbrad Foothills
{
// Human Illusion // Human Illusion
// NOTE: these are removed by RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CHANGE_MAP); // NOTE: these are removed by RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_CHANGE_MAP);
if ( newZone == 2367 ) // Old Hillsbrad Foothills
{
uint32 spellid = 0; uint32 spellid = 0;
// all horde races // all horde races
if( GetTeam() == HORDE ) if( GetTeam() == HORDE )
@@ -19467,6 +19469,8 @@ void Player::UpdateZoneDependentAuras( uint32 newZone )
if(spellid && !HasAura(spellid,0) ) if(spellid && !HasAura(spellid,0) )
CastSpell(this,spellid,true); CastSpell(this,spellid,true);
break;
}
} }
} }
+1 -1
View File
@@ -305,7 +305,7 @@ enum AuraType
SPELL_AURA_258 = 258, SPELL_AURA_258 = 258,
SPELL_AURA_259 = 259, SPELL_AURA_259 = 259,
SPELL_AURA_SCREEN_EFFECT = 260, SPELL_AURA_SCREEN_EFFECT = 260,
SPELL_AURA_261 = 261, SPELL_AURA_PHASE = 261,
SPELL_AURA_262 = 262, SPELL_AURA_262 = 262,
SPELL_AURA_ALLOW_ONLY_ABILITY = 263, SPELL_AURA_ALLOW_ONLY_ABILITY = 263,
SPELL_AURA_264 = 264, SPELL_AURA_264 = 264,
+23 -2
View File
@@ -315,9 +315,9 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
&Aura::HandleNULL, //258 SPELL_AURA_MOD_SPELL_VISUAL &Aura::HandleNULL, //258 SPELL_AURA_MOD_SPELL_VISUAL
&Aura::HandleNULL, //259 corrupt healing over time spell &Aura::HandleNULL, //259 corrupt healing over time spell
&Aura::HandleNoImmediateEffect, //260 SPELL_AURA_SCREEN_EFFECT (miscvalue = id in ScreenEffect.dbc) not required any code &Aura::HandleNoImmediateEffect, //260 SPELL_AURA_SCREEN_EFFECT (miscvalue = id in ScreenEffect.dbc) not required any code
&Aura::HandleNULL, //261 out of phase? &Aura::HandlePhase, //261 SPELL_AURA_PHASE undetactable invisibility? implemented in Unit::isVisibleForOrDetect
&Aura::HandleNULL, //262 &Aura::HandleNULL, //262
&Aura::HandleNULL, //263 SPELL_AURA_ALLOW_ONLY_ABILITY player can use only abilites set in SpellClassMask &Aura::HandleNULL, //263 SPELL_AURA_ALLOW_ONLY_ABILITY player can use only abilities set in SpellClassMask
&Aura::HandleNULL, //264 unused &Aura::HandleNULL, //264 unused
&Aura::HandleNULL, //265 unused &Aura::HandleNULL, //265 unused
&Aura::HandleNULL, //266 unused &Aura::HandleNULL, //266 unused
@@ -6547,3 +6547,24 @@ void Aura::HandleModCharm(bool apply, bool Real)
else else
m_target->RemoveCharmedOrPossessedBy(caster); m_target->RemoveCharmedOrPossessedBy(caster);
} }
void Aura::HandlePhase(bool apply, bool Real)
{
// no-phase is also phase state so same code for apply and remove
// phase auras normaly not expected at BG but anyway better check
if(Real && m_target->GetTypeId()==TYPEID_PLAYER)
{
// drop flag at invisible in bg
if(((Player*)m_target)->InBattleGround())
if(BattleGround *bg = ((Player*)m_target)->GetBattleGround())
bg->EventPlayerDroppedFlag((Player*)m_target);
}
// apply/remove only if not in GM invisibility
if(m_target->GetVisibility()!=VISIBILITY_OFF)
{
// just need triggering visibility update base at aura presence
m_target->SetVisibility(m_target->GetVisibility());
}
}
+1
View File
@@ -211,6 +211,7 @@ class TRINITY_DLL_SPEC Aura
void HandleAuraIncreaseBaseHealthPercent(bool Apply, bool Real); void HandleAuraIncreaseBaseHealthPercent(bool Apply, bool Real);
void HandleNoReagentUseAura(bool Apply, bool Real); void HandleNoReagentUseAura(bool Apply, bool Real);
void HandleModAttackerSpellHitChance(bool apply, bool Real); void HandleModAttackerSpellHitChance(bool apply, bool Real);
void HandlePhase(bool Apply, bool Real);
virtual ~Aura(); virtual ~Aura();
+4
View File
@@ -2587,6 +2587,10 @@ uint8 GetSpellAllowedInLocationError(SpellEntry const *spellInfo,uint32 map_id,u
case 51721: // Dominion Over Acherus case 51721: // Dominion Over Acherus
case 54055: // Dominion Over Acherus case 54055: // Dominion Over Acherus
return area_id == 4281 || area_id == 4342 ? 0 : SPELL_FAILED_INCORRECT_AREA; return area_id == 4281 || area_id == 4342 ? 0 : SPELL_FAILED_INCORRECT_AREA;
case 51852: // The Eye of Acherus
{
return map_id == 609 ? 0 : SPELL_FAILED_REQUIRES_AREA;
}
case 54119: // Mist of the Kvaldir case 54119: // Mist of the Kvaldir
return area_id == 4028 || area_id == 4029 || area_id == 4106 || area_id == 4031 ? 0 : SPELL_FAILED_INCORRECT_AREA; return area_id == 4028 || area_id == 4029 || area_id == 4106 || area_id == 4031 ? 0 : SPELL_FAILED_INCORRECT_AREA;
} }
+1 -1
View File
@@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "7194" #define REVISION_NR "7195"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__