LOL, after working on the client update position stuff over and over trying to figure out why what I was seeing wasn't matching up with what I was setting for the packet structure, it looks like I finally got it all working perfectly as far as I can tell. Apparently, the logs from the server can't always be trusted. It was telling me that the client was sending 36 byte packets for clientupdates, but it is actually sending 40. It was also re-arranging all of the blocks in the packet for some reason, which made working out the structure nearly impossible. Luckily, I just tried using the exact structure from ShowEQ around that time and it works flawlessly! I dunno what the logging is doing to cause me all of that trouble, but at least it works now
I am still working on getting zone commands to work. I think I can just redo the requestclientzonechange structure for SoF, but I need to figure out how to get the client's character name in the SoF.cpp encode for it. I have tried a few things, but none of them seem to work yet.
I am also still working on the ground spawn structure, because something is definitely wrong with it. Objects spawn about 100X bigger than they are supposed to. I have tried adjusting all of the unknown fields and none of them are making any difference, so I am guessing the known fields are probably ordered wrong or in the wrong place.
I also still need to narrow down a few more fields in the spawn structure, but that is mostly just cosmetic stuff like armor, tint, texture and size.
Something is still missing from the AA stuff that is keeping them from loading, but I think it should be sending them correctly, so I am guessing it is maybe just the list of AAs that isn't going out properly yet.
Most of the rest of the stuff to work on will probably be best to wait until items are working. I could start working on the action stuff for fighting, but without being able to load items, it will probably just keep causing crashes. Once items are working though, I don't think the action structures will be hard to get going.
The /who all related structures also need work, but I think I can probably figure that out by looking at EQLive packets. I just haven't checked that yet.