Core/Achievements: Fixed achievement SMSG_ACHIEVEMENT_EARNED not being sent to self
Port From (https://github.com/TrinityCore/TrinityCore/commit/0384d9066336b8ec71434c49244d1ddb0657c11e)
This commit is contained in:
@@ -671,6 +671,8 @@ namespace Game.Achievements
|
||||
achievementEarned.Time += receiver.GetSession().GetTimezoneOffset();
|
||||
receiver.SendPacket(achievementEarned);
|
||||
};
|
||||
|
||||
achievementEarnedBuilder(_owner);
|
||||
|
||||
if (!achievement.Flags.HasAnyFlag(AchievementFlags.TrackingFlag))
|
||||
{
|
||||
@@ -678,8 +680,6 @@ namespace Game.Achievements
|
||||
MessageDistDeliverer notifier = new(_owner, achievementEarnedBuilder, dist);
|
||||
Cell.VisitWorldObjects(_owner, notifier, dist);
|
||||
}
|
||||
else
|
||||
achievementEarnedBuilder(_owner);
|
||||
}
|
||||
|
||||
public override void SendPacket(ServerPacket data)
|
||||
@@ -1050,7 +1050,7 @@ namespace Game.Achievements
|
||||
Global.WorldMgr.SendGlobalMessage(serverFirstAchievement);
|
||||
}
|
||||
|
||||
var guildAchievementEarnedBuilder = (Player receiver) =>
|
||||
_owner.BroadcastWorker(receiver =>
|
||||
{
|
||||
GuildAchievementEarned guildAchievementEarned = new();
|
||||
guildAchievementEarned.AchievementID = achievement.Id;
|
||||
@@ -1058,9 +1058,7 @@ namespace Game.Achievements
|
||||
guildAchievementEarned.TimeEarned = GameTime.GetUtcWowTime();
|
||||
guildAchievementEarned.TimeEarned += receiver.GetSession().GetTimezoneOffset();
|
||||
receiver.SendPacket(guildAchievementEarned);
|
||||
};
|
||||
|
||||
_owner.BroadcastWorker(guildAchievementEarnedBuilder);
|
||||
});
|
||||
}
|
||||
|
||||
public override void SendPacket(ServerPacket data)
|
||||
|
||||
@@ -5,7 +5,6 @@ using Framework.Constants;
|
||||
using Game.DataStorage;
|
||||
using Game.Maps;
|
||||
using Game.Networking.Packets;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Game.Entities
|
||||
{
|
||||
@@ -37,6 +36,10 @@ namespace Game.Entities
|
||||
receiver.SendPacket(vignetteUpdate);
|
||||
};
|
||||
|
||||
Player playerOwner = owner.ToPlayer();
|
||||
if (playerOwner != null)
|
||||
sender(playerOwner);
|
||||
|
||||
MessageDistDeliverer notifier = new(owner, sender, owner.GetVisibilityRange());
|
||||
Cell.VisitWorldObjects(owner, notifier, owner.GetVisibilityRange());
|
||||
}
|
||||
|
||||
@@ -2411,16 +2411,14 @@ namespace Game.Guilds
|
||||
NewsLogEntry news = m_newsLog.AddEvent(trans, new NewsLogEntry(m_id, m_newsLog.GetNextGUID(), type, guid, flags, value));
|
||||
DB.Characters.CommitTransaction(trans);
|
||||
|
||||
var packetBuilder = (Player receiver) =>
|
||||
BroadcastWorker(receiver =>
|
||||
{
|
||||
GuildNewsPkt newsPacket = new();
|
||||
news.WritePacket(newsPacket);
|
||||
newsPacket.NewsEvents.Last().CompletedDate += receiver.GetSession().GetTimezoneOffset();
|
||||
|
||||
receiver.SendPacket(newsPacket);
|
||||
};
|
||||
|
||||
BroadcastWorker(packetBuilder);
|
||||
});
|
||||
}
|
||||
|
||||
bool HasAchieved(uint achievementId)
|
||||
|
||||
Reference in New Issue
Block a user