Core/Battleground: Check battlegrounds disabled in db2 files
Port From (https://github.com/TrinityCore/TrinityCore/commit/5d57415951c4b6f7b86c97922c94b571a178f35a)
This commit is contained in:
@@ -986,6 +986,17 @@ namespace Framework.Constants
|
|||||||
Max
|
Max
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum BattlemasterListFlags : sbyte
|
||||||
|
{
|
||||||
|
Disabled = 0x01,
|
||||||
|
SkipRoleCheck = 0x02,
|
||||||
|
Unk4 = 0x04,
|
||||||
|
CanInitWarGame = 0x08,
|
||||||
|
CanSpecificQueue = 0x10,
|
||||||
|
Brawl = 0x20,
|
||||||
|
Factional = 0x40
|
||||||
|
}
|
||||||
|
|
||||||
public enum ChrSpecializationFlag
|
public enum ChrSpecializationFlag
|
||||||
{
|
{
|
||||||
Caster = 0x01,
|
Caster = 0x01,
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
using Framework.Constants;
|
||||||
|
|
||||||
namespace Game.DataStorage
|
namespace Game.DataStorage
|
||||||
{
|
{
|
||||||
@@ -97,7 +98,7 @@ namespace Game.DataStorage
|
|||||||
public sbyte GroupsAllowed;
|
public sbyte GroupsAllowed;
|
||||||
public sbyte MaxGroupSize;
|
public sbyte MaxGroupSize;
|
||||||
public ushort HolidayWorldState;
|
public ushort HolidayWorldState;
|
||||||
public sbyte Flags;
|
public BattlemasterListFlags Flags;
|
||||||
public int IconFileDataID;
|
public int IconFileDataID;
|
||||||
public short RequiredPlayerConditionID;
|
public short RequiredPlayerConditionID;
|
||||||
public short[] MapId = new short[16];
|
public short[] MapId = new short[16];
|
||||||
|
|||||||
@@ -64,19 +64,19 @@ namespace Game
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint bgTypeId_ = (uint)(battlemasterJoin.QueueIDs[0] & 0xFFFF);
|
BattlegroundTypeId bgTypeId = (BattlegroundTypeId)(battlemasterJoin.QueueIDs[0] & 0xFFFF);
|
||||||
if (!CliDB.BattlemasterListStorage.ContainsKey(bgTypeId_))
|
BattlemasterListRecord battlemasterListEntry = CliDB.BattlemasterListStorage.LookupByKey(bgTypeId);
|
||||||
|
if (battlemasterListEntry == null)
|
||||||
{
|
{
|
||||||
Log.outError(LogFilter.Network, "Battleground: invalid bgtype ({0}) received. possible cheater? player guid {1}", bgTypeId_, GetPlayer().GetGUID().ToString());
|
Log.outError(LogFilter.Network, "Battleground: invalid bgtype ({0}) received. possible cheater? player guid {1}", bgTypeId, GetPlayer().GetGUID().ToString());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Global.DisableMgr.IsDisabledFor(DisableType.Battleground, bgTypeId_, null))
|
if (Global.DisableMgr.IsDisabledFor(DisableType.Battleground, (uint)bgTypeId, null) || battlemasterListEntry.Flags.HasAnyFlag(BattlemasterListFlags.Disabled))
|
||||||
{
|
{
|
||||||
GetPlayer().SendSysMessage(CypherStrings.BgDisabled);
|
GetPlayer().SendSysMessage(CypherStrings.BgDisabled);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
BattlegroundTypeId bgTypeId = (BattlegroundTypeId)bgTypeId_;
|
|
||||||
|
|
||||||
// can do this, since it's Battleground, not arena
|
// can do this, since it's Battleground, not arena
|
||||||
BattlegroundQueueTypeId bgQueueTypeId = Global.BattlegroundMgr.BGQueueTypeId(bgTypeId, 0);
|
BattlegroundQueueTypeId bgQueueTypeId = Global.BattlegroundMgr.BGQueueTypeId(bgTypeId, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user