mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Achievements: Fixed achievement SMSG_ACHIEVEMENT_EARNED not being sent to self
This commit is contained in:
@@ -671,14 +671,14 @@ void PlayerAchievementMgr::SendAchievementEarned(AchievementEntry const* achieve
|
||||
receiver->SendDirectMessage(achievementEarned.Write());
|
||||
};
|
||||
|
||||
achievementEarnedBuilder(_owner);
|
||||
|
||||
if (!(achievement->Flags & ACHIEVEMENT_FLAG_TRACKING_FLAG))
|
||||
{
|
||||
float dist = sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY);
|
||||
Trinity::MessageDistDeliverer notifier(_owner, achievementEarnedBuilder, dist);
|
||||
Cell::VisitWorldObjects(_owner, notifier, dist);
|
||||
}
|
||||
else
|
||||
achievementEarnedBuilder(_owner);
|
||||
}
|
||||
|
||||
void PlayerAchievementMgr::SendPacket(WorldPacket const* data) const
|
||||
@@ -702,7 +702,7 @@ void GuildAchievementMgr::Reset()
|
||||
ObjectGuid guid = _owner->GetGUID();
|
||||
for (std::pair<uint32 const, CompletedAchievementData> const& completedAchievement : _completedAchievements)
|
||||
{
|
||||
auto packetBuilder = [&](Player const* receiver)
|
||||
_owner->BroadcastWorker([&](Player const* receiver)
|
||||
{
|
||||
WorldPackets::Achievement::GuildAchievementDeleted guildAchievementDeleted;
|
||||
guildAchievementDeleted.AchievementID = completedAchievement.first;
|
||||
@@ -710,8 +710,7 @@ void GuildAchievementMgr::Reset()
|
||||
guildAchievementDeleted.TimeDeleted = *GameTime::GetUtcWowTime();
|
||||
guildAchievementDeleted.TimeDeleted += receiver->GetSession()->GetTimezoneOffset();
|
||||
receiver->SendDirectMessage(guildAchievementDeleted.Write());
|
||||
};
|
||||
_owner->BroadcastWorker(packetBuilder);
|
||||
});
|
||||
}
|
||||
|
||||
_achievementPoints = 0;
|
||||
@@ -1020,7 +1019,7 @@ void GuildAchievementMgr::SendAchievementEarned(AchievementEntry const* achievem
|
||||
sWorld->SendGlobalMessage(serverFirstAchievement.Write());
|
||||
}
|
||||
|
||||
auto guildAchievementEarnedBuilder = [&](Player const* receiver)
|
||||
_owner->BroadcastWorker([&](Player const* receiver)
|
||||
{
|
||||
WorldPackets::Achievement::GuildAchievementEarned guildAchievementEarned;
|
||||
guildAchievementEarned.AchievementID = achievement->ID;
|
||||
@@ -1028,8 +1027,7 @@ void GuildAchievementMgr::SendAchievementEarned(AchievementEntry const* achievem
|
||||
guildAchievementEarned.TimeEarned = *GameTime::GetUtcWowTime();
|
||||
guildAchievementEarned.TimeEarned += receiver->GetSession()->GetTimezoneOffset();
|
||||
receiver->SendDirectMessage(guildAchievementEarned.Write());
|
||||
};
|
||||
_owner->BroadcastWorker(guildAchievementEarnedBuilder);
|
||||
});
|
||||
}
|
||||
|
||||
void GuildAchievementMgr::SendPacket(WorldPacket const* data) const
|
||||
|
||||
@@ -51,6 +51,9 @@ void SendVignetteUpdate(VignetteData const& vignette, WorldObject const* owner)
|
||||
receiver->SendDirectMessage(vignetteUpdate.GetRawPacket());
|
||||
};
|
||||
|
||||
if (Player const* playerOwner = owner->ToPlayer())
|
||||
sender(playerOwner);
|
||||
|
||||
Trinity::MessageDistDeliverer notifier(owner, sender, owner->GetVisibilityRange());
|
||||
Cell::VisitWorldObjects(owner, notifier, owner->GetVisibilityRange());
|
||||
}
|
||||
|
||||
@@ -3761,7 +3761,7 @@ void Guild::AddGuildNews(uint8 type, ObjectGuid guid, uint32 flags, uint32 value
|
||||
NewsLogEntry& news = m_newsLog.AddEvent(trans, m_id, m_newsLog.GetNextGUID(), GuildNews(type), guid, flags, value);
|
||||
CharacterDatabase.CommitTransaction(trans);
|
||||
|
||||
auto packetBuilder = [&](Player const* receiver)
|
||||
BroadcastWorker([&](Player const* receiver)
|
||||
{
|
||||
WorldPackets::Guild::GuildNews newsPacket;
|
||||
newsPacket.NewsEvents.reserve(1);
|
||||
@@ -3769,8 +3769,7 @@ void Guild::AddGuildNews(uint8 type, ObjectGuid guid, uint32 flags, uint32 value
|
||||
newsPacket.NewsEvents.back().CompletedDate += receiver->GetSession()->GetTimezoneOffset();
|
||||
|
||||
receiver->SendDirectMessage(newsPacket.Write());
|
||||
};
|
||||
BroadcastWorker(packetBuilder);
|
||||
});
|
||||
}
|
||||
|
||||
bool Guild::HasAchieved(uint32 achievementId) const
|
||||
|
||||
Reference in New Issue
Block a user