Advertisement
Guest User

Untitled

a guest
May 18th, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.63 KB | None | 0 0
  1. #define CLIENT_UNKNOWN_37 0x37ff
  2. typedef struct /* character list request, character list upload? */
  3. {
  4.     t_bnet_header h;
  5.     bn_int        opencount;  /* Number of OPEN characters on user's machine!    */
  6.     /* Always zero for "closed" connections.           */
  7.     /* unknown2 */            /* subsequent blocks of t_d2char_info or something */
  8.     /* similar, so server could read this list and     */
  9.     /* include in the 0x37ff reply as a choice (this   */
  10.     /* makes sense cuz the server does NOT store open  */
  11.     /* character details - this also explains why      */
  12.     /* unknown1 is always 0 in the beta, and the 0x00  */
  13.     /* of unknown2 acts as a EOF when client read the  */
  14.     /* t_d2char_info structures                        */
  15. } PACKED_ATTR() t_client_unknown_37;
  16. /******************************************************/
  17.  
  18.  
  19. /******************************************************/
  20. /*
  21. FF 37 01 01 00 00 00 00   08 00 00 00 04 00 00 00    .7..............
  22. 42 65 74 61 57 65 73 74   2C 4D 6F 4E 6B 00 87 80    BetaWest,MoNk...
  23. 06 01 01 01 01 50 FF FF   02 02 FF FF FF FF FF FF    .....P..........
  24. 02 49 50 50 50 50 FF FF   FF 50 50 FF FF FF FF FF    .IPPPP...PP.....
  25. FF 14 88 82 80 80 FF FF   FF 00 42 65 74 61 57 65    ..........BetaWe
  26. 73 74 2C 4D 6F 4E 6B 2D   65 00 83 80 05 02 02 01    st,MoNk-e.......
  27. 01 2B FF 1B 02 02 FF FF   FF FF FF FF 03 FF FF FF    .+..............
  28. FF FF FF FF A8 FF FF FF   FF FF FF FF FF 10 80 82    ................
  29. 80 80 FF FF FF 00 42 65   74 61 57 65 73 74 2C 4D    ......BetaWest,M
  30. 6F 4E 6B 2D 65 65 00 83   80 06 01 01 01 01 FF 4C    oNk-ee.........L
  31. FF 02 02 FF FF FF FF FF   FF 01 FF 48 48 48 48 FF    ...........HHHH.
  32. A6 FF 48 48 FF FF FF FF   FF FF 0F 80 80 80 80 FF    ..HH............
  33. FF FF 00 42 65 74 61 57   65 73 74 2C 4D 6F 4E 6B    ...BetaWest,MoNk
  34. 2D 74 77 6F 00 87 80 01   01 01 01 01 FF FF FF 01    -two............
  35. 01 FF FF FF FF FF FF 02   FF FF FF FF FF FF FF FF    ................
  36. FF FF FF FF FF FF FF FF   01 84 80 FF FF FF 80 80    ................
  37. 00                                                   .
  38.  
  39. ^-- 1: (BetaWest) MoNk
  40. 2: (BetaWest) MoNk-e
  41. 3: (BetaWest) MoNk-ee
  42. 4: (BetaWest) MoNk-two
  43.  
  44. ff 37 4e 00 00 00 00 00   08 00 00 00 01 00 00 00    .7N.............
  45. 42 65 74 61 57 65 73 74   2c 4c 69 66 65 6c 69 6b    BetaWest,Lifelik
  46. 65 00 87 80 01 01 01 01   01 ff ff ff 01 01 ff ff    e...............
  47. ff ff ff ff 03 ff ff ff   ff ff ff ff ff ff ff ff    ................
  48. ff ff ff ff ff 01 80 80   ff ff ff 80 80 00          ..............
  49.  
  50. ff 37 4e 00 00 00 00 00   08 00 00 00 01 00 00 00    .7N.............
  51. 42 65 74 61 57 65 73 74   2c 51 6c 65 78 54 45 53    BetaWest,QlexTES
  52. 54 00 83 80 ff ff ff ff   ff 30 ff 1b ff ff ff ff    T........0......
  53. ff ff ff ff 04 ff ff ff   ff ff ff ff ff ff ff ff    ................
  54. ff ff ff ff ff 01 80 80   80 80 ff ff ff 00          ..............
  55.  
  56. from bnetd-0.3.23pre18 to Diablo II 1.03
  57. "Char1 {BNE}" [lvl 20, amaz]
  58. "Char2 {BNE}" [lvl 21, sorc]
  59. "Char3 {BNE}" [lvl 22, necro]
  60. FF 37 D9 00 00 00   00 00 08 00 00 00 03 00    Gv.7............
  61. 00 00 51 61 72 61 74 68   52 65 61 6C 6D 2C 43 68    ..QarathRealm,Ch
  62. 61 72 31 00 87 80 01 01   01 01 01 01 01 01 01 01    ar1.............
  63. 01 01 01 01 01 01 01 01   01 01 01 01 01 01 01 01    ................
  64. 01 01 01 01 01 01 01 14   85 86 01 FF FF FF FF 42    ...............B
  65. 4E 45 54 44 00 51 61 72   61 74 68 52 65 61 6C 6d    NETD.QarathRealm
  66. 2C 43 68 61 72 32 00 87   80 01 01 01 01 01 01 01    ,Char2..........
  67. 01 01 01 01 01 01 01 01   01 02 01 01 01 01 01 01    ................
  68. 01 01 01 01 01 01 01 01   01 01 15 85 86 01 FF FF    ................
  69. FF FF 42 4E 45 54 44 00   51 61 72 61 74 68 52 65    ..BNETD.QarathRe
  70. 61 6C 6D 2C 43 68 61 72   33 00 87 80 01 01 01 01    alm,Char3.......
  71. 01 01 01 01 01 01 01 01   01 01 01 01 03 01 01 01    ................
  72. 01 01 01 01 01 01 01 01   01 01 01 01 01 16 85 86    ................
  73. 01 FF FF FF FF 42 4E 45   54 44 00                   .....BNETD.
  74. */
  75. #define SERVER_UNKNOWN_37 0x37ff
  76. typedef struct /* character list reply? */
  77. {
  78.     t_bnet_header h;
  79.     bn_int        unknown1;
  80.     bn_int        unknown2; /* _bucky_: max chars allowed? */
  81.     bn_int        count;    /* # of chars, same number of  */
  82.     /* t_char_info to follow in    */
  83.     /* packet                      */
  84.     /* d2char_info blocks */
  85. } PACKED_ATTR() t_server_unknown_37;
  86. #define SERVER_UNKNOWN_37_UNKNOWN1 0x00000000
  87. #define SERVER_UNKNOWN_37_UNKNOWN2 0x00000008
  88.  
  89. /* The ONLY 0x00 that should appear should be the terminating NUL for  */
  90. /* the character name string and the guild tag string, they're used as */
  91. /* delimiters to separate character name and the character structure   */
  92. /* If you got any other NUL's in here the next character's info will   */
  93. /* be royally fucked up - using 0x01 or 0xff for unknowns seem to work */
  94. /* well                                                                */
  95. typedef struct
  96. {
  97.     /* "RealmName,CharacterName" - for closed characters */
  98.     /* - OR -                                            */
  99.     /* "CharacterName" - for open characters             */
  100.     /* - strlen(CharacterName) must be <= 15 -           */
  101.     bn_byte unknownb1;     /* 0x83, 0x87? */
  102.     bn_byte unknownb2;     /* 0x80...? */
  103.     bn_byte helmgfx;
  104.     bn_byte bodygfx;
  105.     bn_byte leggfx;
  106.     bn_byte lhandweapon;
  107.     bn_byte lhandgfx;
  108.     bn_byte rhandweapon;
  109.  
  110.     /* Partial weapon code list:
  111.               0x2f: 1H Axe
  112.               0x30: 1H Sword
  113.               0x50: 2H Staff
  114.               0x51: Another 2H Staff
  115.               0x52: Another 2H Staff
  116.               0x53: Another 2H Staff
  117.               0x54: 2H Axe
  118.               0x55: Scythe
  119.               0x56: empty?
  120.               0x57: Another 2H Axe
  121.               0x58: Halberd?
  122.               0x59: empty?
  123.               0x5a: Another 2H Axe
  124.               0x5b: Another Halberd
  125.               0x5c: empty?
  126.               0x5d: 1H club?
  127.               0x5e: empty?
  128.               0x5f: empty?
  129.               */
  130.  
  131.     bn_byte rhandgfx;
  132.     bn_byte unknownb3;
  133.     bn_byte unknownb4;
  134.     bn_byte unknownb5;
  135.     bn_byte unknownb6;
  136.     bn_byte unknownb7;
  137.     bn_byte unknownb8;
  138.     bn_byte unknownb9;
  139.     bn_byte unknownb10;
  140.     bn_byte unknownb11;
  141.     bn_byte class;     /* 0x01=Amazon, 0x02=Sor, 0x03=Nec, 0x04=Pal, 0x05=Bar */
  142.  
  143.     bn_int  unknown1;
  144.     bn_int  unknown2;
  145.     bn_int  unknown3;
  146.     bn_int  unknown4;
  147.  
  148.     bn_byte level;     /* yes, byte, not short/int/long  */
  149.     bn_byte status;    /* 0x01-03 = Norm & alive         */
  150.     /* 0x04-07 = HC & alive           */
  151.     /* 0x08-0b = Norm & "dead"?       */
  152.     /* 0x0c+   = HC & dead, chat only */
  153.     /* Add 0x80 to get same effect    */
  154.     bn_byte title;     /* 0x01=none
  155.                           0x02=Sir/Dame?
  156.                           0x03=Sir/Dame?
  157.                           0x04=Lord?
  158.                           0x05=Lord?
  159.                           0x06=Baron?
  160.                           0x07=Baron? */
  161.     /* Same codes for HC chars                            */
  162.     /* Add 0x80 to get same effect    */
  163.     bn_byte unknownb13;
  164.     bn_byte emblembgc; /* Guild emblem background colour */
  165.     bn_byte emblemfgc; /* Guild emblem foreground colour */
  166.     bn_byte emblemnum; /* Guild emblem type number       */
  167.  
  168.     /* emblem number corresponds to D2DATA.MPQ/data/global/ui/Emblems/iconXXa.dc6 */
  169.     /* where XX = emblem number - 1 (ie, 0x0A corresponds to icon09a.dc6) use     */
  170.     /* for dummy values seem safe... 0x01 won't work, you'll get an emblem...     */
  171.  
  172.     bn_byte unknownb14;
  173.     /* Guild Tag */ /* must not be longer than 3 chars */
  174. } PACKED_ATTR() t_d2char_info;
  175. #define D2CHAR_INFO_UNKNOWNB1 0x83
  176. #define D2CHAR_INFO_UNKNOWNB2 0x80
  177. #define D2CHAR_INFO_FILLER 0xff /* non-zero padding */
  178. #define D2CHAR_INFO_CLASS_AMAZON      0x01
  179. #define D2CHAR_INFO_CLASS_SORCERESS   0x02
  180. #define D2CHAR_INFO_CLASS_NECROMANCER 0x03
  181. #define D2CHAR_INFO_CLASS_PALADIN     0x04
  182. #define D2CHAR_INFO_CLASS_BARBARIAN   0x05
  183. #define D2CHAR_INFO_CLASS_DRUID       0x06
  184. #define D2CHAR_INFO_CLASS_ASSASSIN    0x07
  185. /******************************************************/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement