• Welcome to Valhalla Legends Archive.
 

Diablo II Ladder Request MCP_GETLADDER 0x11

Started by ChR0NiC, July 27, 2004, 10:05 PM

Previous topic - Next topic

ChR0NiC

Quote
0x11 - Realm ladder request -

C => S

(BYTE) Ladder type
(WORD) Starting position
Starting position is zero-based. If you include 0x0 there, the server will respond with the ladder data for entries 1-16.

S => C

(BYTE) Ladder type
(WORD) *How many bytes all of the packets are
(WORD) *How many bytes this packet is
(WORD) *How many bytes have not been recieved yet in other packets
(WORD) Always zero, except in the last packet recieved from the server includes a zero-based rank of the starting entries recieved
(WORD) Unknown (0)
(VOID) Ladder data
* Excludes the first byte of the packet, and it's first 5 WORDs.

Format of ladder data

(DWORD) Experience
(DWORD) Unknown (0)
(BYTE) Character class
(BYTE) Character name prefix
(WORD) Character level
(STRING) **Character name
Possible character classes:

Character name prefixes are the same as they appear in statstring.

** Always 16 BYTEs long; if the character name is less than 15 characters, it is followed with null BYTEs.


Anyways, to the point, I was wondering if there was a way to tell how many users are included in each one of these packets sent to the client, because I have no clue how many times to loop around when doing the parsing. The packet is pretty straight forward, but this is the only problem I am having.

PS: Thanks to Userloser for this extremely extensive documentation.

OnlyMeat

I have not done anything like that directly but by the looks of what you have there you just do a recv and increment a byte counter and once you hit 0x1b (provided the format you have written is correct) you split // dispatch the char info to your interface or what ever you use to record the info.

It does'nt look particularly complex tbh.

ps. If you kiss ass to much your lips might fuse to it :p

Maddox

It looks like it sends data for 16 users at a time, according to this statement "If you include 0x0 there, the server will respond with the ladder data for entries 1-16."

The way I would do it though is loop until "(WORD) *How many bytes have not been recieved yet in other packets" is equal to 0.
asdf.

ChR0NiC

#3
Quote from: OnlyMeat on July 28, 2004, 12:42 AM
ps. If you kiss ass to much your lips might fuse to it :p

If you are refering- to my thanking of Userloser, I was giving credit where credit is due, and don't start flaming, or you could end up like BaDDBLooD and GosuGaming.

Userloser's Packet Referal I bet you would never do that amount of research on packets, so don't get me started alright?

EviL_MarinE

lol effect, Just cos you program or find out packets ect.. dooesnt mean you dont have a life