Core/Items: Fixed durability problems for wrapped item

Port From (https://github.com/TrinityCore/TrinityCore/commit/ca4720662defef6f664489b222a00ae664855968)
This commit is contained in:
hondacrx
2020-05-06 13:49:35 -04:00
parent 83f57da2b6
commit 2ed40d012a
2 changed files with 5 additions and 1 deletions
+4 -1
View File
@@ -439,7 +439,9 @@ namespace Game.Entities
SetDurability(durability);
// update max durability (and durability) if need
SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.MaxDurability), proto.MaxDurability);
if (durability > proto.MaxDurability)
// do not overwrite durability for wrapped items
if (durability > proto.MaxDurability && !HasItemFlag(ItemFieldFlags.Wrapped))
{
SetDurability(proto.MaxDurability);
need_save = true;
@@ -2633,6 +2635,7 @@ namespace Game.Entities
public bool IsCurrencyToken() { return GetTemplate().IsCurrencyToken(); }
public bool IsBroken() { return m_itemData.MaxDurability > 0 && m_itemData.Durability == 0; }
public void SetDurability(uint durability) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.Durability), durability); }
public void SetMaxDurability(uint maxDurability) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.MaxDurability), maxDurability); }
public void SetInTrade(bool b = true) { mb_in_trade = b; }
public bool IsInTrade() { return mb_in_trade; }
+1
View File
@@ -222,6 +222,7 @@ namespace Game
item.SetGiftCreator(ObjectGuid.Empty);
item.SetEntry(entry);
item.SetItemFlags((ItemFieldFlags)flags);
item.SetMaxDurability(item.GetTemplate().MaxDurability);
item.SetState(ItemUpdateState.Changed, GetPlayer());
GetPlayer().SaveInventoryAndGoldToDB(trans);