From 06f203082f0a30af82602640e393b415f74e445e Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 2 Jul 2017 12:00:48 -0400 Subject: [PATCH] Fixed selecting quest package rewards --- Game/Entities/Item/ItemTemplate.cs | 5 ++++- Game/Entities/Player/Player.Quest.cs | 2 +- Game/Globals/ObjectManager.cs | 5 +++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Game/Entities/Item/ItemTemplate.cs b/Game/Entities/Item/ItemTemplate.cs index 2ed5104c5..c60295e1b 100644 --- a/Game/Entities/Item/ItemTemplate.cs +++ b/Game/Entities/Item/ItemTemplate.cs @@ -195,8 +195,11 @@ namespace Game.Entities maxDamage = (float)Math.Floor(avgDamage * (GetStatScalingFactor() * 0.5f + 1.0f) + 0.5f); } - public bool IsUsableByLootSpecialization(Player player) + public bool IsUsableByLootSpecialization(Player player, bool alwaysAllowBoundToAccount) { + if (GetFlags().HasAnyFlag(ItemFlags.IsBoundToAccount) && alwaysAllowBoundToAccount) + return true; + uint spec = player.GetUInt32Value(PlayerFields.LootSpecId); if (spec == 0) spec = player.GetUInt32Value(PlayerFields.CurrentSpecId); diff --git a/Game/Entities/Player/Player.Quest.cs b/Game/Entities/Player/Player.Quest.cs index de8a9a410..0b03ea288 100644 --- a/Game/Entities/Player/Player.Quest.cs +++ b/Game/Entities/Player/Player.Quest.cs @@ -806,7 +806,7 @@ namespace Game.Entities switch (questPackageItem.FilterType) { case QuestPackageFilter.LootSpecialization: - return rewardProto.IsUsableByLootSpecialization(this); + return rewardProto.IsUsableByLootSpecialization(this, true); case QuestPackageFilter.Class: return rewardProto.ItemSpecClassMask == 0 || (rewardProto.ItemSpecClassMask & getClassMask()) != 0; case QuestPackageFilter.Everyone: diff --git a/Game/Globals/ObjectManager.cs b/Game/Globals/ObjectManager.cs index c028cb99b..ea0afb38e 100644 --- a/Game/Globals/ObjectManager.cs +++ b/Game/Globals/ObjectManager.cs @@ -4340,6 +4340,11 @@ namespace Game } } + // Items that have no specializations set can be used by everyone + foreach (var specs in itemTemplate.Specializations) + if (specs.Count == 0) + specs.SetAll(true); + ++sparseCount; ItemTemplateStorage.Add(sparse.Id, itemTemplate); }