Core/RDF: fix counting issue with the achievement Looking for More (and similar)
Port From (https://github.com/TrinityCore/TrinityCore/commit/01be9f44af0687f03c34f0221dc285ec22803969)
This commit is contained in:
@@ -22,11 +22,11 @@ using Game.DataStorage;
|
||||
using Game.Entities;
|
||||
using Game.Groups;
|
||||
using Game.Maps;
|
||||
using Game.Networking.Packets;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Game.Networking.Packets;
|
||||
|
||||
namespace Game.DungeonFinding
|
||||
{
|
||||
@@ -1052,6 +1052,15 @@ namespace Game.DungeonFinding
|
||||
break;
|
||||
}
|
||||
|
||||
// Store the number of players that were present in group when joining RFD, used for achievement purposes
|
||||
Player _player = Global.ObjAccessor.FindConnectedPlayer(pguid);
|
||||
if (_player != null)
|
||||
{
|
||||
Group group = _player.GetGroup();
|
||||
if (group != null)
|
||||
PlayersStore[pguid].SetNumberOfPartyMembersAtJoin((byte)group.GetMembersCount());
|
||||
}
|
||||
|
||||
SetState(pguid, LfgState.Dungeon);
|
||||
}
|
||||
|
||||
@@ -1374,7 +1383,15 @@ namespace Game.DungeonFinding
|
||||
|
||||
// Update achievements
|
||||
if (dungeon.difficulty == Difficulty.Heroic)
|
||||
player.UpdateCriteria(CriteriaType.CompletedLFGDungeonWithStrangers, 1);
|
||||
{
|
||||
byte lfdRandomPlayers = 0;
|
||||
byte numParty = PlayersStore[guid].GetNumberOfPartyMembersAtJoin();
|
||||
if (numParty != 0)
|
||||
lfdRandomPlayers = (byte)(5 - numParty);
|
||||
else
|
||||
lfdRandomPlayers = 4;
|
||||
player.UpdateCriteria(CriteriaType.CompletedLFGDungeonWithStrangers, lfdRandomPlayers);
|
||||
}
|
||||
|
||||
LfgReward reward = GetRandomDungeonReward(rDungeonId, player.GetLevel());
|
||||
if (reward == null)
|
||||
|
||||
@@ -116,6 +116,16 @@ namespace Game.DungeonFinding
|
||||
return m_SelectedDungeons;
|
||||
}
|
||||
|
||||
public void SetNumberOfPartyMembersAtJoin(byte count)
|
||||
{
|
||||
m_NumberOfPartyMembersAtJoin = count;
|
||||
}
|
||||
|
||||
public byte GetNumberOfPartyMembersAtJoin()
|
||||
{
|
||||
return m_NumberOfPartyMembersAtJoin;
|
||||
}
|
||||
|
||||
// General
|
||||
RideTicket m_Ticket;
|
||||
LfgState m_State;
|
||||
@@ -127,5 +137,8 @@ namespace Game.DungeonFinding
|
||||
// Queue
|
||||
LfgRoles m_Roles;
|
||||
List<uint> m_SelectedDungeons = new();
|
||||
|
||||
// Achievement-related
|
||||
byte m_NumberOfPartyMembersAtJoin;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user