diff --git a/Source/Framework/Constants/PlayerConst.cs b/Source/Framework/Constants/PlayerConst.cs index 201b8e9cd..826068872 100644 --- a/Source/Framework/Constants/PlayerConst.cs +++ b/Source/Framework/Constants/PlayerConst.cs @@ -39,7 +39,6 @@ namespace Framework.Constants public const int MaxActionButtonActionValue = 0x00FFFFFF + 1; public const int MaxDailyQuests = 25; - public const int QuestsCompletedBitsSize = 1750; public static TimeSpan InfinityCooldownDelay = TimeSpan.FromSeconds(Time.Month); // used for set "infinity cooldowns" for spells and check public const uint infinityCooldownDelayCheck = Time.Month / 2; diff --git a/Source/Game/Entities/Creature/Gossip.cs b/Source/Game/Entities/Creature/Gossip.cs index 1783161f1..82f31e9c4 100644 --- a/Source/Game/Entities/Creature/Gossip.cs +++ b/Source/Game/Entities/Creature/Gossip.cs @@ -456,7 +456,7 @@ namespace Game.Misc for (int i = 0; i < SharedConst.QuestEmoteCount; ++i) { - var emote = new QuestDescEmote(quest.DetailsEmote[i], quest.DetailsEmoteDelay[i]); + var emote = new QuestDescEmote((int)quest.DetailsEmote[i], quest.DetailsEmoteDelay[i]); packet.DescEmotes.Add(emote); } @@ -529,7 +529,7 @@ namespace Game.Misc offer.SuggestedPartyMembers = quest.SuggestedPlayers; for (uint i = 0; i < SharedConst.QuestEmoteCount && quest.OfferRewardEmote[i] != 0; ++i) - offer.Emotes.Add(new QuestDescEmote((uint)quest.OfferRewardEmote[i], quest.OfferRewardEmoteDelay[i])); + offer.Emotes.Add(new QuestDescEmote(quest.OfferRewardEmote[i], quest.OfferRewardEmoteDelay[i])); offer.QuestFlags[0] = (uint)quest.Flags; offer.QuestFlags[1] = (uint)quest.FlagsEx; diff --git a/Source/Game/Entities/Player/Player.Quest.cs b/Source/Game/Entities/Player/Player.Quest.cs index 20948d6cb..4d1bb8d6b 100644 --- a/Source/Game/Entities/Player/Player.Quest.cs +++ b/Source/Game/Entities/Player/Player.Quest.cs @@ -2218,8 +2218,8 @@ namespace Game.Entities if (questBit == 0) return; - uint fieldOffset = (questBit - 1) >> ActivePlayerData.QuestCompletedBitsPerBlock; - if (fieldOffset >= PlayerConst.QuestsCompletedBitsSize) + uint fieldOffset = (uint)((questBit - 1) / ActivePlayerData.QuestCompletedBitsPerBlock); + if (fieldOffset >= ActivePlayerData.QuestCompletedBitsSize) return; ulong flag = 1ul << (((int)questBit - 1) % ActivePlayerData.QuestCompletedBitsPerBlock); diff --git a/Source/Game/Networking/Packets/QuestPackets.cs b/Source/Game/Networking/Packets/QuestPackets.cs index f2c4188f2..d40ec2037 100644 --- a/Source/Game/Networking/Packets/QuestPackets.cs +++ b/Source/Game/Networking/Packets/QuestPackets.cs @@ -449,7 +449,7 @@ namespace Game.Networking.Packets foreach (QuestDescEmote emote in DescEmotes) { - _worldPacket.WriteUInt32(emote.Type); + _worldPacket.WriteInt32(emote.Type); _worldPacket.WriteUInt32(emote.Delay); } @@ -1125,13 +1125,13 @@ namespace Game.Networking.Packets public struct QuestDescEmote { - public QuestDescEmote(uint type = 0, uint delay = 0) + public QuestDescEmote(int type = 0, uint delay = 0) { Type = type; Delay = delay; } - public uint Type; + public int Type; public uint Delay; } @@ -1149,7 +1149,7 @@ namespace Game.Networking.Packets data.WriteInt32(Emotes.Count); foreach (QuestDescEmote emote in Emotes) { - data.WriteUInt32(emote.Type); + data.WriteInt32(emote.Type); data.WriteUInt32(emote.Delay); }