Core/Battleground: allow Random battleground and arena queues same time.

Port From (https://github.com/TrinityCore/TrinityCore/commit/a9e7464e0d1f201b4a84d7fd955018e3a2c2cc59)
This commit is contained in:
hondacrx
2021-09-26 11:44:23 -04:00
parent ba423331de
commit aac3003bc2
3 changed files with 4 additions and 4 deletions
+2 -2
View File
@@ -536,10 +536,10 @@ namespace Game.Entities
return Global.BattlegroundMgr.GetBattleground(GetBattlegroundId(), m_bgData.bgTypeID); 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) 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 true;
return false; return false;
} }
+1 -1
View File
@@ -1768,7 +1768,7 @@ namespace Game.Groups
if (isInRandomBgQueue) if (isInRandomBgQueue)
return GroupJoinBattlegroundResult.InRandomBg; return GroupJoinBattlegroundResult.InRandomBg;
// don't let join to bg queue random if someone from the group is already in bg queue // 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; return GroupJoinBattlegroundResult.InNonRandomBg;
// check for deserter debuff in case not arena queue // check for deserter debuff in case not arena queue
if (bgOrTemplate.GetTypeID() != BattlegroundTypeId.AA && !member.CanJoinToBattleground(bgOrTemplate)) if (bgOrTemplate.GetTypeID() != BattlegroundTypeId.AA && !member.CanJoinToBattleground(bgOrTemplate))
+1 -1
View File
@@ -128,7 +128,7 @@ namespace Game
return; 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 // player is already in queue, can't start random queue
Global.BattlegroundMgr.BuildBattlegroundStatusFailed(out battlefieldStatusFailed, bgQueueTypeId, GetPlayer(), 0, GroupJoinBattlegroundResult.InNonRandomBg); Global.BattlegroundMgr.BuildBattlegroundStatusFailed(out battlefieldStatusFailed, bgQueueTypeId, GetPlayer(), 0, GroupJoinBattlegroundResult.InNonRandomBg);