mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 18:40:28 +00:00
feat(Core/Quest): Quest item reward (#1733)
- Instead of sending two same messages about item receive, send one.
This commit is contained in:
@@ -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]);
|
||||
}
|
||||
|
||||
@@ -1348,7 +1348,7 @@ class Player : public Unit, public GridObject<Player>
|
||||
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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user