Core/Groups: Fixes groups staying linked with players.
This commit is contained in:
@@ -86,7 +86,7 @@ namespace Game
|
||||
|
||||
GroupJoinBattlegroundResult err = GroupJoinBattlegroundResult.None;
|
||||
|
||||
Group grp = _player.GetGroup();
|
||||
Group group = _player.GetGroup();
|
||||
|
||||
Team getQueueTeam()
|
||||
{
|
||||
@@ -105,7 +105,7 @@ namespace Game
|
||||
|
||||
BattlefieldStatusFailed battlefieldStatusFailed;
|
||||
// check queue conditions
|
||||
if (grp == null)
|
||||
if (group == null)
|
||||
{
|
||||
if (GetPlayer().IsUsingLfg())
|
||||
{
|
||||
@@ -177,12 +177,12 @@ namespace Game
|
||||
}
|
||||
else
|
||||
{
|
||||
if (grp.GetLeaderGUID() != GetPlayer().GetGUID())
|
||||
if (group.GetLeaderGUID() != GetPlayer().GetGUID())
|
||||
return;
|
||||
|
||||
ObjectGuid errorGuid;
|
||||
err = grp.CanJoinBattlegroundQueue(bgTemplate, bgQueueTypeId, 0, bgTemplate.GetMaxPlayersPerTeam(), false, 0, out errorGuid);
|
||||
isPremade = (grp.GetMembersCount() >= bgTemplate.GetMinPlayersPerTeam());
|
||||
err = group.CanJoinBattlegroundQueue(bgTemplate, bgQueueTypeId, 0, bgTemplate.GetMaxPlayersPerTeam(), false, 0, out errorGuid);
|
||||
isPremade = (group.GetMembersCount() >= bgTemplate.GetMinPlayersPerTeam());
|
||||
|
||||
BattlegroundQueue bgQueue = Global.BattlegroundMgr.GetBattlegroundQueue(bgQueueTypeId);
|
||||
GroupQueueInfo ginfo = null;
|
||||
@@ -191,16 +191,13 @@ namespace Game
|
||||
if (err == 0)
|
||||
{
|
||||
Log.outDebug(LogFilter.Battleground, "Battleground: the following players are joining as group:");
|
||||
ginfo = bgQueue.AddGroup(GetPlayer(), grp, getQueueTeam(), bracketEntry, isPremade, 0, 0);
|
||||
ginfo = bgQueue.AddGroup(GetPlayer(), group, getQueueTeam(), bracketEntry, isPremade, 0, 0);
|
||||
avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry.GetBracketId());
|
||||
}
|
||||
|
||||
for (GroupReference refe = grp.GetFirstMember(); refe != null; refe = refe.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player member = refe.GetSource();
|
||||
if (member == null)
|
||||
continue; // this should never happen
|
||||
|
||||
Player member = groupRef.GetSource();
|
||||
if (err != 0)
|
||||
{
|
||||
BattlefieldStatusFailed battlefieldStatus;
|
||||
@@ -510,11 +507,11 @@ namespace Game
|
||||
if (bracketEntry == null)
|
||||
return;
|
||||
|
||||
Group grp = GetPlayer().GetGroup();
|
||||
Group group = GetPlayer().GetGroup();
|
||||
// no group found, error
|
||||
if (grp == null)
|
||||
if (group == null)
|
||||
return;
|
||||
if (grp.GetLeaderGUID() != GetPlayer().GetGUID())
|
||||
if (group.GetLeaderGUID() != GetPlayer().GetGUID())
|
||||
return;
|
||||
|
||||
uint ateamId = GetPlayer().GetArenaTeamId(packet.TeamSizeIndex);
|
||||
@@ -525,7 +522,7 @@ namespace Game
|
||||
|
||||
// get the team rating for queuing
|
||||
uint arenaRating = at.GetRating();
|
||||
uint matchmakerRating = at.GetAverageMMR(grp);
|
||||
uint matchmakerRating = at.GetAverageMMR(group);
|
||||
// the arenateam id must match for everyone in the group
|
||||
|
||||
if (arenaRating <= 0)
|
||||
@@ -537,21 +534,18 @@ namespace Game
|
||||
GroupQueueInfo ginfo = null;
|
||||
|
||||
ObjectGuid errorGuid;
|
||||
var err = grp.CanJoinBattlegroundQueue(bgTemplate, bgQueueTypeId, (uint)arenatype, (uint)arenatype, true, packet.TeamSizeIndex, out errorGuid);
|
||||
var err = group.CanJoinBattlegroundQueue(bgTemplate, bgQueueTypeId, (uint)arenatype, (uint)arenatype, true, packet.TeamSizeIndex, out errorGuid);
|
||||
if (err == 0)
|
||||
{
|
||||
Log.outDebug(LogFilter.Battleground, "Battleground: arena team id {0}, leader {1} queued with matchmaker rating {2} for type {3}", GetPlayer().GetArenaTeamId(packet.TeamSizeIndex), GetPlayer().GetName(), matchmakerRating, arenatype);
|
||||
|
||||
ginfo = bgQueue.AddGroup(GetPlayer(), grp, _player.GetTeam(), bracketEntry, false, arenaRating, matchmakerRating, ateamId);
|
||||
ginfo = bgQueue.AddGroup(GetPlayer(), group, _player.GetTeam(), bracketEntry, false, arenaRating, matchmakerRating, ateamId);
|
||||
avgTime = bgQueue.GetAverageQueueWaitTime(ginfo, bracketEntry.GetBracketId());
|
||||
}
|
||||
|
||||
for (GroupReference refe = grp.GetFirstMember(); refe != null; refe = refe.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player member = refe.GetSource();
|
||||
if (member == null)
|
||||
continue;
|
||||
|
||||
Player member = groupRef.GetSource();
|
||||
if (err != 0)
|
||||
{
|
||||
BattlefieldStatusFailed battlefieldStatus;
|
||||
|
||||
Reference in New Issue
Block a user