Skip to content

Instantly share code, notes, and snippets.

@jaagupkymmel
Forked from tyscorp/player segment of keyframe partially decoded
Last active August 29, 2015 13:55
Show Gist options
  • Save jaagupkymmel/a36e07f4abb4b012c66e to your computer and use it in GitHub Desktop.
Save jaagupkymmel/a36e07f4abb4b012c66e to your computer and use it in GitHub Desktop.
player segment of keyframe partially decoded

header

offset: 0x00; length; 0x10

03 10 09 70             // these weren't present in source gist, was it skipped?
43 02 00 00
00 61 00 00
00 00 00 00

offset: 0x00 0x10; length: 0x17

B3 00 C3 4B 00          // ~~this is at the start of every one~~ this seems to be only at the start of first one
19 00 00 40             // entity ID, increments for each player (the next players is 1A 00 00 40, etc.)
01 00 00 00             // each player is given a number from 0 to 9
40
00 01 00 ~~00~~ 44      // unknown
FF
01 00 00 00             // unknown

offset: 0x17 0x27; length: 0x10

//summoner name string (multiple examples)
//bytes after the null are meaningless

4D 61 61 61  61 61 61 61  61 61 61 61  61 72 72 72  // "Maaaaaaaaaaaarrr" (max length)
51 75 69 63  6B 00 F7 11  45 00 00 00  00 00 00 00  // "Quick"
51 75 69 63  6B 00 BE B1  43 00 00 00  00 C4 DA 3C  // "Quick"
41 6D 65 63  00 76 E9 07  42 00 00 00  00 00 00 00  // "Amec"
57 61 72 4C  6F 72 44 20  54 69 74 61  6E 00 DC 34  // "WarLorD Titan"

offset: 0x27 0x37; length: 0x6C

//unknown
00 00 00 00
00 02 00 00
00 00 00 00
00 00 00 75
02 D0 C8 FA
09 00 00 00
00 00 00 00
00 40 00 E4
03 E6 27 DD
45 00 00 00
00 00 00 00
00 02 00 00
00 68 C0 FA
09 01 00 00
00 C8 C8 FA
09 0C DB 3C
02 23 E0 A5
77 90 4A 76
02 D0 C8 FA
09 0D 00 00
00 C8 C8 FA
09 20 DB 3C
02 DD 14 53
77 00 00 75
02 00 00 00
00 D0 C8 FA
09 34 DB 3C
02 C2 DC DD

offset: 0xA7; length:

//champion name
56 69 00                // "Vi"
75 02 00 00 00 00       // I think this is part of the champ name too
                        // "Heimerdinger" is 12 chars, so we need atleast 13 bytes (or 12, if we dont need NULL byte)

//unknown (it seems like these are 2 bytes each)
D0 C8
FA 09
48 DB
3C 02
A6 94
35 00
D0 C8
FA 09
88 A9
9D 09
D8 C8
FA 09
58 DB
3C 02
60 96
35 00
D8 C8
FA 09
B0 DB
3C 00
83 00
12 02
00 00

rune page

offset: 0xCE 0xDE; length: 0x7D

29 19 00 00 40          // 29 ENTITY ID             
83 14 00 00  85 14 00 00  85 14 00 00  85 14 00 00  85 14 00 00  85 14 00 00  85 14 00 00  85 14 00 00  85 14 00 00     // marks
A9 14 00 00  A9 14 00 00  A9 14 00 00  A9 14 00 00  A9 14 00 00  A9 14 00 00  A9 14 00 00  A9 14 00 00  A9 14 00 00     // seals
C5 14 00 00  C5 14 00 00  C5 14 00 00  C5 14 00 00  C5 14 00 00  C5 14 00 00  C5 14 00 00  C5 14 00 00  C5 14 00 00     // glyphs
D7 14 00 00  24 15 00 00  24 15 00 00                                                                                   // quints

masteries

offset: 0x14B; length: variable (max 0x194)

24 4F 36 06           // only present in some packets (was not in source gist)?
A8 6E 49 06             // header?

//the first byte seems to be the mastery "slot", but it doesn't correlate with talentId from the AIR Client
//middle 3 bytes are unknown
//last byte is the amount of points in the mastery
42 74 03 00 04
43 74 03 00 01
52 74 03 00 03
61 74 03 00 01
62 74 03 00 01
64 74 03 00 03
71 74 03 00 01
72 74 03 00 03
82 74 03 00 03
92 74 03 00 01
41 75 03 00 02
43 75 03 00 02
51 75 03 00 01
52 75 03 00 03
62 75 03 00 01

//padding until ~~0x2E4~~ 0x2F2
00 00 00 00 00 ...

SOME TYPE OF HEADER

offset: 0x2F2, length: ? 0x09

1E                       // constant
0D                       // this changes
B3 00 65 FE 00 0C 01     // constant

ITEM DATA

//first 4 bytes is the ITEM ID
//the 3 bytes after are: index, quantity, ~~?~~ Charges
//multiple examples
89 0C 00 00  00 01 00    // ITEM0 3209 - Spirit of the Elder Lizard
C6 0C 00 00  01 01 00    // ITEM1 3270 - Enchantment: Homeguard (Boots of Mobility)
3E 0C 00 00  02 01 00    // ITEM2 3134 - The Brutalizer
FC 0B 00 00  03 01 00    // ITEM3 3068 - Sunfire Cape
F3 03 00 00  04 01 00    // ITEM4 1011 - Giant's Belt
8B 0C 00 00  05 01 00    // ITEM5 3211 - Spectre's Cowl
16 0D 00 00  06 01 00    // ITEM6 3350 - Greater Totem (Trinket)
D1 07 00 00  07 01 00    // ITEM7 2001 - constant
00 00 00 00  08 00 00    // ITEM8 0000 - nothing ???

F9 07 00 00  00 01 03    // ITEM0 2041 - Crystalline Flask
D3 07 00 00  01 02 00
00 00 00 00  nn 00 00

//no idea what this is
00 00 80 BF             // 3,212,836,864  OR  0 - 49,024  OR  0 - 0 - 128 - 191
00 0E 8E 40             // why is this different? It's the same sometimes.
00 00 80 BF
00 00 80 BF
00 00 80 BF
00 00 80 BF
00 00 80 BF
00 00 80 BF
00 00 80 BF

//unknown (comparing multiple keyframes)
A3 00 28 01  00 00 45 00  28 01 00 00  0A 00 00 00
A3 00 28 01  00 00 45 00  28 01 00 00  00 00 00 00

00 00 00 00  09 00 00 00  10 00 00 00  02 00 00 00
00 00 00 00  00 00 00 00  05 00 00 00  00 00 00 00

00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00

9F 8B 46 46  00 B8 1A 46  00 00 00 00  00 00 00 00
3C C0 6D 44  00 00 5C 44  00 00 00 00  00 00 00 00

00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00

00 00 00 00  00 00 00 00  00 00 00 00  22 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00

04 00 00 00  9B 47 00 44  03 00 00 00  02 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00

00 00 00 00  CB 0A 26 44  C4 6B 00 46  EF 2A A6 44
00 00 00 00  C4 98 55 43  3D BF 91 41  3D BF 91 41

F8 CF 40 46  25 00 00 00  00 00 54 00  00 00 06 00
1C A0 26 44  0A 00 00 00  00 00 00 00  00 00 00 00

00 00 4E 00  00 00 05 00  00 00 00 00  00 00 35 99
00 00 00 00  00 00 01 00  00 00 00 00  00 00 E1 6B

E2 47 A2 60  88 46 6F 0F  45 46 00 00  00 00 00 00
C5 44 41 53  E5 43 AC E4  83 44 00 00  00 00 00 00

00 00 00 00  00 00 00 00  00 00 54 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 05 00  00 00 02 00

00 00 5A 00  00 00 0C 00  00 00 05 00  00 00 15 00
00 00 03 00  00 00 00 00  00 00 01 00  00 00 01 00  

00 00 00 00  00 00 64 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 64 00  00 00 00 00  00 00 00 00

00 00 00 00  00 00 6D BB  0C 48 50 5B  A8 46 8E 42
00 00 00 00  00 00 DE F2  CF 44 9A B7  07 44 BC 34

D0 46 53 11  00 00 9C 79  F5 43 50 1D  2D 43 01 00
D7 44 3C 00  00 00 00 00  C0 40 40 6C  48 41 01 00

00 00 00 00  00 00 5F 41  9B 46 FE BF  2C 45 DA 2D
00 00 00 00  00 00 00 00  84 42 00 00  84 42 00 00

D5 44 00 00  00 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00

00 00 08 00  00 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00

B3 00 03 15  00 00 05 00  F3 00 03 00  01 05 00 F3
B3 00 03 15  00 00 01 00  F3 00 03 00  01 01 00 F3

00 03 00 02  04 00 F3 00  03 00 03 03  00 B3 00 06
00 03 00 02  01 00 F3 00  03 00 03 00  00 B3 00 09

17 00 01 01  76 69 77 00  F3 00 0A 00  2F 01 76 69
84 00 40 46  25 30 43 00  00 80 BF F3  00 09 00 41

72 64 75 6E  6B 00 F3 00  20 00 32 01  62 6C 65 73
B0 79 09 43  00 00 80 BF  B3 00 01 EF  00 01 93 00

73 69 6E 67  6F 66 74 68  65 6C 69 7A  61 72 64 65
07 FE 00 00  00 00 15 01  19 00 00 40  00             //This area seems to have variable size

6C 64 65 72  6C 69 6E 65  73 00 B3 00  09 84 00 43
00 40 14 41  00 00 80 BF  F3 00 09 00  05 00 0E 8E
40 00 00 80  BF F3 00 09  00 40 40 B1  05 43 00 00
80 BF B3 00  01 EF 00 01  93 00 07 FE  00 00 00 00
15 01
19 00 00 40         // ENTITY ID
00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment