mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +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);
|
(plr)->RemovePet(NULL,PET_SAVE_NOT_IN_SLOT);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
(plr)->SetTemporaryUnsummonedPetNumber(0);
|
(plr)->SetTemporaryUnsummonedPetNumber(0);
|
||||||
|
|
||||||
if(GetStatus() == STATUS_WAIT_JOIN) // not started yet
|
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
|
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
|
case 51852: // The Eye of Acherus
|
||||||
{
|
|
||||||
return map_id == 609 ? 0 : SPELL_FAILED_REQUIRES_AREA;
|
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;
|
||||||
|
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;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7228"
|
#define REVISION_NR "7229"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue