mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 17:54:48 +01:00
Core/Items: Fixed saving and equipping sets with empty slots
This commit is contained in:
@@ -1625,16 +1625,20 @@ void WorldSession::HandleEquipmentSetSave(WorldPackets::EquipmentSet::SaveEquipm
|
||||
saveEquipmentSet.Set.Appearances[i] = 0;
|
||||
|
||||
ObjectGuid const& itemGuid = saveEquipmentSet.Set.Pieces[i];
|
||||
if (!itemGuid.IsEmpty())
|
||||
{
|
||||
Item* item = _player->GetItemByPos(INVENTORY_SLOT_BAG_0, i);
|
||||
|
||||
Item* item = _player->GetItemByPos(INVENTORY_SLOT_BAG_0, i);
|
||||
/// cheating check 1 (item equipped but sent empty guid)
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
/// cheating check 1 (item equipped but sent empty guid)
|
||||
if (!item && !itemGuid.IsEmpty())
|
||||
return;
|
||||
|
||||
/// cheating check 2 (sent guid does not match equipped item)
|
||||
if (item && item->GetGUID() != itemGuid)
|
||||
return;
|
||||
/// cheating check 2 (sent guid does not match equipped item)
|
||||
if (item->GetGUID() != itemGuid)
|
||||
return;
|
||||
}
|
||||
else
|
||||
saveEquipmentSet.Set.IgnoreMask |= 1 << i;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1649,6 +1653,8 @@ void WorldSession::HandleEquipmentSetSave(WorldPackets::EquipmentSet::SaveEquipm
|
||||
if (!hasAppearance)
|
||||
return;
|
||||
}
|
||||
else
|
||||
saveEquipmentSet.Set.IgnoreMask |= 1 << i;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1703,7 +1709,7 @@ void WorldSession::HandleDeleteEquipmentSet(WorldPackets::EquipmentSet::DeleteEq
|
||||
void WorldSession::HandleUseEquipmentSet(WorldPackets::EquipmentSet::UseEquipmentSet& useEquipmentSet)
|
||||
{
|
||||
ObjectGuid ignoredItemGuid;
|
||||
ignoredItemGuid.SetRawValue(0, 1);
|
||||
ignoredItemGuid.SetRawValue(0x0C00040000000000, 0xFFFFFFFFFFFFFFFF);
|
||||
|
||||
for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user