/* This is probably the most complete list that isn't lost forever. Credits to Team [Le] (Limited Edition // gamehackers // isDebuggerPresent) */ Packet Format Packet Type data Packet Types | Description | Length 0x00 General Purpose Varies Checksum Length - 4 Packets sent?(different for each packet class) packets recieved?(different for each packet class) packet class Main Packet Id Senders position flags Data 0x03 Ping Pong! 0x08 0 for ping, 1 for response 0x05 bnet ping 0x08 bnet 0x06 Joiner starts connection with this packet 0x08 Gettickcount? MainPacket Id. | Description | parsing routine | Responses ################################################################################## 0x00 Game packet/keep alive ? ? x pos y pos x pos y pos hp maxhp str mag dex 0x6970 packet length - &h10 Game Packet Id data - Or - ? ? ?? 0x01 Permission to join request 4405EC 02 response expected? 0x02 Permission response 15023240 03 1 = permission to join 0x03 4405EC 1 ?? 0x04 ? - .?AUCONNREC@@ 4405EC/15023410 05 No Data 0x05 ? - .?AUCONNREC@@ 15023470 No response? No data 0x06 Other Players info 150234e0 No response? player position? packet count? Port* IP* Username Statstring* * null for host 0x07 Name/Statstring 15023770 08, 06(for host and each player),0f,09 Username Statstring Password 0x08 Game name/host info 15023c90 No responses? Joiners position FF = game full Dungeon Objects Seed - dword ptr [1503C7C8] word packet count?? Dungeon Drop Modifier - dword ptr [1503C47C] 'if bit 3=1 then game = full shr ((GetTickCount - [1503C510]) * 0x10624DD3) ,6 Gamename <0xDtstring> Difficulty <0xDtstring> Username Statstring Password 0x09 15023d70 No response? 0x0A No data 0x0B Exit game ?02 class packet count? exit type (40000004 = killed Diablo) 0x0C Drop Player 150232B0 player id 0x0D ? 15023350 [15038B64] 0x0E ? 15023330 [1503C47C] 0x0F 150233F0 No Response ?? sets dword at [1503C48C] Game packet id. | Description | Length ################################################################################## 0x01 movement 03 x y 0x02 notifies- in/left/killD,left Varies, split into 0x1d8 byte chunks Length of data already sent packet data length //data +0 unused +4 unused +8? +A? +Bdungeon level +Cx +Dy +Ex +Fy +10name +30class base str base mag base dex base vit level ? ? ? hp maxhp mp max mp spell levels //equipped //inventory inv slots used number of items //belt +422 0x03 Add to Strength 03 amount added 0x04 Add to Magic 03 amount added 0x05 Add to Dexterity 03 amount added 0x06 Add to Vitality 03 amount added 0x07 Unknown(spell) 03 spell id 0x08 Item Picked Up (open inventory) 0x1E dungeon level base item type item generation item code 0x09 item picked up 0x1E player id level 0x0a item dropped 0x16 x y base item type item generation? item code id'd? durability max durability 0x0b inventory full 0x16 0x0c unknown 03 0x0d arrow in town 03 x ? 0x0e spell was cast 07 x y spell id 0x0F unknown(spell) 07 spell id 0x10 request open action 05 0x11 trap disarm 05 0x12 target monster 03 monster id. 0x13 melee attack 03 player id 0x14 shoot entity 03 0x15 player hit player in town 03 player id? 0x16 target spell on monster 07 monster id? spell id. ?? 0x17 target spell on player 07 ? spell id. ?? 0x18 unknown(spell) 07 spell id 0x19 cast portal on player 07 spell id 0x1a resurrection 03 player id 0x1b telekinesis barrel 03 0x1c telekinesis monster 03 monster id 0x1d talk to entity 05 x y entity id.? 0x1e level was loaded 05 ?? ( <402 or >409 = startnewlvl) level loaded 0x1f portal loaded 03 player/portal number 0x20 Unused 01 0x21 Unused 01 0x22 Unused 01 0x23 monster location update Varies(26+) level data length unused //data monster id x y some player pos? //repeat 0x24 monster death 05 x y monster id 0x25 damage to monster 05 monster id damage amount 0x26 unknown(player death) 03 0x27 unknown 0x1E ?? seems unused 0x28 sent at item pickup 0x1E ? 0x29 unknown 05 0x2a sent at item pickup 05 0x2b door opened 03 object id. 0x2c door closed 03 object id. 0x2d action occured 03 object id 0x2e shrine 05 ? object id. 0x2f barrel killed 05 0x30 equip item 0x0B loc. equipped base item type item generation? item code id'd? 0x31 unequip item 02 location unequipped 0x32 player hit player 06 player id damage 0x33 character level update 03 level 0x34 items drop from chests etc. 16 0x35 player moved location 05 x y dungeon level 0x36 join game packet Varies same as 0x02 0x37 melee attack 03 x 0x38 Create Portal 09 x y dungeon level dungeon gfx special area? # 04 03 01=poison well 01 01 01= leoric 0x39 unknown 01 --------------------------------------------------------------------------------------------------------------------- 0x3A - 0x4B level data Varies(5+) length of data sent data length //data - encoded by engine.cpp? < FF or * 0x7F> < FF or * 0xC8> 0x4C terminate level data 05 00 data length - should be 00 //data - should be blank ---------------------------------------------------------------------------------------------------------------------------- 0x4d healother 03 player id 0x4e text chat Varies text 0x4f Set strength 03 str 0x50 Set magic 03 mag 0x51 Set dexterity 03 dex 0x52 Set vitality 03 vit 0x53 restart in town 01 0x54 firewall 09 x y spellid 0x55 unknown(item) 0x1e //can cause delta:1 0x56 unknown(item) 0x16 0x57 golem death 05 x y level occured 0x58 questing status 05 quest id. - 06=butcher, 0c=skel. king, 0f=laz, 05=D quest status? - incomplete quest=02, complete=03 ? 0x59 unknown 01 0x5a golem spawn 0x0A x y ? ?? dont seem to be used 0x5b unknown 02 0x5c mana shield graphic on 01 0x5d mana shield graphic off 01 //client packets 0x5e Set 'recieved from' 02 player id 0x5f unknown 06