Core/Battleground: allow Random battleground and arena queues same time.
Port From (https://github.com/TrinityCore/TrinityCore/commit/a9e7464e0d1f201b4a84d7fd955018e3a2c2cc59)
This commit is contained in:
@@ -536,10 +536,10 @@ namespace Game.Entities
|
||||
return Global.BattlegroundMgr.GetBattleground(GetBattlegroundId(), m_bgData.bgTypeID);
|
||||
}
|
||||
|
||||
public bool InBattlegroundQueue()
|
||||
public bool InBattlegroundQueue(bool ignoreArena = false)
|
||||
{
|
||||
for (byte i = 0; i < SharedConst.MaxPlayerBGQueues; ++i)
|
||||
if (m_bgBattlegroundQueueID[i].bgQueueTypeId != default)
|
||||
if (m_bgBattlegroundQueueID[i].bgQueueTypeId != default && (!ignoreArena || m_bgBattlegroundQueueID[i].bgQueueTypeId.BattlemasterListId != (ushort)BattlegroundTypeId.AA))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1768,7 +1768,7 @@ namespace Game.Groups
|
||||
if (isInRandomBgQueue)
|
||||
return GroupJoinBattlegroundResult.InRandomBg;
|
||||
// don't let join to bg queue random if someone from the group is already in bg queue
|
||||
if ((bgOrTemplate.GetTypeID() == BattlegroundTypeId.RB || bgOrTemplate.GetTypeID() == BattlegroundTypeId.RandomEpic) && member.InBattlegroundQueue() && !isInRandomBgQueue)
|
||||
if ((bgOrTemplate.GetTypeID() == BattlegroundTypeId.RB || bgOrTemplate.GetTypeID() == BattlegroundTypeId.RandomEpic) && member.InBattlegroundQueue(true) && !isInRandomBgQueue)
|
||||
return GroupJoinBattlegroundResult.InNonRandomBg;
|
||||
// check for deserter debuff in case not arena queue
|
||||
if (bgOrTemplate.GetTypeID() != BattlegroundTypeId.AA && !member.CanJoinToBattleground(bgOrTemplate))
|
||||
|
||||
@@ -128,7 +128,7 @@ namespace Game
|
||||
return;
|
||||
}
|
||||
|
||||
if (_player.InBattlegroundQueue() && !isInRandomBgQueue && (bgTypeId == BattlegroundTypeId.RB || bgTypeId == BattlegroundTypeId.RandomEpic))
|
||||
if (_player.InBattlegroundQueue(true) && !isInRandomBgQueue && (bgTypeId == BattlegroundTypeId.RB || bgTypeId == BattlegroundTypeId.RandomEpic))
|
||||
{
|
||||
// player is already in queue, can't start random queue
|
||||
Global.BattlegroundMgr.BuildBattlegroundStatusFailed(out battlefieldStatusFailed, bgQueueTypeId, GetPlayer(), 0, GroupJoinBattlegroundResult.InNonRandomBg);
|
||||
|
||||
Reference in New Issue
Block a user