mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
[7229] Add area limitation checks for battleground/arena spells.
Signed-off-by: VladimirMangos <vladimir@getmangos.com> Spell sorted by 2 list and map ids lists replaced by map type checking in patch.
This commit is contained in:
parent
160777848a
commit
6afcf1a1ef
3 changed files with 34 additions and 4 deletions
|
|
@ -955,7 +955,7 @@ void BattleGround::AddPlayer(Player *plr)
|
|||
}
|
||||
(plr)->RemovePet(NULL,PET_SAVE_NOT_IN_SLOT);
|
||||
}
|
||||
else
|
||||
else
|
||||
(plr)->SetTemporaryUnsummonedPetNumber(0);
|
||||
|
||||
if(GetStatus() == STATUS_WAIT_JOIN) // not started yet
|
||||
|
|
|
|||
|
|
@ -2422,11 +2422,41 @@ uint8 GetSpellAllowedInLocationError(SpellEntry const *spellInfo,uint32 map_id,u
|
|||
case 54055: // Dominion Over Acherus
|
||||
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
|
||||
return area_id == 4028 || area_id == 4029 || area_id == 4106 || area_id == 4031 ? 0 : SPELL_FAILED_INCORRECT_AREA;
|
||||
case 23333: // Warsong Flag
|
||||
case 23335: // Silverwing Flag
|
||||
return map_id == 489 ? 0 : SPELL_FAILED_REQUIRES_AREA;
|
||||
case 34976: // Netherstorm Flag
|
||||
return map_id == 566 ? 0 : SPELL_FAILED_REQUIRES_AREA;
|
||||
case 2584: // Waiting to Resurrect
|
||||
case 22011: // Spirit Heal Channel
|
||||
case 22012: // Spirit Heal
|
||||
case 24171: // Resurrection Impact Visual
|
||||
case 42792: // Recently Dropped Flag
|
||||
case 43681: // Inactive
|
||||
case 44521: // Preparation
|
||||
case 44535: // Spirit Heal (mana)
|
||||
{
|
||||
MapEntry const* mapEntry = sMapStore.LookupEntry(map_id);
|
||||
if(!mapEntry)
|
||||
return SPELL_FAILED_INCORRECT_AREA;
|
||||
|
||||
return mapEntry->IsBattleGround() ? 0 : SPELL_FAILED_REQUIRES_AREA;
|
||||
}
|
||||
case 32724: // Gold Team (Alliance)
|
||||
case 32725: // Green Team (Alliance)
|
||||
case 32727: // Arena Preparation
|
||||
case 35774: // Gold Team (Horde)
|
||||
case 35775: // Green Team (Horde)
|
||||
{
|
||||
MapEntry const* mapEntry = sMapStore.LookupEntry(map_id);
|
||||
if(!mapEntry)
|
||||
return SPELL_FAILED_INCORRECT_AREA;
|
||||
|
||||
return mapEntry->IsBattleArena() ? 0 : SPELL_FAILED_REQUIRES_AREA;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "7228"
|
||||
#define REVISION_NR "7229"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue