diff options
| -rw-r--r-- | src/server/game/Entities/Item/ItemTemplate.cpp | 9 | ||||
| -rw-r--r-- | src/server/game/Entities/Item/ItemTemplate.h | 1 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/server/game/Entities/Item/ItemTemplate.cpp b/src/server/game/Entities/Item/ItemTemplate.cpp index 4e090933434..f53aad39097 100644 --- a/src/server/game/Entities/Item/ItemTemplate.cpp +++ b/src/server/game/Entities/Item/ItemTemplate.cpp @@ -23,6 +23,15 @@ #include "Packets/QueryPackets.h" +bool ItemTemplate::HasSignature() const +{ + return GetMaxStackSize() == 1 && + Class != ITEM_CLASS_CONSUMABLE && + Class != ITEM_CLASS_QUEST && + (Flags & ITEM_FLAG_NO_CREATOR) == 0 && + ItemId != 6948; /*Hearthstone*/ +} + bool ItemTemplate::CanChangeEquipStateInCombat() const { switch (InventoryType) diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h index b11c6583571..37ea2229608 100644 --- a/src/server/game/Entities/Item/ItemTemplate.h +++ b/src/server/game/Entities/Item/ItemTemplate.h @@ -712,6 +712,7 @@ struct ItemTemplate bool IsWeaponVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_WEAPON_ENCHANTMENT; } bool IsArmorVellum() const { return Class == ITEM_CLASS_TRADE_GOODS && SubClass == ITEM_SUBCLASS_ARMOR_ENCHANTMENT; } bool IsConjuredConsumable() const { return Class == ITEM_CLASS_CONSUMABLE && (Flags & ITEM_FLAG_CONJURED); } + bool HasSignature() const; void InitializeQueryData(); WorldPacket BuildQueryData(LocaleConstant loc) const; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 2abe277191d..cbcd6e95e70 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1556,7 +1556,7 @@ void Spell::DoCreateItem(uint32 /*i*/, uint32 itemtype) } // set the "Crafted by ..." property of the item - if (pItem->GetTemplate()->Class != ITEM_CLASS_CONSUMABLE && pItem->GetTemplate()->Class != ITEM_CLASS_QUEST && newitemid != 6265 /*Soul Shard*/&& newitemid != 6948 /*Hearthstone*/) + if (pItem->GetTemplate()->HasSignature()) pItem->SetGuidValue(ITEM_FIELD_CREATOR, player->GetGUID()); // send info to the client |
