[DiscordArchive] What's that packet for?
[DiscordArchive] What's that packet for?
Archived author: Claudiodfc • Posted: 2021-12-27T08:58:37.624000+00:00
Original source
What's that packet for?
Archived author: exec • Posted: 2021-12-27T09:31:04.784000+00:00
Original source
basically any time just about anything in the in-world changes in any way other than 1. player movement or 2. any unit casts a spell, it probably involves a SMSG_OBJECT_UPDATE packet
Archived author: exec • Posted: 2021-12-27T09:32:21.971000+00:00
Original source
npc moves? Someone equips new gear? any game object enters or leaves render range? corpse appears, boat moves, someone accepts a quest, moves something in their inventory, changes their stats, etc etc
Archived author: exec • Posted: 2021-12-27T09:32:36.615000+00:00
Original source
it's just one big, massive, complicated uber-format that tries to do it all
Archived author: Claudiodfc • Posted: 2021-12-27T09:51:58.337000+00:00
Original source
Hmmm I can see a few issues it may cause, first of all pasta code. No one likes having one hook to rule them all
Archived author: exec • Posted: 2021-12-27T10:36:40.554000+00:00
Original source
It is _definitely_ pasta.
Archived author: exec • Posted: 2021-12-27T10:37:20.152000+00:00
Original source
most have a 40-300 byte mask that's simply for signaling which fields out of hundreds it's actually passing data for, each for a specific type-subtype-subsubtype
Archived author: exec • Posted: 2021-12-27T10:37:44.733000+00:00
Original source
the order of the fields and what type they are is basically just pre-shared magic values per type-subtype-subsubtype set. If a bit is on, that specific pre-known field has data after the mask block. No seperators or anything.
Archived author: exec • Posted: 2021-12-27T10:38:18.722000+00:00
Original source
everything else, especially the movement stuff, is just a massive if/else if/else and swtich case tree based around dozens and dozens of flags.
Archived author: exec • Posted: 2021-12-27T10:38:41.438000+00:00
Original source
and then there's typically 7-20 of these 'update blocks' in a single SMSG_OBJECT_UPDATE