Client Packets
This is a new table that steal information from individual packet pages.
Packet:0x0061Packet:0x0062Packet:0x0063Packet:0x0064Packet:0x0065Packet:0x0066Packet:0x0067Packet:0x0068Packet:0x0069Packet:0x006APacket:0x006BPacket:0x006CPacket:0x006DPacket:0x006EPacket:0x006FPacket:0x0070Packet:0x0071Packet:0x0072Packet:0x0073Packet:0x0078Packet:0x007BPacket:0x007CPacket:0x007DPacket:0x007EPacket:0x007FPacket:0x0080Packet:0x0081Packet:0x0085Packet:0x0086Packet:0x0087Packet:0x0088Packet:0x0089Packet:0x008APacket:0x008CPacket:0x008DPacket:0x008EPacket:0x0090Packet:0x0091Packet:0x0092Packet:0x0094Packet:0x0095Packet:0x0096Packet:0x0097Packet:0x0098Packet:0x0099Packet:0x009APacket:0x009BPacket:0x009CPacket:0x009DPacket:0x009EPacket:0x009FPacket:0x00A0Packet:0x00A1Packet:0x00A2Packet:0x00A4Packet:0x00A6Packet:0x00A7Packet:0x00A8Packet:0x00A9Packet:0x00AAPacket:0x00ABPacket:0x00ACPacket:0x00AFPacket:0x00B0Packet:0x00B1Packet:0x00B2Packet:0x00B3Packet:0x00B4Packet:0x00B5Packet:0x00B6Packet:0x00B7Packet:0x00B8Packet:0x00B9Packet:0x00BBPacket:0x00BCPacket:0x00BDPacket:0x00BEPacket:0x00BFPacket:0x00C0Packet:0x00C1Packet:0x00C2Packet:0x00C3Packet:0x00C4Packet:0x00C5Packet:0x00C6Packet:0x00C7Packet:0x00C8Packet:0x00C9Packet:0x00CAPacket:0x00CBPacket:0x00CCPacket:0x00CDPacket:0x00E4Packet:0x00E5Packet:0x00E6Packet:0x00E7Packet:0x00E8Packet:0x00E9Packet:0x00EBPacket:0x00ECPacket:0x00EDPacket:0x00EEPacket:0x00EFPacket:0x00F0Packet:0x00F2Packet:0x00F3Packet:0x00F4Packet:0x00F5Packet:0x00F6Packet:0x00F7Packet:0x00F8Packet:0x00F9Packet:0x00FAPacket:0x00FBPacket:0x00FCPacket:0x00FDPacket:0x00FEPacket:0x00FFPacket:0x0100Packet:0x0101Packet:0x0102Packet:0x0103Packet:0x0104Packet:0x0105Packet:0x0106Packet:0x0107Packet:0x0108Packet:0x0109Packet:0x010CPacket:0x010EPacket:0x010FPacket:0x0110Packet:0x0112Packet:0x0113Packet:0x0116Packet:0x0119Packet:0x011BPacket:0x0139Packet:0x013APacket:0x013BPacket:0x013CPacket:0x0141Packet:0x0142Packet:0x0143Packet:0x0146Packet:0x0148Packet:0x0149Packet:0x014CPacket:0x014DPacket:0x014EPacket:0x014FPacket:0x0151Packet:0x0152Packet:0x0153Packet:0x0154Packet:0x0155Packet:0x0156Packet:0x0159Packet:0x015APacket:0x015BPacket:0x015CPacket:0x015DPacket:0x015EPacket:0x0160Packet:0x0161Packet:0x0162Packet:0x0163Packet:0x0165Packet:0x0166Packet:0x0167Packet:0x0168Packet:0x0169Packet:0x016APacket:0x016BPacket:0x016CPacket:0x016DPacket:0x016EPacket:0x016FPacket:0x0170Packet:0x0171Packet:0x0172Packet:0x0173Packet:0x0174Packet:0x017EPacket:0x017FPacket:0x0180Packet:0x0181Packet:0x0183Packet:0x0184Packet:0x018APacket:0x018BPacket:0x0190Packet:0x0195Packet:0x0196Packet:0x019BPacket:0x019CPacket:0x019DPacket:0x01B1Packet:0x01B6Packet:0x01C8Packet:0x01D4Packet:0x01D5Packet:0x01D7Packet:0x01D8Packet:0x01D9Packet:0x01DAPacket:0x01DEPacket:0x01EEPacket:0x01F0Packet:0x020CPacket:0x7530Packet:0x7531Packet | Length | Name | Client #define | Sent and Parsed Locations |
---|
ManaPlus Packets
These packets were originally added by ManaPlus to support Evol.
Packet:0x0212Packet | Length | Name | Client #define | Sent and Parsed Locations |
---|
Used packets
packet | len | client define | sent location(s) | parse location |
---|---|---|---|---|
0x0061 | 50 | CMSG_CHAR_PASSWORD_CHANGE | src/net/tmwa/loginhandler.cpp:264 | src/char/char.c:3036 |
0x0062 | 3 | SMSG_CHAR_PASSWORD_RESPONSE | src/char/char.c:2368 | src/net/tmwa/loginhandler.cpp:71 |
0x0063 | -1 | SMSG_UPDATE_HOST | src/login/login.c:3732 | src/net/tmwa/loginhandler.cpp:103 |
0x0064 | 55 | (hard-coded) | src/net/tmwa/loginhandler.cpp:298 | src/login/login.c:3644 |
0x0065 | 17 | CMSG_CHAR_SERVER_CONNECT | src/net/tmwa/charserverhandler.cpp:340 | src/char/char.c:3049 |
0x0066 | 3 | CMSG_CHAR_SELECT | src/net/tmwa/charserverhandler.cpp:283 src/char/char.c:3424 |
src/char/char.c:3142 |
0x0067 | 37 | CMSG_CHAR_CREATE | src/net/tmwa/charserverhandler.cpp:291 | src/char/char.c:3312 |
0x0068 | 46 | CMSG_CHAR_DELETE | src/net/tmwa/charserverhandler.cpp:306 | src/char/char.c:3387 |
0x0069 | -1 | SMSG_LOGIN_DATA | src/login/login.c:3795 | src/net/tmwa/loginhandler.cpp:114 |
0x006A | 23 | SMSG_LOGIN_ERROR | src/login/login.c:3683 src/login/login.c:3833 |
src/net/tmwa/loginhandler.cpp:149 |
0x006B | -1 | SMSG_CHAR_LOGIN | src/char/char.c:1660 | src/net/tmwa/charserverhandler.cpp:101 |
0x006C | 3 | SMSG_CHAR_LOGIN_ERROR | src/char/char.c:1948 src/char/char.c:1970 src/char/char.c:3110 src/char/char.c:3133 |
src/net/tmwa/charserverhandler.cpp:75 |
0x006D | 108 | SMSG_CHAR_CREATE_SUCCEEDED | src/char/char.c:3325 | src/net/tmwa/charserverhandler.cpp:118 |
0x006E | 3 | SMSG_CHAR_CREATE_FAILED | src/char/char.c:3318 | src/net/tmwa/charserverhandler.cpp:137 |
0x006F | 2 | SMSG_CHAR_DELETE_SUCCEEDED | src/char/char.c:3496 | src/net/tmwa/charserverhandler.cpp:144 |
0x0070 | 3 | SMSG_CHAR_DELETE_FAILED | src/char/char.c:3156 src/char/char.c:3401 src/char/char.c:3432 src/char/char.c:3504 |
src/net/tmwa/charserverhandler.cpp:153 |
0x0071 | 28 | SMSG_CHAR_MAP_INFO | src/char/char.c:3272 | src/net/tmwa/charserverhandler.cpp:158 |
0x0072 | 19 | CMSG_MAP_SERVER_CONNECT | src/net/tmwa/gamehandler.cpp:124 | src/map/clif.c:6729 |
0x0073 | 11 | SMSG_MAP_LOGIN_SUCCESS | src/map/clif.c:609 | src/net/tmwa/gamehandler.cpp:67 |
0x0078 | 54 | SMSG_BEING_VISIBLE | src/map/clif.c:823 src/map/clif.c:1060 src/map/clif.c:1185 src/map/clif.c:1382 |
src/net/tmwa/beinghandler.cpp:121 |
0x007B | 60 | SMSG_BEING_MOVE | src/map/clif.c:912 src/map/clif.c:1122 |
src/net/tmwa/beinghandler.cpp:122 |
0x007C | 41 | SMSG_BEING_SPAWN | src/map/clif.c:1279 src/map/clif.c:1347 src/map/clif.c:1372 src/map/clif.c:1414 |
src/net/tmwa/beinghandler.cpp:239 |
0x007D | 2 | CMSG_MAP_LOADED | src/net/tmwa/gamehandler.cpp:152 | src/map/clif.c:6786 |
0x007E | 6 | CMSG_CLIENT_PING | src/net/tmwa/gamehandler.cpp:166 | src/map/clif.c:6942 |
0x007F | 6 | SMSG_SERVER_PING | src/map/clif.c:1445 | src/net/tmwa/gamehandler.cpp:81 |
0x0080 | 7 | SMSG_BEING_REMOVE | src/map/clif.c:65 src/map/clif.c:791 |
src/net/tmwa/beinghandler.cpp:273 |
0x0081 | 3 | SMSG_CONNECTION_PROBLEM | src/login/login.c:3700 src/login/login.c:3824 src/char/char.c:3264 src/map/clif.c:628 |
src/net/tmwa/generalhandler.cpp:122 |
0x0085 | 5 | CMSG_PLAYER_CHANGE_DEST | src/net/tmwa/playerhandler.cpp:621 | src/map/clif.c:6955 |
0x0086 | 16 | SMSG_BEING_MOVE2 | src/net/tmwa/beinghandler.cpp:246 | |
0x0087 | 12 | SMSG_WALK_RESPONSE | src/map/clif.c:1463 | src/net/tmwa/playerhandler.cpp:177 |
0x0088 | 10 | SMSG_PLAYER_STOP | src/map/clif.c:1590 | src/net/tmwa/beinghandler.cpp:630 |
0x0089 | 7 | CMSG_PLAYER_CHANGE_ACT CMSG_PLAYER_ATTACK |
src/net/tmwa/playerhandler.cpp:635 src/net/tmwa/playerhandler.cpp:566 |
src/map/clif.c:7341 |
0x008A | 29 | SMSG_BEING_ACTION | src/map/clif.c:3761 src/map/clif.c:6563 |
src/net/tmwa/beinghandler.cpp:328 |
0x008C | -1 | CMSG_CHAT_MESSAGE | src/net/tmwa/chathandler.cpp:199 | src/map/clif.c:7173 |
0x008D | -1 | SMSG_BEING_CHAT | src/map/clif.c:7209 src/map/clif.c:7236 |
src/net/tmwa/chathandler.cpp:113 |
0x008E | -1 | SMSG_PLAYER_CHAT | src/map/clif.c:4603 src/map/clif.c:7219 |
src/net/tmwa/chathandler.cpp:158 |
0x0090 | 7 | CMSG_NPC_TALK | src/net/tmwa/npchandler.cpp:133 | src/map/clif.c:7738 |
0x0091 | 22 | SMSG_PLAYER_WARP | src/map/clif.c:1545 | src/net/tmwa/playerhandler.cpp:185 |
0x0092 | 28 | SMSG_CHANGE_MAP_SERVER | src/map/clif.c:1569 | src/net/tmwa/charserverhandler.cpp:179 |
0x0094 | 6 | (hard-coded) | src/net/tmwa/beinghandler.cpp:92 | src/map/clif.c:7047 |
0x0095 | 30 | SMSG_BEING_NAME_RESPONSE | src/map/clif.c:7057 | src/net/tmwa/beinghandler.cpp:484 |
0x0096 | -1 | CMSG_CHAT_WHISPER | src/net/tmwa/chathandler.cpp:215 | src/map/clif.c:7459 |
0x0097 | -1 | SMSG_WHISPER | src/map/clif.c:4771 | src/net/tmwa/chathandler.cpp:91 |
0x0098 | 3 | SMSG_WHISPER_RESPONSE | src/map/clif.c:4785 | src/net/tmwa/chathandler.cpp:72 |
0x0099 | -1 | CMSG_ADMIN_ANNOUNCE CMSG_CHAT_ANNOUNCE |
src/net/tmwa/adminhandler.cpp:84 | src/map/clif.c:7549 |
0x009A | -1 | SMSG_GM_CHAT | src/map/clif.c:4623 src/map/clif.c:8359 |
src/net/tmwa/chathandler.cpp:159 |
0x009B | 5 | CMSG_PLAYER_CHANGE_DIR | src/net/tmwa/playerhandler.cpp:614 | src/map/clif.c:7278 |
0x009C | 9 | SMSG_BEING_CHANGE_DIRECTION | src/map/clif.c:7293 | src/net/tmwa/beinghandler.cpp:499 |
0x009D | 17 | SMSG_ITEM_VISIBLE | src/map/clif.c:3815 | src/net/tmwa/itemhandler.cpp:47 |
0x009E | 17 | SMSG_ITEM_DROPPED | src/map/clif.c:671 | src/net/tmwa/itemhandler.cpp:48 |
0x009F | 6 | CMSG_ITEM_PICKUP | src/net/tmwa/playerhandler.cpp:607 | src/map/clif.c:7573 |
0x00A0 | 23 | SMSG_PLAYER_INVENTORY_ADD | src/map/clif.c:1855 src/map/clif.c:1876 |
src/net/tmwa/inventoryhandler.cpp:218 |
0x00A1 | 6 | SMSG_ITEM_REMOVE | src/map/clif.c:715 | src/net/tmwa/itemhandler.cpp:61 |
0x00A2 | 6 | CMSG_PLAYER_INVENTORY_DROP | src/net/tmwa/inventoryhandler.cpp:473 | src/map/clif.c:7613 |
0x00A4 | -1 | SMSG_PLAYER_EQUIPMENT | src/map/clif.c:2017 | src/net/tmwa/inventoryhandler.cpp:376 |
0x00A6 | -1 | SMSG_PLAYER_STORAGE_EQUIP | src/map/clif.c:2144 src/map/clif.c:2273 |
src/net/tmwa/inventoryhandler.cpp:187 |
0x00A7 | 8 | CMSG_PLAYER_INVENTORY_USE | src/net/tmwa/inventoryhandler.cpp:465 | src/map/clif.c:7640 |
0x00A8 | 7 | SMSG_ITEM_USE_RESPONSE | src/map/clif.c:2935 | src/net/tmwa/inventoryhandler.cpp:284 |
0x00A9 | 6 | CMSG_PLAYER_EQUIP | src/net/tmwa/inventoryhandler.cpp:446 | src/map/clif.c:7666 |
0x00AA | 7 | SMSG_PLAYER_EQUIP | src/map/clif.c:2819 | src/net/tmwa/inventoryhandler.cpp:401 |
0x00AB | 4 | CMSG_PLAYER_UNEQUIP | src/net/tmwa/inventoryhandler.cpp:456 | src/map/clif.c:7706 |
0x00AC | 7 | SMSG_PLAYER_UNEQUIP | src/map/clif.c:2839 | src/net/tmwa/inventoryhandler.cpp:412 |
0x00AF | 6 | SMSG_PLAYER_INVENTORY_REMOVE | src/map/clif.c:1943 | src/net/tmwa/inventoryhandler.cpp:253 |
0x00B0 | 8 | SMSG_PLAYER_STAT_UPDATE_1 | src/map/clif.c:2350 src/map/clif.c:2357 |
src/net/tmwa/playerhandler.cpp:234 |
0x00B1 | 8 | SMSG_PLAYER_STAT_UPDATE_2 | src/map/clif.c:2437 src/map/clif.c:2443 src/map/clif.c:2447 src/map/clif.c:2451 src/map/clif.c:2455 |
src/net/tmwa/playerhandler.cpp:333 |
0x00B2 | 3 | CMSG_PLAYER_RESTART | src/net/tmwa/charserverhandler.cpp:314 src/net/tmwa/playerhandler.cpp:642 |
src/map/clif.c:7411 |
0x00B3 | 3 | SMSG_CHAR_SWITCH_RESPONSE | src/map/clif.c:653 | src/net/tmwa/gamehandler.cpp:91 |
0x00B4 | -1 | SMSG_NPC_MESSAGE | src/map/clif.c:1696 | src/net/tmwa/npchandler.cpp:102 |
0x00B5 | 6 | SMSG_NPC_NEXT | src/map/clif.c:1716 | src/net/tmwa/npchandler.cpp:111 |
0x00B6 | 6 | SMSG_NPC_CLOSE | src/map/clif.c:1734 | src/net/tmwa/npchandler.cpp:106 |
0x00B7 | -1 | SMSG_NPC_CHOICE | src/map/clif.c:1752 | src/net/tmwa/npchandler.cpp:97 |
0x00B8 | 7 | CMSG_NPC_LIST_CHOICE | src/net/tmwa/npchandler.cpp:159 | src/map/clif.c:8194 |
0x00B9 | 6 | CMSG_NPC_NEXT_REQUEST | src/net/tmwa/npchandler.cpp:140 | src/map/clif.c:8206 |
0x00BB | 5 | CMSG_STAT_UPDATE_REQUEST | src/net/tmwa/playerhandler.cpp:581 | src/map/clif.c:7993 |
0x00BC | 6 | SMSG_PLAYER_STAT_UPDATE_4 | src/map/clif.c:2799 | src/net/tmwa/playerhandler.cpp:381 |
0x00BD | 44 | SMSG_PLAYER_STAT_UPDATE_5 | src/map/clif.c:2702 | src/net/tmwa/playerhandler.cpp:401 |
0x00BE | 5 | SMSG_PLAYER_STAT_UPDATE_6 | src/map/clif.c:2466 | src/net/tmwa/playerhandler.cpp:521 |
0x00BF | 3 | CMSG_PLAYER_EMOTE | src/net/tmwa/playerhandler.cpp:573 | src/map/clif.c:7308 |
0x00C0 | 7 | SMSG_BEING_EMOTION | src/map/clif.c:6469 src/map/clif.c:6488 src/map/clif.c:7317 |
src/net/tmwa/beinghandler.cpp:385 |
0x00C1 | 2 | CMSG_WHO_REQUEST CMSG_CHAT_WHO |
src/map/chathandler.cpp:264 | src/map/clif.c:7330 |
0x00C2 | 6 | SMSG_WHO_ANSWER | src/map/clif.c:7332 | src/net/tmwa/gamehandler.cpp:86 |
0x00C3 | 8 | SMSG_BEING_CHANGE_LOOKS | src/net/tmwa/beinghandler.cpp:400 | |
0x00C4 | 6 | SMSG_NPC_BUY_SELL_CHOICE | src/map/clif.c:1611 | src/net/tmwa/buysellhandler.cpp:64 |
0x00C5 | 7 | CMSG_NPC_BUY_SELL_REQUEST | src/net/tmwa/npchandler.cpp:193 src/net/tmwa/npchandler.cpp:200 |
src/map/clif.c:7756 |
0x00C6 | -1 | SMSG_NPC_BUY | src/map/clif.c:1631 | src/net/tmwa/buysellhandler.cpp:72 |
0x00C7 | -1 | SMSG_NPC_SELL | src/map/clif.c:1663 | src/net/tmwa/buysellhandler.cpp:88 |
0x00C8 | -1 | CMSG_NPC_BUY_REQUEST | src/net/tmwa/npchandler.cpp:207 | src/map/clif.c:7765 |
0x00C9 | -1 | CMSG_NPC_SELL_REQUEST | src/net/tmwa/npchandler.cpp:215 | src/map/clif.c:7784 |
0x00CA | 3 | SMSG_NPC_BUY_RESPONSE | src/map/clif.c:7775 | src/net/tmwa/buysellhandler.cpp:114 |
0x00CB | 3 | SMSG_NPC_SELL_RESPONSE | src/map/clif.c:7794 | src/net/tmwa/buysellhandler.cpp:124 |
0x00CC | 6 | CMSG_ADMIN_KICK | src/net/tmwa/adminhandler.cpp:104 | src/map/clif.c:8913 |
0x00CD | 6 | SMSG_ADMIN_KICK_ACK | src/map/clif.c:6605 | src/net/tmwa/adminhandler.cpp:62 |
0x00E4 | 6 | CMSG_TRADE_REQUEST | src/net/tmwa/tradehandler.cpp:241 | src/map/clif.c:7859 |
0x00E5 | 26 | SMSG_TRADE_REQUEST | src/map/clif.c:3180 | src/net/tmwa/tradehandler.cpp:86 |
0x00E6 | 3 | CMSG_TRADE_RESPONSE | src/net/tmwa/tradehandler.cpp:250 | src/map/clif.c:7876 |
0x00E7 | 3 | SMSG_TRADE_RESPONSE | src/map/clif.c:3198 | src/net/tmwa/tradehandler.cpp:120 |
0x00E8 | 8 | CMSG_TRADE_ITEM_ADD_REQUEST | src/net/tmwa/tradehandler.cpp:256 src/net/tmwa/tradehandler.cpp:268 |
src/map/clif.c:7887 |
0x00E9 | 19 | SMSG_TRADE_ITEM_ADD | src/map/clif.c:3218 | src/net/tmwa/tradehandler.cpp:159 |
0x00EB | 2 | CMSG_TRADE_ADD_COMPLETE | src/net/tmwa/tradehandler.cpp:275 | src/map/clif.c:7898 |
0x00EC | 3 | SMSG_TRADE_OK | src/map/clif.c:3320 | src/net/tmwa/tradehandler.cpp:218 |
0x00ED | 2 | CMSG_TRADE_CANCEL_REQUEST | src/net/tmwa/tradehandler.cpp:285 | src/map/clif.c:7907 |
0x00EE | 2 | SMSG_TRADE_CANCEL | src/map/clif.c:3338 | src/net/tmwa/tradehandler.cpp:223 |
0x00EF | 2 | CMSG_TRADE_OK | src/net/tmwa/tradehandler.cpp:280 | src/map/clif.c:7916 |
0x00F0 | 3 | SMSG_TRADE_COMPLETE | src/map/clif.c:3355 | src/net/tmwa/tradehandler.cpp:230 |
0x00F2 | 6 | SMSG_PLAYER_STORAGE_STATUS | src/map/clif.c:3375 src/map/clif.c:3459 |
src/net/tmwa/inventoryhandler.cpp:306 |
0x00F3 | 8 | CMSG_MOVE_TO_STORAGE | src/net/tmwa/inventoryhandler.cpp:508 | src/map/clif.c:8370 |
0x00F4 | 21 | SMSG_PLAYER_STORAGE_ADD | src/map/clif.c:3396 src/map/clif.c:3481 |
src/net/tmwa/inventoryhandler.cpp:331 |
0x00F5 | 8 | CSMG_MOVE_FROM_STORAGE | src/net/tmwa/inventoryhandler.cpp:514 | src/map/clif.c:8393 |
0x00F6 | 8 | SMSG_PLAYER_STORAGE_REMOVE | src/map/clif.c:3543 | src/net/tmwa/inventoryhandler.cpp:353 |
0x00F7 | 2 | CMSG_CLOSE_STORAGE | src/net/tmwa/inventoryhandler.cpp:500 | src/map/clif.c:8452 |
0x00F8 | 2 | SMSG_PLAYER_STORAGE_CLOSE | src/map/clif.c:3562 | src/net/tmwa/inventoryhandler.cpp:365 |
0x00F9 | 26 | CMSG_PARTY_CREATE | src/net/tmwa/partyhandler.cpp:313 | src/map/clif.c:8469 |
0x00FA | 3 | SMSG_PARTY_CREATE | src/map/clif.c:5231 | src/net/tmwa/partyhandler.cpp:79 |
0x00FB | -1 | SMSG_PARTY_INFO | src/map/clif.c:5249 | src/net/tmwa/partyhandler.cpp:88 |
0x00FC | 6 | CMSG_PARTY_INVITE | src/net/tmwa/partyhandler.cpp:324 | src/map/clif.c:8510 |
0x00FD | 27 | SMSG_PARTY_INVITE_RESPONSE | src/map/clif.c:5327 | src/net/tmwa/partyhandler.cpp:112 |
0x00FE | 30 | SMSG_PARTY_INVITED | src/map/clif.c:5299 | src/net/tmwa/partyhandler.cpp:139 |
0x00FF | 10 | CMSG_PARTY_INVITED | src/net/tmwa/partyhandler.cpp:352 | src/map/clif.c:8522 |
0x0100 | 2 | CMSG_PARTY_LEAVE | src/net/tmwa/partyhandler.cpp:359 | src/map/clif.c:8540 |
0x0101 | 6 | SMSG_PARTY_SETTINGS | src/map/clif.c:5358 | src/net/tmwa/partyhandler.cpp:157 |
0x0102 | 6 | CMSG_PARTY_SETTINGS | src/net/tmwa/partyhandler.cpp:402 src/net/tmwa/partyhandler.cpp:412 |
src/map/clif.c:8558 |
0x0103 | 30 | CMSG_PARTY_KICK | src/net/tmwa/partyhandler.cpp:364 src/net/tmwa/partyhandler.cpp:379 |
src/map/clif.c:8549 |
0x0104 | 79 | SMSG_PARTY_MOVE | src/map/clif.c:5485 | src/net/tmwa/partyhandler.cpp:220 |
0x0105 | 31 | SMSG_PARTY_LEAVE | src/map/clif.c:5383 | src/net/tmwa/partyhandler.cpp:232 |
0x0106 | 10 | SMSG_PARTY_UPDATE_HP | src/map/clif.c:5463 | src/net/tmwa/partyhandler.cpp:263 |
0x0107 | 10 | SMSG_PARTY_UPDATE_COORDS | src/map/clif.c:5443 | src/net/tmwa/partyhandler.cpp:283 |
0x0108 | -1 | CMSG_PARTY_MESSAGE | src/net/tmwa/partyhandler.cpp:386 | src/map/clif.c:8571 |
0x0109 | -1 | SMSG_PARTY_MESSAGE | src/map/clif.c:5424 | src/net/tmwa/partyhandler.cpp:290 |
0x010C | 6 | SMSG_MVP | src/map/clif.c:5708 | src/net/tmwa/chathandler.cpp:187 |
0x010E | 11 | SMSG_PLAYER_SKILL_UP SMSG_GUILD_SKILL_UP |
src/map/clif.c:4186 src/map/clif.c:6345 |
src/net/tmwa/specialhandler.cpp:115 src/net/tmwa/guildhandler.cpp:253 |
0x010F | -1 | SMSG_PLAYER_SKILLS | src/map/clif.c:4145 | src/net/tmwa/specialhandler.cpp:93 |
0x0110 | 10 | SMSG_SKILL_FAILED | src/map/clif.c:4259 | src/net/tmwa/specialhandler.cpp:129 |
0x0112 | 4 | CMSG_SKILL_LEVELUP_REQUEST | src/net/tmwa/playerhandler.cpp:597 | src/map/clif.c:8002 |
0x0113 | 10 | CMSG_SKILL_USE_BEING | src/net/tmwa/specialhandler.cpp:234 | src/map/clif.c:8011 |
0x0116 | 10 | CMSG_SKILL_USE_POSITION | src/net/tmwa/specialhandler.cpp:242 | src/map/clif.c:8088 |
0x0119 | 13 | SMSG_PLAYER_STATUS_CHANGE | src/map/clif.c:1268 src/map/clif.c:2885 |
src/net/tmwa/beinghandler.cpp:671 |
0x011B | 20 | CMSG_SKILL_USE_MAP | src/net/tmwa/specialhandler.cpp:251 | src/map/clif.c:8158 |
0x0139 | 16 | SMSG_PLAYER_MOVE_TO_ATTACK | src/map/clif.c:5510 | src/net/tmwa/beinghandler.cpp:662 |
0x013A | 4 | SMSG_PLAYER_ATTACK_RANGE | src/map/clif.c:2474 | src/net/tmwa/inventoryhandler.cpp:423 |
0x013B | 4 | SMSG_PLAYER_ARROW_MESSAGE | src/map/clif.c:2780 | src/net/tmwa/playerhandler.cpp:545 |
0x013C | 4 | SMSG_PLAYER_ARROW_EQUIP | src/map/clif.c:2761 | src/net/tmwa/inventoryhandler.cpp:427 |
0x0141 | 14 | SMSG_PLAYER_STAT_UPDATE_3 | src/map/clif.c:2482 src/map/clif.c:2489 src/map/clif.c:2496 src/map/clif.c:2503 src/map/clif.c:2510 src/map/clif.c:2517 |
src/net/tmwa/playerhandler.cpp:370 |
0x0142 | 6 | SMSG_NPC_INT_INPUT | src/map/clif.c:1772 | src/net/tmwa/npchandler.cpp:116 |
0x0143 | 10 | CMSG_NPC_INT_RESPONSE | src/net/tmwa/npchandler.cpp:166 | src/map/clif.c:8215 |
0x0146 | 6 | CMSG_NPC_CLOSE | src/net/tmwa/npchandler.cpp:146 | src/map/clif.c:8265 |
0x0148 | 8 | SMSG_BEING_RESURRECT | src/map/clif.c:4667 | src/net/tmwa/beinghandler.cpp:293 |
0x0149 | 9 | CMSG_ADMIN_MUTE | src/net/tmwa/adminhandler.cpp:137 | src/map/clif.c:9025 |
0x014C | -1 | SMSG_GUILD_ALIANCE_INFO | src/map/clif.c:5962 | src/net/tmwa/guildhandler.cpp:157 |
0x014D | 2 | CMSG_GUILD_CHECK_MASTER | src/map/clif.c:8661 | |
0x014E | 6 | SMSG_GUILD_MASTER_OR_MEMBER | src/map/clif.c:5842 | src/net/tmwa/guildhandler.cpp:134 |
0x014F | 6 | CMSG_GUILD_REQUEST_INFO | src/net/tmwa/guildhandler.cpp:457 | src/map/clif.c:8670 |
0x0151 | 6 | CMSG_GUILD_REQUEST_EMBLEM | src/map/clif.c:8760 | |
0x0152 | -1 | SMSG_GUILD_EMBLEM | src/map/clif.c:6135 | src/net/tmwa/guildhandler.cpp:243 |
0x0153 | -1 | CMSG_GUILD_CHANGE_EMBLEM | src/map/clif.c:8771 | |
0x0154 | -1 | SMSG_GUILD_MEMBER_LIST | src/map/clif.c:5996 | src/net/tmwa/guildhandler.cpp:171 |
0x0155 | -1 | CMSG_GUILD_CHANGE_MEMBER_POS | src/map/clif.c:8731 | |
0x0156 | -1 | SMSG_GUILD_MEMBER_POS_CHANGE | src/map/clif.c:6110 | src/net/tmwa/guildhandler.cpp:236 |
0x0159 | 54 | CMSG_GUILD_LEAVE | src/net/tmwa/guildhandler.cpp:425 | src/map/clif.c:8807 |
0x015A | 66 | SMSG_GUILD_LEAVE | src/map/clif.c:6252 | src/net/tmwa/guildhandler.cpp:322 |
0x015B | 54 | CMSG_GUILD_EXPULSION | src/net/tmwa/guildhandler.cpp:434 | src/map/clif.c:8817 |
0x015C | 90 | SMSG_GUILD_EXPULSION | src/map/clif.c:6270 | src/net/tmwa/guildhandler.cpp:327 |
0x015D | 42 | CMSG_GUILD_BREAK | src/map/clif.c:8907 | |
0x015E | 6 | SMSG_GUILD_BROKEN | src/map/clif.c:6453 | src/net/tmwa/guildhandler.cpp:384 |
0x0160 | -1 | SMSG_GUILD_POS_INFO_LIST | src/map/clif.c:6062 | src/net/tmwa/guildhandler.cpp:212 |
0x0161 | -1 | CMSG_GUILD_CHANGE_POS_INFO | src/map/clif.c:8704 | |
0x0162 | -1 | SMSG_GUILD_SKILL_INFO | src/map/clif.c:6160 | src/net/tmwa/guildhandler.cpp:253 |
0x0163 | -1 | SMSG_GUILD_EXPULSION_LIST | src/map/clif.c:6294 | src/net/tmwa/guildhandler.cpp:333 |
0x0165 | 30 | CMSG_GUILD_CREATE | src/net/tmwa/guildhandler.cpp:396 | src/map/clif.c:8652 |
0x0166 | -1 | SMSG_GUILD_POS_NAME_LIST | src/map/clif.c:6036 | src/net/tmwa/guildhandler.cpp:199 |
0x0167 | 3 | SMSG_GUILD_CREATE_RESPONSE | src/map/clif.c:5771 | src/net/tmwa/guildhandler.cpp:91 |
0x0168 | 14 | CMSG_GUILD_INVITE | src/net/tmwa/guildhandler.cpp:408 | src/map/clif.c:8789 |
0x0169 | 3 | SMSG_GUILD_INVITE_ACK | src/map/clif.c:6235 | src/net/tmwa/guildhandler.cpp:288 |
0x016A | 30 | SMSG_GUILD_INVITE | src/map/clif.c:6217 | src/net/tmwa/guildhandler.cpp:279 |
0x016B | 10 | CMSG_GUILD_INVITE_REPLY | src/net/tmwa/guildhandler.cpp:416 | src/map/clif.c:8798 |
0x016C | 43 | SMSG_GUILD_POSITION_INFO | src/map/clif.c:5792 | src/net/tmwa/guildhandler.cpp:114 |
0x016D | 14 | SMSG_GUILD_MEMBER_LOGIN | src/map/clif.c:5811 | src/net/tmwa/guildhandler.cpp:128 |
0x016E | 186 | CMSG_GUILD_CHANGE_NOTICE | src/map/clif.c:8780 | |
0x016F | 182 | SMSG_GUILD_NOTICE | src/map/clif.c:6198 | src/net/tmwa/guildhandler.cpp:274 |
0x0170 | 14 | CMSG_GUILD_ALLIANCE_REQUEST | src/map/clif.c:8871 | |
0x0171 | 30 | SMSG_GUILD_REQ_ALLIANCE | src/map/clif.c:6367 | src/net/tmwa/guildhandler.cpp:366 |
0x0172 | 10 | CMSG_GUILD_ALLIANCE_REPLY | src/map/clif.c:8880 | |
0x0173 | 3 | SMSG_GUILD_REQ_ALLIANCE_ACK | src/map/clif.c:6385 | src/net/tmwa/guildhandler.cpp:371 |
0x0174 | -1 | SMSG_GUILD_POSITION_CHANGED | src/map/clif.c:6087 | src/net/tmwa/guildhandler.cpp:227 |
0x017E | -1 | CMSG_GUILD_MESSAGE | src/net/tmwa/guildhandler.cpp:443 | src/map/clif.c:8831 |
0x017F | -1 | SMSG_GUILD_MESSAGE | src/map/clif.c:6323 src/map/clif.c:6581 |
src/net/tmwa/guildhandler.cpp:347 |
0x0180 | 6 | CMSG_GUILD_OPPOSITION | src/map/clif.c:8898 | |
0x0181 | 3 | SMSG_GUILD_OPPOSITION_ACK | src/map/clif.c:6421 | src/net/tmwa/guildhandler.cpp:380 |
0x0183 | 10 | CMSG_GUILD_ALLIANCE_DELETE | src/map/clif.c:8889 | |
0x0184 | 10 | SMSG_GUILD_DEL_ALLIANCE | src/map/clif.c:6403 | src/net/tmwa/guildhandler.cpp:375 |
0x018A | 4 | CMSG_CLIENT_QUIT | src/net/tmwa/gamehandler.cpp:161 | src/map/clif.c:6611 |
0x018B | 4 | SMSG_MAP_QUIT_RESPONSE | src/map/clif.c:7012 src/map/clif.c:7440 |
src/net/tmwa/gamehandler.cpp:98 |
0x0190 | 90 | CMSG_SKILL_USE_POSITION_MORE | src/map/clif.c:8088 | |
0x0195 | 102 | SMSG_PLAYER_GUILD_PARTY_INFO | src/map/clif.c:7107 | src/net/tmwa/beinghandler.cpp:490 |
0x0196 | 9 | SMSG_BEING_STATUS_CHANGE | src/map/clif.c:4585 | src/net/tmwa/beinghandler.cpp:688 |
0x019B | 10 | SMSG_BEING_SELFEFFECT | src/map/clif.c:2858 src/map/clif.c:6696 |
src/net/tmwa/beinghandler.cpp:372 |
0x019C | 4 | CMSG_ADMIN_LOCAL_ANNOUNCE | src/net/tmwa/adminhandler.cpp:91 | src/map/clif.c:8350 |
0x019D | 6 | CMSG_ADMIN_HIDE | src/net/tmwa/adminhandler.cpp:98 | src/map/clif.c:8996 |
0x01B1 | 7 | SMSG_TRADE_ITEM_ADD_RESPONSE | src/map/clif.c:3299 | src/net/tmwa/tradehandler.cpp:176 |
0x01B6 | 114 | SMSG_GUILD_BASIC_INFO | src/map/clif.c:5865 | src/net/tmwa/guildhandler.cpp:138 |
0x01C8 | 13 | SMSG_PLAYER_INVENTORY_USE | src/map/clif.c:2945 | src/net/tmwa/inventoryhandler.cpp:265 |
0x01D4 | 6 | SMSG_NPC_STR_INPUT | src/map/clif.c:1790 | src/net/tmwa/npchandler.cpp:121 |
0x01D5 | 8 | CMSG_NPC_STR_RESPONSE | src/net/tmwa/npchandler.cpp:173 | src/map/clif.c:8234 |
0x01D7 | 11 | SMSG_BEING_CHANGE_LOOKS2 | src/map/clif.c:2608 src/map/clif.c:2675 |
src/net/tmwa/beinghandler.cpp:401 |
0x01D8 | 54 | SMSG_PLAYER_UPDATE_1 | src/map/clif.c:845 | src/net/tmwa/beinghandler.cpp:511 |
0x01D9 | 53 | SMSG_PLAYER_UPDATE_2 | src/map/clif.c:1292 | src/net/tmwa/beinghandler.cpp:512 |
0x01DA | 60 | SMSG_PLAYER_MOVE | src/map/clif.c:934 | src/net/tmwa/beinghandler.cpp:513 |
0x01DE | 33 | SMSG_SKILL_DAMAGE | src/map/clif.c:4298 | src/net/tmwa/beinghandler.cpp:311 |
0x01EE | -1 | SMSG_PLAYER_INVENTORY | src/map/clif.c:1965 | src/net/tmwa/inventoryhandler.cpp:134 |
0x01F0 | -1 | SMSG_PLAYER_STORAGE_ITEMS | src/map/clif.c:2097 src/map/clif.c:2225 |
src/net/tmwa/inventoryhandler.cpp:135 |
0x020C | 10 | SMSG_ADMIN_IP | src/map/clif.c:7120 | src/net/tmwa/adminhandler.cpp:69 |
0x7530 | 2 | CMSG_SERVER_VERSION_REQUEST | src/net/tmwa/loginhandler.cpp:220 | src/login/login.c:2257 src/login/login.c:4011 src/char/char.c:3568 src/map/clif.c:10174 |
0x7531 | 10 | SMSG_SERVER_VERSION_RESPONSE | src/login/login.c:2260 src/login/login.c:4014 src/char/char.c:3569 src/map/clif.c:10175 |
src/net/tmwa/loginhandler.cpp:197 |
Free Packets
These are packets that are not parsed or sent by the client, but have a known length, so they can be used by future servers and the client will just ignore them, not crash.
packet | len | notes |
---|---|---|
0x0000 | 10 | |
0x0074 | 3 | |
0x0075 | -1 | |
0x0076 | 9 | |
0x0077 | 5 | |
0x0079 | 53 | |
0x007A | 58 | |
0x0082 | 2 | |
0x0083 | 2 | |
0x0084 | 2 | |
0x008B | 23 | |
0x0093 | 2 | |
0x00A3 | -1 | |
0x00A5 | -1 | |
0x00AE | -1 | |
0x00BA | 2 | |
0x00CE | 2 | |
0x00CF | 27 | clif_parse_PMIgnore |
0x00D0 | 3 | clif_parse_PMIgnoreAll, used by ManaPlus |
0x00D1 | 4 | |
0x00D2 | 4 | used by ManaPlus (sent from atcommand.cpp) |
0x00D3 | 2 | |
0x00D4 | -1 | |
0x00D5 | -1 | clif_parse_CreateChatRoom |
0x00D6 | 3 | |
0x00D7 | -1 | |
0x00D8 | 6 | |
0x00D9 | 14 | clif_parse_ChatAddMember |
0x00DA | 3 | |
0x00DB | -1 | |
0x00DC | 28 | |
0x00DD | 29 | |
0x00DE | -1 | clif_parse_ChatRoomStatusChange |
0x00DF | -1 | |
0x00E0 | 30 | clif_parse_ChangeChatOwner |
0x00E1 | 30 | |
0x00E2 | 26 | clif_parse_KickFromChat |
0x00E3 | 2 | clif_parse_ChatLeave |
0x00EA | 5 | |
0x00F1 | 2 | |
0x010A | 4 | |
0x010B | 6 | |
0x010D | 2 | clif_parse_RequestMemo |
0x0111 | 39 | |
0x0114 | 31 | |
0x0115 | 35 | |
0x0117 | 18 | |
0x0118 | 2 | clif_parse_StopAttack, used by ManaPlus |
0x011A | 15 | SMSG_SKILL_NO_DAMAGE, used by ManaPlus |
0x011C | 68 | |
0x011D | 2 | clif_parse_RequestMemo |
0x011E | 3 | |
0x011F | 16 | |
0x0120 | 6 | |
0x0121 | 14 | |
0x0122 | -1 | |
0x0123 | -1 | |
0x0124 | 21 | |
0x0125 | 8 | |
0x0126 | 8 | clif_parse_PutItemToCart |
0x0127 | 8 | clif_parse_GetItemFromCart |
0x0128 | 8 | clif_parse_MoveFromKafraToCart |
0x0129 | 8 | clif_parse_MoveToKafraFromCart |
0x012A | 2 | clif_parse_RemoveOption |
0x012B | 2 | |
0x012C | 3 | |
0x012D | 4 | |
0x012E | 2 | |
0x012F | -1 | |
0x0130 | 6 | |
0x0131 | 86 | |
0x0132 | 6 | |
0x0133 | -1 | |
0x0134 | -1 | |
0x0135 | 7 | |
0x0136 | -1 | |
0x0137 | 6 | |
0x0138 | 3 | |
0x013D | 6 | |
0x013E | 24 | SMSG_SKILL_CASTING, used by ManaPlus |
0x013F | 26 | clif_parse_GM_Monster_Item |
0x0140 | 22 | clif_parse_MapMove |
0x0144 | 23 | |
0x0145 | 19 | |
0x0147 | 39 | |
0x014A | 6 | |
0x014B | 27 | |
0x0150 | 110 | |
0x0157 | 6 | |
0x0158 | -1 | |
0x015F | 42 | |
0x0164 | -1 | |
0x0175 | 6 | |
0x0176 | 106 | |
0x0177 | -1 | |
0x0178 | 4 | clif_parse_ItemIdentify |
0x0179 | 5 | |
0x017A | 4 | clif_parse_UseCard |
0x017B | -1 | |
0x017C | 6 | clif_parse_InsertCard |
0x017D | 7 | |
0x0182 | 106 | |
0x0185 | 34 | |
0x0187 | 6 | src/char/char.c:3562 |
0x0188 | 8 | |
0x0189 | 4 | |
0x018C | 29 | |
0x018D | -1 | |
0x018E | 10 | |
0x018F | 6 | |
0x0191 | 86 | |
0x0192 | 24 | |
0x0193 | 6 | clif_parse_SolveCharName |
0x0194 | 30 | |
0x0197 | 4 | clif_parse_ResetChar |
0x0198 | 8 | |
0x0199 | 4 | SMSG_PVP_MAP_MODE, used by ManaPlus |
0x019A | 14 | SMSG_PVP_SET, used by ManaPlus |
0x019E | 2 | |
0x019F | 6 | |
0x01A0 | 3 | |
0x01A1 | 3 | |
0x01A2 | 35 | |
0x01A3 | 5 | |
0x01A4 | 11 | |
0x01A5 | 26 | |
0x01A6 | -1 | |
0x01A7 | 4 | |
0x01A8 | 4 | |
0x01A9 | 6 | |
0x01AA | 10 | |
0x01AB | 12 | |
0x01AC | 6 | |
0x01AD | -1 | |
0x01AE | 4 | |
0x01AF | 4 | clif_parse_ChangeCart |
0x01B0 | 11 | |
0x01B2 | -1 | |
0x01B3 | 67 | |
0x01B4 | 12 | |
0x01B5 | 18 | |
0x01B7 | 6 | |
0x01B8 | 3 | |
0x01B9 | 6 | SMSG_SKILL_CAST_CANCEL, used by ManaPlus |
0x01BA | 26 | clif_parse_Shift |
0x01BB | 26 | clif_parse_Shift |
0x01BC | 26 | clif_parse_Recall |
0x01BD | 26 | clif_parse_Recall |
0x01BE | 2 | |
0x01BF | 3 | |
0x01C0 | 2 | |
0x01C1 | 14 | |
0x01C2 | 10 | |
0x01C3 | -1 | |
0x01C4 | 22 | |
0x01C5 | 22 | |
0x01C6 | 4 | |
0x01C7 | 2 | |
0x01C9 | 97 | |
0x01CB | 9 | |
0x01CC | 9 | |
0x01CD | 29 | |
0x01CE | 6 | clif_parse_AutoSpell |
0x01CF | 28 | |
0x01D0 | 8 | |
0x01D1 | 14 | |
0x01D2 | 10 | |
0x01D3 | 35 | |
0x01D6 | 4 | |
0x01DB | 2 | src/login/login.c:3861 |
0x01DC | -1 | src/login/login.c:3898 |
0x01DD | 47 | src/login/login.c:3645 |
0x01DF | 6 | clif_parse_GMReqNoChatCount |
0x01E0 | 30 | |
0x01E1 | 8 | |
0x01E2 | 34 | |
0x01E3 | 14 | |
0x01E4 | 2 | |
0x01E5 | 6 | |
0x01E6 | 26 | |
0x01E7 | 2 | clif_parse_sn_doridori |
0x01E8 | 28 | clif_parse_CreateParty2 |
0x01E9 | 81 | |
0x01EA | 6 | |
0x01EB | 10 | |
0x01EC | 26 | |
0x01ED | 2 | clif_parse_sn_explosionspirits |
0x01EF | -1 | |
0x01F1 | -1 | |
0x01F2 | 20 | |
0x01F3 | 10 | |
0x01F4 | 32 | |
0x01F5 | 9 | |
0x01F6 | 34 | |
0x01F7 | 14 | |
0x01F8 | 2 | |
0x01F9 | 6 | |
0x01FA | 48 | |
0x01FB | 56 | |
0x01FC | -1 | |
0x01FD | 4 | |
0x01FE | 5 | |
0x01FF | 10 | |
0x0200 | 26 | src/login/login.c:3632 |
0x0204 | 18 | src/login/login.c:3638 |
0x020B | 19 | src/char/char.c:3030 |
Internal Packets
These packets are sent between the servers. Details are subject to change without notice.
login - char
Packet:0x2716Packet:0x2717Packet:0x2740Packet:0x2741Packet | Length | Name | Sent and Parsed Locations |
---|
login - admin
Packet | Length | Name | Sent and Parsed Locations |
---|
char - map
Packet | Length | Name | Sent and Parsed Locations |
---|
inter.cpp recv
0x3000 | -1 |
0x3001 | -1 |
0x3002 | 7 |
0x3003 | -1 |
0x3004 | -1 |
0x3005 | 6 |
0x3010 | 6 |
0x3011 | -1 |
0x3018 | 10 |
0x3019 | -1 |
0x3020 | 72 |
0x3021 | 6 |
0x3022 | 52 |
0x3023 | 14 |
0x3024 | 10 |
0x3025 | 29 |
0x3026 | 6 |
0x3027 | -1 |
0x3028 | 34 |
0x3030 | -1 |
0x3031 | 6 |
0x3032 | -1 |
0x3034 | 55 |
0x3035 | 19 |
0x3036 | 6 |
0x3037 | -1 |
0x3038 | 14 |
0x3039 | -1 |
0x303a | -1 |
0x303b | -1 |
0x303c | 14 |
0x303d | 19 |
0x303e | 186 |
0x303f | -1 |
0x3040 | 5 |
0x3041 | 9 |
0x3080 | 48 |
0x3081 | 14 |
0x3082 | -1 |
0x3083 | 6 |
intif.cpp recv
0x3800 | -1 |
0x3801 | -1 |
0x3802 | 27 |
0x3803 | -1 |
0x3804 | -1 |
0x3810 | -1 |
0x3811 | 7 |
0x3818 | -1 |
0x3819 | 11 |
0x3820 | 35 |
0x3821 | -1 |
0x3822 | 11 |
0x3823 | 15 |
0x3824 | 34 |
0x3825 | 29 |
0x3826 | 7 |
0x3827 | -1 |
0x3830 | 10 |
0x3831 | -1 |
0x3832 | 15 |
0x3834 | 79 |
0x3835 | 19 |
0x3836 | 7 |
0x3837 | -1 |
0x3839 | -1 |
0x383a | -1 |
0x383b | -1 |
0x383c | 14 |
0x383d | 67 |
0x383e | 186 |
0x383f | -1 |
0x3840 | 9 |
0x3841 | 9 |
0x3842 | -1 |
0x3880 | 11 |
0x3881 | -1 |
0x3882 | 7 |
0x3883 | 3 |
chrif.cpp recv
0x2af8 60 0x2af9 3 0x2afa 10 0x2afb 27 0x2afc 22 0x2afd -1 0x2afe 6 0x2aff -1 0x2b00 6 0x2b01 -1 0x2b02 18 0x2b03 7 0x2b04 -1 0x2b05 49 0x2b06 44 0x2b08 6 0x2b09 30 0x2b0a -1 0x2b0b 10 0x2b0c 86 0x2b0d 7 0x2b0e 44 0x2b0f 34 0x2b10 -1 0x2b11 -1 0x2b12 10 0x2b13 6 0x2b14 11 0x2b15 -1