mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Disables: Implement SPELL_DISABLE_ARENAS (#23103)
* Core/Disables: Implement SPELL_DISABLE_ARENAS and SPELL_DISABLE_BATTLEGROUNDS By fredimachado
This commit is contained in:
committed by
Giacomo Pozzoni
parent
0ea2b26f86
commit
73d2e5da37
2
sql/updates/world/3.3.5/2019_03_09_01_world.sql
Normal file
2
sql/updates/world/3.3.5/2019_03_09_01_world.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
--
|
||||
ALTER TABLE `disables` CHANGE `flags` `flags` SMALLINT(5) NOT NULL;
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "Creature.h"
|
||||
#include "DatabaseEnv.h"
|
||||
#include "Log.h"
|
||||
#include "Map.h"
|
||||
#include "ObjectMgr.h"
|
||||
#include "OutdoorPvP.h"
|
||||
#include "Player.h"
|
||||
@@ -81,7 +82,7 @@ void LoadDisables()
|
||||
}
|
||||
|
||||
uint32 entry = fields[1].GetUInt32();
|
||||
uint8 flags = fields[2].GetUInt8();
|
||||
uint16 flags = fields[2].GetUInt16();
|
||||
std::string params_0 = fields[3].GetString();
|
||||
std::string params_1 = fields[4].GetString();
|
||||
|
||||
@@ -317,6 +318,18 @@ bool IsDisabledFor(DisableType type, uint32 entry, WorldObject const* ref, uint8
|
||||
(ref->GetTypeId() == TYPEID_UNIT && ((spellFlags & SPELL_DISABLE_CREATURE) || (ref->ToCreature()->IsPet() && (spellFlags & SPELL_DISABLE_PET)))) ||
|
||||
(ref->GetTypeId() == TYPEID_GAMEOBJECT && (spellFlags & SPELL_DISABLE_GAMEOBJECT)))
|
||||
{
|
||||
if (spellFlags & (SPELL_DISABLE_ARENAS | SPELL_DISABLE_BATTLEGROUNDS))
|
||||
{
|
||||
if (Map const* map = ref->GetMap())
|
||||
{
|
||||
if (spellFlags & SPELL_DISABLE_ARENAS && map->IsBattleArena())
|
||||
return true; // Current map is Arena and this spell is disabled here
|
||||
|
||||
if (spellFlags & SPELL_DISABLE_BATTLEGROUNDS && map->IsBattleground())
|
||||
return true; // Current map is a Battleground and this spell is disabled here
|
||||
}
|
||||
}
|
||||
|
||||
if (spellFlags & SPELL_DISABLE_MAP)
|
||||
{
|
||||
std::set<uint32> const& mapIds = itr->second.params[0];
|
||||
|
||||
@@ -46,9 +46,12 @@ enum SpellDisableTypes
|
||||
SPELL_DISABLE_AREA = 0x20,
|
||||
SPELL_DISABLE_LOS = 0x40,
|
||||
SPELL_DISABLE_GAMEOBJECT = 0x80,
|
||||
SPELL_DISABLE_ARENAS = 0x100,
|
||||
SPELL_DISABLE_BATTLEGROUNDS = 0x200,
|
||||
MAX_SPELL_DISABLE_TYPE = ( SPELL_DISABLE_PLAYER | SPELL_DISABLE_CREATURE | SPELL_DISABLE_PET |
|
||||
SPELL_DISABLE_DEPRECATED_SPELL | SPELL_DISABLE_MAP | SPELL_DISABLE_AREA |
|
||||
SPELL_DISABLE_LOS | SPELL_DISABLE_GAMEOBJECT )
|
||||
SPELL_DISABLE_LOS | SPELL_DISABLE_GAMEOBJECT | SPELL_DISABLE_ARENAS |
|
||||
SPELL_DISABLE_BATTLEGROUNDS),
|
||||
};
|
||||
|
||||
enum MMapDisableTypes
|
||||
|
||||
Reference in New Issue
Block a user