-
Notifications
You must be signed in to change notification settings - Fork 17
Packet research
Boreeas edited this page Oct 10, 2014
·
4 revisions
ID | Purpose | Param | Packet Structure | Size | Notes |
---|---|---|---|---|---|
0x03 | ?Spawn minion | Notes on structure | |||
0x11 | End Spawn | 0x1 | |||
0x15 | Set Ability level | ||||
0x17 | Create Effect | EntID | Structure | variable | Has two structures, see notes |
0x21 | ?Death recap data | ||||
0x22 | Gold Reward | ||||
0x2A | Summoner data | EntID | 0x212 | ||
0x46 | Player stats | EntID | 0x128/0x120 | ||
0x4C | Player header | 0 | 0xC3 | ||
0x54 | Synch Version | 0 | |||
0x5B | ?Backport | ||||
0x5E | Start deathtimer | EntID | Structure | 0x12 | |
0x61 | Move command | see below | 0x152 | ||
0x62 | Start Spawn | 0 | unk1: uint16? | 0x2 | |
0x63 | Spawn jungle | 0x152 | |||
0x65 | Damage Done | ||||
0x68 | Chat message | variable | |||
0x6B | ?Cast summoner | ||||
0x6F | Purchase item | EntID | Structure | 0x8 | |
0x85 | EntID | Structure | 0x0a | Structure tentative, see notes | |
0x92 | Game ID | 0 | Structure | 0x88 | |
0x9D | Tower header | EntID | 0x4A | ||
0xC1 | Update gametimer | 0 | timer: float | 0x4 | |
0xC4 | Char Stats | 0 | variable | ||
0xE4 | Gold gain |
Type legend:
Structure:
- name: type
- name(?): type - Field may have different meaning
- (name: type)? - Structure uncertain, field may not actually be contained in packet
Symbol | Name | Size in bytes |
---|---|---|
b | byte | 1 |
i/u8 | (u)int8 | 1 |
i/u16 | (u)int16 | 2 |
i/u32 | (u)int32 | 4 |
f/float | float | 4 |
eid | Entity ID | 4 |
cstr | String (null-terminated) | variable |
str | String (length-prefixed) | variable |
Offset | Name | Type | Notes |
---|---|---|---|
0 | effectId(?) | u16 | |
2 | name | cstr | Sometimes, format differs, see notes |
Offset | Name | Type | Notes |
---|---|---|---|
0 | unk1 | i32 | Usually 0 |
4 | unk2 | i32 | Usually 7 |
8 | duration | float | |
12 | unk3 | u16 | Usually 0x4c00 |
-
Shows unit location when they start a new movement, and the location they are headed
-
Mostly useful for extracting position data but isn't updated constantly, i.e. when someone clicks to move across the map and waits the entire time to arrive (though you could calculate this given the movement speed)
-
blocktype:
0x61
// x and y coords are relative to the center of the map (i.e. the middle of the map is x=0, y=0)
ff ff ff ff // time as a float from game begin
01 // number of units associated with this packet (numUnits)
00 // magic zero?, or maybe will populate if the number of units > 0xff somehow
// repeated struct : numUnits
02 // number of coordinates for unit (numCoords)
// if 3 coords, 2 coords expected?
// if odd number of coords (besides 3), first bitmask byte will be 0xff and will not start with lsb, but numCoords%8 lsb (so if 5 coordinates, will start with the 5th lsb), corner case, may be incorrect
19 00 00 40 // entity id
// repeated struct : (floor((numCoords - 2)/8))
ff // bit mask for absolute or relative position
ff ff // starting x coords, signed 2byte
ff ff // starting y coords. signed 2byte
// repeated struct : numCoords/2 (really repeats : numCoords times, but each coord alternates between x and y, so struct is twice as big, and there may be a spare coord at the end in odd cases)
ff, ff ff // x coord, dependant on bitmap
ff, ff ff // y coord, dependant on bitmap
// if bitmask bit is 1, relative position (signed 1 byte)
// if bitmask bit is 0, absolution position (signed 2 bytes)
// bitmask starts with (first byte after entity id, lsb -> msb) -> (following bytes, lsb -> msb)
// if numCoords is odd (besides 3), will have extra coord that doesn't belong to x or y, see not from previous struct
ff, ff ff // unknown coord, dependant on bitmap
Offset | Name | Type | Notes |
---|---|---|---|
0 | entityId | eid | Tentative |
4 | itemId | u32 | |
8 | slotId | u8 | |
9 | countOnSlot | u16 | |
11 | unk1 | u8 |
Offset | Name | Type | Notes |
---|---|---|---|
0 | counter | u8 | |
1 | unk1 | float(?) | Usually 0, sometimes values between 0 and ~200 |
5 | unk2 | float | Always -1 |
Offset | Name | Type | Notes |
---|---|---|---|
0 | gameId | u64 | |
8 | unk1 | b[80] |
- Sample captures (one line per capture):
de 00 00 40 40 36 b8 53 ff 00 00 00 00 0a 00 01
df 00 00 40 40 4c 36 eb ff 00 00 00 00 0a 00 01
e0 00 00 40 40 71 71 b7 ff 00 00 00 00 0a 00 01
e1 00 00 40 40 e8 00 ba ff 00 00 00 00 0a 00 01
e2 00 00 40 40 af c9 5e ff 00 00 00 00 0a 00 01
- Looks like [marker byte] [float] [float?] [float] [short] [byte]
- Sometimes, not a plaintext names is transmitted, instead it looks like some floats
- Sample captures (one line per capture):
00 06 01 20 00 00 40
01 06 01 20 00 00 40
02 06 01 20 00 00 40
03 06 01 20 00 00 40
- Looks like [effect id] [marker byte] [some float]?
- Usually in the form
01 00 00 00 00 00 00 00 80 bf
with the first byte incrementing - Seems to be [slot] [unk1] [float maxCooldown, 0 if = currentCooldown] [float currentCooldown, = -1 if 0]
XMPP/Lobby | Spectating | Data Structure |
---|---|---|
Chat - RTMPS Methods - REST Service | REST Service | Keyframe Specification - Chunk Specification |