Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
- index 1d5fcae..5b98c5f 100755
- --- a/src/server/game/Entities/Item/Item.h
- +++ b/src/server/game/Entities/Item/Item.h
- @@ -339,6 +339,9 @@ class Item : public Object
- void BuildUpdate(UpdateDataMapType&);
- + uint32 FakeOwner; // custom
- + uint32 FakeEntry; // custom
- +
- uint32 GetScriptId() const { return GetTemplate()->ScriptId; }
- private:
- std::string m_text;
- diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
- index 42d342c..ae38219 100755
- --- a/src/server/game/Entities/Player/Player.cpp
- +++ b/src/server/game/Entities/Player/Player.cpp
- @@ -12486,7 +12486,19 @@ void Player::SetVisibleItemSlot(uint8 slot, Item* pItem)
- {
- if (pItem)
- {
- - SetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + (slot * 2), pItem->GetEntry());
- + // custom
- + if(pItem->FakeEntry && pItem->FakeOwner == GetGUIDLow())
- + SetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + (slot * 2), pItem->FakeEntry);
- + else
- + {
- + if(pItem->FakeEntry || pItem->FakeOwner)
- + {
- + CharacterDatabase.PExecute("UPDATE item_instance SET FakeEntry = 0, FakeOwner = 0 WHERE guid = %u", pItem->GetGUIDLow());
- + pItem->FakeEntry = NULL;
- + pItem->FakeOwner = NULL;
- + }
- + SetUInt32Value(PLAYER_VISIBLE_ITEM_1_ENTRYID + (slot * 2), pItem->GetEntry());
- + }
- SetUInt16Value(PLAYER_VISIBLE_ITEM_1_ENCHANTMENT + (slot * 2), 0, pItem->GetEnchantmentId(PERM_ENCHANTMENT_SLOT));
- SetUInt16Value(PLAYER_VISIBLE_ITEM_1_ENCHANTMENT + (slot * 2), 1, pItem->GetEnchantmentId(TEMP_ENCHANTMENT_SLOT));
- }
- @@ -17629,6 +17641,8 @@ void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
- {
- uint32 bagGuid = fields[11].GetUInt32();
- uint8 slot = fields[12].GetUInt8();
- + item->FakeEntry = fields[15].GetUInt32(); // custom
- + item->FakeOwner = fields[16].GetUInt32(); // custom
- uint8 err = EQUIP_ERR_OK;
- // Item is not in bag
- diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
- index 89cc6ab..b362898 100644
- --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp
- +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
- @@ -82,7 +82,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
- PREPARE_STATEMENT(CHAR_INS_CHARACTER_SEASONALQUESTSTATUS, "INSERT INTO character_queststatus_seasonal (guid, quest, event) VALUES (?, ?, ?)", CONNECTION_ASYNC)
- PREPARE_STATEMENT(CHAR_SEL_CHARACTER_REPUTATION, "SELECT faction, standing, flags FROM character_reputation WHERE guid = ?", CONNECTION_ASYNC)
- PREPARE_STATEMENT(CHAR_SEL_CHARACTER_INVENTORY, "SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, bag, slot, "
- - "item, itemEntry FROM character_inventory ci JOIN item_instance ii ON ci.item = ii.guid WHERE ci.guid = ? ORDER BY bag, slot", CONNECTION_ASYNC)
- + "item, itemEntry, FakeEntry, FakeOwner FROM character_inventory ci JOIN item_instance ii ON ci.item = ii.guid WHERE ci.guid = ? ORDER BY bag, slot", CONNECTION_ASYNC)
- PREPARE_STATEMENT(CHAR_SEL_CHARACTER_ACTIONS, "SELECT a.button, a.action, a.type FROM character_action as a, characters as c WHERE a.guid = c.guid AND a.spec = c.activespec AND a.guid = ? ORDER BY button", CONNECTION_ASYNC)
- PREPARE_STATEMENT(CHAR_SEL_CHARACTER_MAILCOUNT, "SELECT COUNT(id) FROM mail WHERE receiver = ? AND (checked & 1) = 0 AND deliver_time <= ?", CONNECTION_ASYNC)
- PREPARE_STATEMENT(CHAR_SEL_CHARACTER_MAILDATE, "SELECT MIN(deliver_time) FROM mail WHERE receiver = ? AND (checked & 1) = 0", CONNECTION_ASYNC)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement