From 5fc0d58d05897c220cdcac909d2f4d8cdc4fe175 Mon Sep 17 00:00:00 2001 From: Poszer <41213210+poszer@users.noreply.github.com> Date: Thu, 25 Apr 2019 12:09:43 +0200 Subject: [PATCH] feat(Core/Quest): Quest item reward (#1733) - Instead of sending two same messages about item receive, send one. --- src/server/game/Entities/Player/Player.cpp | 8 ++++---- src/server/game/Entities/Player/Player.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 19c017521..9711b8673 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -14804,7 +14804,7 @@ void Player::SendItemDurations() } } -void Player::SendNewItem(Item* item, uint32 count, bool received, bool created, bool broadcast) +void Player::SendNewItem(Item* item, uint32 count, bool received, bool created, bool broadcast, bool sendChatMessage) { if (!item) // prevent crash return; @@ -14814,7 +14814,7 @@ void Player::SendNewItem(Item* item, uint32 count, bool received, bool created, data << uint64(GetGUID()); // player GUID data << uint32(received); // 0=looted, 1=from npc data << uint32(created); // 0=received, 1=created - data << uint32(1); // bool print error to chat + data << uint32(sendChatMessage); // bool print message to chat data << uint8(item->GetBagSlot()); // bagslot // item slot, but when added to stack: 0xFFFFFFFF data << uint32((item->GetCount() == count) ? item->GetSlot() : -1); @@ -15848,7 +15848,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, quest->RewardChoiceItemCount[reward]) == EQUIP_ERR_OK) { Item* item = StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId)); - SendNewItem(item, quest->RewardChoiceItemCount[reward], true, false); + SendNewItem(item, quest->RewardChoiceItemCount[reward], true, false, false, false); sScriptMgr->OnQuestRewardItem(this, item, quest->RewardChoiceItemCount[reward]); } @@ -15867,7 +15867,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, itemId, quest->RewardItemIdCount[i]) == EQUIP_ERR_OK) { Item* item = StoreNewItem(dest, itemId, true, Item::GenerateItemRandomPropertyId(itemId)); - SendNewItem(item, quest->RewardItemIdCount[i], true, false); + SendNewItem(item, quest->RewardItemIdCount[i], true, false, false, false); sScriptMgr->OnQuestRewardItem(this, item, quest->RewardItemIdCount[i]); } diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 2d93c1f83..05a11006e 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1348,7 +1348,7 @@ class Player : public Unit, public GridObject Item* mainItem = GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND); return mainItem && mainItem->GetTemplate()->InventoryType == INVTYPE_2HWEAPON && !CanTitanGrip(); } - void SendNewItem(Item* item, uint32 count, bool received, bool created, bool broadcast = false); + void SendNewItem(Item* item, uint32 count, bool received, bool created, bool broadcast = false, bool sendChatMessage = true); bool BuyItemFromVendorSlot(uint64 vendorguid, uint32 vendorslot, uint32 item, uint8 count, uint8 bag, uint8 slot); bool _StoreOrEquipNewItem(uint32 vendorslot, uint32 item, uint8 count, uint8 bag, uint8 slot, int32 price, ItemTemplate const* pProto, Creature* pVendor, VendorItem const* crItem, bool bStore);