Core/LFG: Fixes StackOverflow Exception.
This commit is contained in:
@@ -809,8 +809,7 @@ namespace Game.DungeonFinding
|
|||||||
List<ObjectGuid> keys = new List<ObjectGuid>(groles.Keys);
|
List<ObjectGuid> keys = new List<ObjectGuid>(groles.Keys);
|
||||||
for (int i = 0; i < keys.Count; i++)
|
for (int i = 0; i < keys.Count; i++)
|
||||||
{
|
{
|
||||||
var it = groles[keys[i]];
|
LfgRoles role = groles[keys[i]] & ~LfgRoles.Leader;
|
||||||
LfgRoles role = it & ~LfgRoles.Leader;
|
|
||||||
if (role == LfgRoles.None)
|
if (role == LfgRoles.None)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -818,10 +817,11 @@ namespace Game.DungeonFinding
|
|||||||
{
|
{
|
||||||
if (role != LfgRoles.Damage)
|
if (role != LfgRoles.Damage)
|
||||||
{
|
{
|
||||||
it -= (byte)LfgRoles.Damage;
|
groles[keys[i]] -= LfgRoles.Damage;
|
||||||
if (CheckGroupRoles(groles))
|
if (CheckGroupRoles(groles))
|
||||||
return true;
|
return true;
|
||||||
it += (byte)LfgRoles.Damage;
|
|
||||||
|
groles[keys[i]] += (byte)LfgRoles.Damage;
|
||||||
}
|
}
|
||||||
else if (damage == SharedConst.LFGDPSNeeded)
|
else if (damage == SharedConst.LFGDPSNeeded)
|
||||||
return false;
|
return false;
|
||||||
@@ -833,10 +833,11 @@ namespace Game.DungeonFinding
|
|||||||
{
|
{
|
||||||
if (role != LfgRoles.Healer)
|
if (role != LfgRoles.Healer)
|
||||||
{
|
{
|
||||||
it -= (byte)LfgRoles.Healer;
|
groles[keys[i]] -= LfgRoles.Healer;
|
||||||
if (CheckGroupRoles(groles))
|
if (CheckGroupRoles(groles))
|
||||||
return true;
|
return true;
|
||||||
it += (byte)LfgRoles.Healer;
|
|
||||||
|
groles[keys[i]] += (byte)LfgRoles.Healer;
|
||||||
}
|
}
|
||||||
else if (healer == SharedConst.LFGHealersNeeded)
|
else if (healer == SharedConst.LFGHealersNeeded)
|
||||||
return false;
|
return false;
|
||||||
@@ -848,10 +849,11 @@ namespace Game.DungeonFinding
|
|||||||
{
|
{
|
||||||
if (role != LfgRoles.Tank)
|
if (role != LfgRoles.Tank)
|
||||||
{
|
{
|
||||||
it -= (byte)LfgRoles.Tank;
|
groles[keys[i]] -= LfgRoles.Tank;
|
||||||
if (CheckGroupRoles(groles))
|
if (CheckGroupRoles(groles))
|
||||||
return true;
|
return true;
|
||||||
it += (byte)LfgRoles.Tank;
|
|
||||||
|
groles[keys[i]] += (byte)LfgRoles.Tank;
|
||||||
}
|
}
|
||||||
else if (tank == SharedConst.LFGTanksNeeded)
|
else if (tank == SharedConst.LFGTanksNeeded)
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user