I ran into an interesting but today.
When starting up the server, piercing sockets will disappear on suit items for one character only.
I tried figuring out why, but I couldn't really find the bit of code that was causing it.
What I could figure out tho: For some reason, the server is putting the piercing properties on one apIndex higher than the item is stored as in the DB.
In my case, the suit I had a problem with was apIndex 180, when the server starts up for the first time, this value is shifted to apIndex 181 for some reason.
This only happens when starting up the server and not while it is running. If the suit is pierced again, the DB saves it correctly and I now have the same entry in m_InventoryPiercing for Index 180 and 181.
When the character logs back in while the server is still up and running, everything is fine, the suit at apIndex 180 still gets its correct values.
Any tips on where I should take a look? This bug is kinda driving me crazy since I don't know really why it is happening only on server startup.
EDIT:
Found out where the sockets went:
What I also found: The function LoadPiercingInfo in DbManagerfun.cpp actually sets the piercing size of the Knight Suit to 3, but it still shows up on the boots.
Update: Found out what causes the issue.
I had Two-Handed Weapon Merge implemented and merging a weapon with 0 sockets on it would add an additional ,0 at the end of m_InventoryPiercing. Performing a simple Check in the DbManagerSave solved this issue.
@
#CloseRequest






