From 801847b718815c5f1dea0d49d651828c511106ec Mon Sep 17 00:00:00 2001 From: Viste Date: Wed, 27 Mar 2019 18:44:56 +0300 Subject: [PATCH] Feat(Core/Item): Proper way to add item signature (#1623) Co-authored-by: PolarCookie --- src/server/game/Entities/Item/ItemPrototype.h | 11 ++++++++++- src/server/game/Spells/SpellEffects.cpp | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Item/ItemPrototype.h b/src/server/game/Entities/Item/ItemPrototype.h index 15cdd48e2..8691a2aa1 100644 --- a/src/server/game/Entities/Item/ItemPrototype.h +++ b/src/server/game/Entities/Item/ItemPrototype.h @@ -154,7 +154,7 @@ enum ItemFieldFlags ITEM_FLAG_UNK9 = 0x00004000, // ? ITEM_FLAG_UNK10 = 0x00008000, // ? ITEM_FLAG_UNK11 = 0x00010000, // ? - ITEM_FLAG_UNK12 = 0x00020000, // ? + ITEM_FLAG_NO_CREATOR = 0x00020000, ITEM_FLAG_UNK13 = 0x00040000, // ? ITEM_FLAG_UNK14 = 0x00080000, // ? ITEM_FLAG_UNK15 = 0x00100000, // ? @@ -659,6 +659,15 @@ struct ItemTemplate WorldPacket queryData; // pussywizard // helpers + bool HasSignature() const + { + return GetMaxStackSize() == 1 && + Class != ITEM_CLASS_CONSUMABLE && + Class != ITEM_CLASS_QUEST && + (Flags & ITEM_FLAG_NO_CREATOR) == 0 && + ItemId != 6948; /*Hearthstone*/ + } + bool CanChangeEquipStateInCombat() const { switch (InventoryType) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 9e25358ae..a938fde58 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1771,7 +1771,7 @@ void Spell::DoCreateItem(uint8 /*effIndex*/, uint32 itemId) } // set the "Crafted by ..." property of the item - if (pItem->GetTemplate()->Class != ITEM_CLASS_CONSUMABLE && pItem->GetTemplate()->Class != ITEM_CLASS_QUEST && newitemid != 6265 && newitemid != 6948) + if (pItem->GetTemplate()->HasSignature()) pItem->SetUInt32Value(ITEM_FIELD_CREATOR, player->GetGUIDLow()); // send info to the client