diff options
author | Roc13x <roc13x@gmail.com> | 2024-06-27 14:18:49 +0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-06-27 17:43:20 +0200 |
commit | 6c15d7f7502d50520b502067c6401a4bf11075a2 (patch) | |
tree | be4e0abcee42b947d9d5603ee5d2fbb6ba99016a /src | |
parent | 0327f16d110baa4479c73b4fcece6c99b2f89a8b (diff) |
Core/Player: Fix equipment sets not saving correctly
New sets were always saved to _equipmentSets[0], overwriting eachother
(cherry picked from commit 3a84661114eabf02b3061ebd378ca9df9f481140)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 0849cd1952c..8428886ee34 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -25669,14 +25669,14 @@ void Player::SetEquipmentSet(EquipmentSetInfo::EquipmentSetData const& eqSet) } } - EquipmentSetInfo& eqSlot = _equipmentSets[eqSet.Guid]; + uint64 setGuid = (eqSet.Guid != 0) ? eqSet.Guid : sObjectMgr->GenerateEquipmentSetGuid(); - EquipmentSetUpdateState oldState = eqSlot.State; + EquipmentSetInfo& eqSlot = _equipmentSets[setGuid]; eqSlot.Data = eqSet; if (eqSet.Guid == 0) { - eqSlot.Data.Guid = sObjectMgr->GenerateEquipmentSetGuid(); + eqSlot.Data.Guid = setGuid; WorldPacket data(SMSG_EQUIPMENT_SET_SAVED, 4 + 1); data << uint32(eqSlot.Data.SetID); @@ -25684,7 +25684,7 @@ void Player::SetEquipmentSet(EquipmentSetInfo::EquipmentSetData const& eqSet) SendDirectMessage(&data); } - eqSlot.State = (oldState == EQUIPMENT_SET_NEW ? EQUIPMENT_SET_NEW : EQUIPMENT_SET_CHANGED); + eqSlot.State = (eqSlot.State == EQUIPMENT_SET_NEW ? EQUIPMENT_SET_NEW : EQUIPMENT_SET_CHANGED); } void Player::_SaveEquipmentSets(CharacterDatabaseTransaction trans) |