_Ace
BattleForums Senior Member
- Joined
- May 17, 2003
- Messages
- 1,474
- Reaction score
- 0
- Location
- Under my bed (Spain)
- Website
- Visit site
Ace's 1.10 Complete PacketList
This packet list includes definitions and will (pretty soon btw) include examples.
Credits go to Gayak and the "others" that made the first ever packetlists, and to Thohell for creating d2hackit, which I'm using to create the examples and get some extra info.
This list has the following format:
Index:
- Variable types
- SENT packets
- RECV packets [not yet]
- Definitions
Variable types: What kind of data goes inside the packets?
BYTE = XX (from 00 to ff)
WORD = 2 bytes
DWORD = 4 bytes
*char = Array of bytes each representing a letter
SENT packets: What does each packet do?
Definitions: What does each packet parameter mean?
[WORD x]
2 bytes containing a x coordinate (first byte is usually "zone" and second is coord inside that zone)
[WORD y]
Same than x but with y coordinate
[DWORD entity kind]
[DWORD entity id]
Every entity in the game has its own id, it's like its identification number that makes it different from other entities...
[*char message]
Group of characters containing the message, 1 byte per letter (hex ASCII)
[DWORD item id]
Every item has its own id, it's the same thing that happens with entities
[DWORD xpos]
x position in a buffer starting from 0 (XX 00 00 00) (when putting an item, the coords define the upper-left corner of the item). Inventory goes from x=0 to x=9
[DWORD ypos]
y position in a buffer starting from 0 (YY 00 00 00) (when putting an item, the coords define the upper-left corner of the item). Inventory goes from y=0 to y=3
[DWORD buffer]
00 00 00 00 = Inventory
[WORD body position]
01 00 = Head
02 00 = Amulet
03 00 = Armor
04 00 = Left hand
05 00 = Right hand
06 00 = Left ring
07 00 = Right ring
08 00 = Belt
09 00 = Boots
0a 00 = Gloves
[DWORD belt position]
0c 0d 0e 0f
08 09 0a 0b
04 05 06 07
00 01 02 03 <- Lower line (the one you always see)
[DWORD option]
UNKNOWN
[DWORD NPC tab]
When buying it's always 00 00 00 00, when selling it varies
[DWORD cost]
When sniffing, it will tell you how much buying an item costed (in hex), when sending the packet it's not needed
[DWORD merc id]
As entities and items, mercs also have ids, nothing to say.
[BYTE stat]
00 = Strength
01 = Energy
02 = Dexterity
03 = Vitality
[BYTE skill]
Every skill has its "id", from 00 to FF (note: some assassin skills are out of that range, being [XX 01], when this happens, XX will go in the [BYTE skill] place, and the 01 will add to the next byte. I know this is not clear enough but I'll explain in next "releases" or edits of this post.
[WORD soundmessage]
19 00 = Help [0]
1a 00 = Follow me [1]
1b 00 = This is yours [2]
1c 00 = Thanks [3]
1d 00 = Sorry [4]
1e 00 = Bye [5]
1f 00 = DIE! [6]
20 00 = Run [7]
This PacketList was made by TheAce, you can copy it and post it anywhere else as long as you state that I did it. If you edit it, you still have to say that the original was made by me.
CM, if you are around, sticky this or something, but leave it editable because I'll be adding stuff everyday. I hope the PacketList helps people who want to start with hacking but don't know where to start.
This packet list includes definitions and will (pretty soon btw) include examples.
Credits go to Gayak and the "others" that made the first ever packetlists, and to Thohell for creating d2hackit, which I'm using to create the examples and get some extra info.
This list has the following format:
Code:
[Starting byte] [Description]
Syntax: [Packet syntax (hex bytes separated by spaces)]
Length: [Number of bytes the packet uses including starting one]
Example: [Example of when this packet is used and what data goes where] <- Not done yet, expect to see it in a week or less
Index:
- Variable types
- SENT packets
- RECV packets [not yet]
- Definitions
Variable types: What kind of data goes inside the packets?
BYTE = XX (from 00 to ff)
WORD = 2 bytes
DWORD = 4 bytes
*char = Array of bytes each representing a letter
SENT packets: What does each packet do?
Code:
00 UNKNOWN
01 Walk to coords
Syntax: 01 [WORD x] [WORD y]
Length: 5
02 Walk to entity
Syntax: 02 [DWORD entity kind] [DWORD entity id]
Length: 9
03 Run to coords
Syntax: 03 [WORD x] [WORD y]
Length: 5
04 Run to entity
Syntax: 04 [DWORD entity kind] [DWORD entity id]
Length: 9
05 Cast left skill on coords
Syntax: 05 [WORD x] [WORD y]
Length: 5
06 Cast left skill on unit
Syntax: 06 [DWORD entity kind] [DWORD entity id]
Length: 9
07 Shift-cast left skill on unit
Syntax: 07 [DWORD entity kind] [DWORD entity id]
Length: 9
08 Shift-cast left skill on coords (hold)
Syntax: 08 [WORD x] [WORD y]
Length: 5
09 Cast left skill on unit (hold)
Syntax: 09 [DWORD entity kind] [DWORD entity id]
Length: 9
0a Shift-cast left skill on unit (hold)
Syntax: 0a [DWORD entity kind] [DWORD entity id]
Length: 9
0b UNKNOWN
0c Cast right skill on coords
Syntax: 0c [WORD x] [WORD y]
Length: 5
0d Cast right skill on unit
Syntax: 0d [DWORD entity kind] [DWORD entity id]
Length: 9
0e Shift-cast right skill on unit
Syntax: 0e [DWORD entity kind] [DWORD entity id]
Length: 9
0f Cast right skill (hold) on coords
Syntax: 0f [WORD x] [WORD y]
Length: 5
10 Cast right skill on unit (hold)
Syntax: 10 [DWORD entity kind] [DWORD entity id]
Length: 9
11 Shift-cast right skill on unit (hold)
Syntax: 11 [DWORD entity kind] [DWORD entity id]
Length: 9
12 UNKNOWN
13 Interact with entity (to interact with a unit you have to be relatively close, so use the walk to entity packet first)
Syntax: 13 [DWORD entity kind] [DWORD entity id]
Length: 9
14 Overhead message
Syntax: 14 00 00 [*char message] 00 00 00
Length: Varies (6 + message characters)
15 Chat message
Syntax: 15 01 00 [*char message] 00 00 00
Length: Varies (6 + message characters)
16 Pickup item from ground
Syntax: 16 04 00 00 00 [DWORD item id] [DWORD inv(0) or cursor (1)] (00 00 00 00 picks item to inv, 00 00 00 01 picks item to cursor)
Length: 13
17 Drop item from cursor to ground (item must be on cursor)
Syntax: 17 [DWORD item id]
Length: 5
18 Put item down in buffer
Syntax: 18 [DWORD item id] [DWORD xpos] [DWORD ypos] [DWORD buffer]
Length: 17
19 Pickup item from buffer
Syntax: 19 [DWORD item id]
Length: 5
1a Equip item
Syntax: 1a [DWORD item id] [WORD body position] 00 00
Length: 9
1b Equip/Remove 2 handed-item (swap)
Syntax: 1b [DWORD item id] [WORD body position] 00 00
Length: 9
1c Remove item from body
Syntax: 1c [WORD body position]
Length: 3
1d Swap cursor with body
Syntax: 1d [DWORD item id] [WORD body position] 00 00
Length: 9
1e UNKNOWN
1f Swap cursor item with item in buffer
Syntax: 1f [DWORD cursor item id] [DWORD buffer item id] [DWORD xpos] [DWORD ypos]
Length: 17
20 Activate cube/potion in inventory/stash
Syntax: 20 [DWORD item id] [DWORD xpos] [DWORD ypos]
Length: 13
21 Stack items (keys, arrows, bolts)
Syntax: 21 [DWORD item to stack id] [DWORD item where it stacks id]
Length: 9
22 UNKNOWN
23 Drop item to belt
Syntax: 23 [DWORD item id] [DWORD belt position]
Length: 9
24 Pickup item from belt
Syntax: 24 [DWORD item id]
Length: 5
25 Switch item from cursor with item from belt
Syntax: 25 [DWORD cursor item id] [DWORD belt item id]
Length: 9
26 Use potion/scroll in belt
Syntax: 26 [DWORD item id] [DWORD option] 00 00 00 00
Length: 13
27 Identify item
Syntax: 27 [DWORD item id] [DWORD identify scroll id]
Length: 9
28 Socket item (put item inside another)
Syntax: 28 [DWORD item to socket id] [DWORD socketable item id]
Length: 9
29 Put scroll into book
Syntax: 29 [DWORD scroll id] [DWORD book id]
Length: 9
2a Drop item to cube
Syntax: 2a [DWORD item id] [DWORD cube id]
Length: 9
2b UNKNOWN
2c UNKNOWN
2d UNKNOWN
2e UNKNOWN
2f Chat with entity
Syntax: 2f [DWORD entity kind] [DWORD entity id]
Length: 9
30 Terminate entity chat
Syntax: 30 [DWORD entity kind] [DWORD entity id]
Length: 9
31 Quest message
Syntax: 31 [DWORD id] [DWORD message]
Length: 9
32 Buy item from NPC buffer
Syntax: 32 [DWORD entity id] [DWORD item id] [DWORD NPC tab] [DWORD cost (not needed)]
Length: 17
33 Sell item to NPC
Syntax: 33 [DWORD entity id] [DWORD item id] [DWORD NPC tab] [DWORD cost (not needed)]
Length: 17
34 Use NPC to identify items (Cain)
Syntax: 34 [DWORD entity id]
Length: 5
35 Repair item
Syntax: 35 [DWORD entity id] [DWORD item id] [DWORD NPC tab] [DWORD cost (not needed)]
Length: 17
36 Hire merc
Syntax: 36 [DWORD entity id] [DWORD merc id]
Length: 9
37 Identify (probably when gambling an item)
Syntax: 37 [DWORD item id]
Length: 5
38 Entity action
Syntax: 38 [DWORD action] [DWORD entity id] [DWORD parameters/complement]
Length: 13
39 UNKNOWN
3a Add stat point
Syntax: 3a [BYTE stat] 00
Length: 3
3b Add skill point
Syntax: 3b [BYTE skill] 00
Length: 3
3c Select skill
Syntax: 3c [BYTE skill] 00 00 [BYTE left (80) or right (00) skill] FF FF FF FF
Length: 8
3d UNKNOWN (used by Mode5)
Syntax: 3d [DWORD object id]
Length: 5
3e UNKNOWN
3f Play audio message ("help!" and all that)
Syntax: 3f [WORD sound message]
Length: 3
40 Request quest info update (when opening quest window)
Syntax: 40
Length: 1
41 Resurrect (after dying, hitting ESC)
Syntax: 41
Length: 1
42 UNKNOWN
43 UNKNOWN
44 Put staff in orifice (DO NOT PLAY WITH THIS AS IT CAN [AND MOST PROBABLY WILL] CORRUPT YOUR CHARACTER)
Syntax: 44 [DWORD orifice entity kind] [DWORD orifice entity id] [DWORD staff item id] [DWORD entity state]
Length: 17
45 UNKNOWN
46 UNKNOWN
47 UNKNOWN
48 Turn off "busy" state for trades
Syntax: 48
Length: 1
49 Take WP or close WP window
Syntax: 49 [DWORD wp entity id] [BYTE destination] 00 00 00
Length: 9
4a UNKNOWN
4b UNKNOWN
4c UNKNOWN
4d UNKNOWN
4e UNKNOWN
4f Click button (trade buttons for example)
Syntax: 4f [DWORD button id] [WORD complement]
Length: 7
50 Drop gold
Syntax: 50 [DWORD player id] [DWORD gold quantity]
Length: 9
51 Bind hotkey to skill
Syntax: 51 [BYTE skill] [BYTE left (80) or right (00) skill] [WORD hotkey] FF FF FF FF
Length: 9
52 UNKNOWN
53 UNKNOWN
54 UNKNOWN
55 UNKNOWN
56 UNKNOWN
57 UNKNOWN
58 Quest Completed
Syntax: 58 [WORD quest id]
Length: 3
59 Make entity move
Syntax: 59 [DWORD entity kind] [DWORD entity id] [WORD x] 00 00 [WORD y] 00 00
Length: 17
5a UNKNOWN
5b UNKNOWN
5c UNKNOWN
5d Squelch, hostile and "don't let player hear me" stuff
Syntax: 5d [BYTE button] [BYTE toggle on/off] [DWORD player id]
Length: 7
5e Invite to party
Syntax: 5e [BYTE button] [DWORD player id]
Length: 6
5f Update player position
Syntax: 5f [WORD x] [WORD y]
Length: 5
60 Switch inventory (like pressing W)
Syntax: 60
Length: 1
61 Give/take merc item
Syntax: 61 [WORD position (00 00 to give)]
Length: 3
62 Resurrect Merc
Syntax: 62 [DWORD NPC id]
Length: 5
63 Shift left-click item (to belt)
Syntax: 63 [DWORD item]
Length: 5
64 UNKNOWN
65 UNKNOWN
66 Close D2 (instead of leaving game it will make D2 close)
Syntax: 66
Length: 1
67 Enter Game
Syntax: 67 XX XX XX XX XX XX XX XX 00 00 00 00 [*char character name] 00 XX XX XX [DWORD ?]
Length: Varies
68 Leave Game
Syntax: 68
Length: 1
69 UNKNOWN
6c Client Update
Syntax: 6c [DWORD timer in miliseconds] [DWORD delay]
Length: 9
Definitions: What does each packet parameter mean?
[WORD x]
2 bytes containing a x coordinate (first byte is usually "zone" and second is coord inside that zone)
[WORD y]
Same than x but with y coordinate
[DWORD entity kind]
[DWORD entity id]
Every entity in the game has its own id, it's like its identification number that makes it different from other entities...
[*char message]
Group of characters containing the message, 1 byte per letter (hex ASCII)
[DWORD item id]
Every item has its own id, it's the same thing that happens with entities
[DWORD xpos]
x position in a buffer starting from 0 (XX 00 00 00) (when putting an item, the coords define the upper-left corner of the item). Inventory goes from x=0 to x=9
[DWORD ypos]
y position in a buffer starting from 0 (YY 00 00 00) (when putting an item, the coords define the upper-left corner of the item). Inventory goes from y=0 to y=3
[DWORD buffer]
00 00 00 00 = Inventory
[WORD body position]
01 00 = Head
02 00 = Amulet
03 00 = Armor
04 00 = Left hand
05 00 = Right hand
06 00 = Left ring
07 00 = Right ring
08 00 = Belt
09 00 = Boots
0a 00 = Gloves
[DWORD belt position]
0c 0d 0e 0f
08 09 0a 0b
04 05 06 07
00 01 02 03 <- Lower line (the one you always see)
[DWORD option]
UNKNOWN
[DWORD NPC tab]
When buying it's always 00 00 00 00, when selling it varies
[DWORD cost]
When sniffing, it will tell you how much buying an item costed (in hex), when sending the packet it's not needed
[DWORD merc id]
As entities and items, mercs also have ids, nothing to say.
[BYTE stat]
00 = Strength
01 = Energy
02 = Dexterity
03 = Vitality
[BYTE skill]
Every skill has its "id", from 00 to FF (note: some assassin skills are out of that range, being [XX 01], when this happens, XX will go in the [BYTE skill] place, and the 01 will add to the next byte. I know this is not clear enough but I'll explain in next "releases" or edits of this post.
[WORD soundmessage]
19 00 = Help [0]
1a 00 = Follow me [1]
1b 00 = This is yours [2]
1c 00 = Thanks [3]
1d 00 = Sorry [4]
1e 00 = Bye [5]
1f 00 = DIE! [6]
20 00 = Run [7]
This PacketList was made by TheAce, you can copy it and post it anywhere else as long as you state that I did it. If you edit it, you still have to say that the original was made by me.
CM, if you are around, sticky this or something, but leave it editable because I'll be adding stuff everyday. I hope the PacketList helps people who want to start with hacking but don't know where to start.