Addresses some reported bugs from the public server. Many thanks to Cammy White, Sera Eidolon, and CUBEone for their assistance identifying and replicating these issues.
Reincarnation at the beauty salon sometimes uses a third UpdateType that I wasn't expecting when I wrote the validation, so it'd always be flagged as cheating and reincarnation would be blocked. This has been fixed.
The mysterious crash to desktop when viewing some Arisen profiles has been addressed. The S2CCharacterGetCharacterStatusNtc was malformed and missing a list. In characters that had HideHelmet set to 1, this would be interpreted by the client as the number of entries in this missing list, and attempting to read the nonexistent list data would overrun the buffer and crash. This has been fixed.
When changing jobs, shared jewelry between Job A and Job B would sometimes fail to equip. If the target job wanted some particular UID of jewelry in slot Jewelry1, but that item was currently equipped in a later slot on the initial job, it would fail to be found and the swap manager would silently remove the item from the template, leaving an empty slot. This was most puzzling when equipping multiple identical pieces of jewelry, as the user would be unable to properly slot them in the exact same order across multiple jobs to prevent this. This has been fixed.
Changes to MailSystemMailGetAllItemHandler as part of the Item Post functionality broke sending items from system mail to the Item Bag or Storage Chest directly. These changes have been partially rolled back, frankensteining the new code for sending to Item Post onto the old code for sending to Item Bag and Storage Chest, so all three menu options should work correctly.
I had been wrong about multiplayer context this entire time; the MasterIndex passed around by various context packets corresponds directly to the slot in the party the client occupies, including the slots filled by pawns (or nobody). This meant that, under the previous scheme, parties with pawns sandwiched between players (exceedingly common) would incredibly easily desync, as the context management would attempt to pass control of monsters to pawns. This has (hopefully) been addressed.
Addresses some reported bugs from the public server. Many thanks to Cammy White, Sera Eidolon, and CUBEone for their assistance identifying and replicating these issues.
S2CCharacterGetCharacterStatusNtc
was malformed and missing a list. In characters that hadHideHelmet
set to 1, this would be interpreted by the client as the number of entries in this missing list, and attempting to read the nonexistent list data would overrun the buffer and crash. This has been fixed.MailSystemMailGetAllItemHandler
as part of the Item Post functionality broke sending items from system mail to the Item Bag or Storage Chest directly. These changes have been partially rolled back, frankensteining the new code for sending to Item Post onto the old code for sending to Item Bag and Storage Chest, so all three menu options should work correctly.MasterIndex
passed around by various context packets corresponds directly to the slot in the party the client occupies, including the slots filled by pawns (or nobody). This meant that, under the previous scheme, parties with pawns sandwiched between players (exceedingly common) would incredibly easily desync, as the context management would attempt to pass control of monsters to pawns. This has (hopefully) been addressed.tl;dr
ERROR_CODE_SHOP_PRICE_NO_MATCH
complaint.Checklist:
develop
branch