Taking a look at inventory packets with experienced eyes...
With all the experience and familiarity I have now working with 1.0, it's protocol, and reverse engineering... I took another look at the inventory packets. These were one of the first things I tackled when I first started and you can see my post here and here. Anyway I figured out that I got a lot of it wrong and overcomplicated things. Simply put, the game has 3 types of inventory body packets (items, equipment index, and an unknown type which I am not sure what it's used for), that come in entry sizes of 1, 8, 16, 32, and 64. Yes, you can set 64 equipment indices at once even though there are only 20 or so. I guess SE was future proofing?
The opcodes are:
0x0146 Inventory Chunk Start
0x0147 Inventory Chunk End
0x0148 Inventory List (x01)
0x0149 Inventory List (x08, variable)
0x014A Inventory List (x16)
0x014B Inventory List (x32)
0x014C Inventory List (x64)
0x014D Set Equipment Id (x01)
0x014E Set Equipment Id (x08, variable)
0x014F Set Equipment Id (x16)
0x0150 Set Equipment Id (x32)
0x0151 Set Equipment Id (x64)
0x0152 Unknown (x01)
0x0153 Unknown (x08, variable)
0x0154 Unknown (x16)
0x0155 Unknown (x32)
0x0156 Unknown (x64)
0x016D Inventory Start
0x016E Inventory End
and how it works is:
[16D]
[146 (Capacity, Code)]
[14B]
[14B]
[14A]
[147]
[146 (Capacity, Code)]
[149]
[147]
[16E]
In this case, two sets of item types (say inventory and key items) are being changed, with the first one changing 32 + 32 + 16ish (can be less for the last one), while the second one is doing just up to 8.
Comments
New comment