Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define CLIENT_UNKNOWN_37 0x37ff
- typedef struct /* character list request, character list upload? */
- {
- t_bnet_header h;
- bn_int opencount; /* Number of OPEN characters on user's machine! */
- /* Always zero for "closed" connections. */
- /* unknown2 */ /* subsequent blocks of t_d2char_info or something */
- /* similar, so server could read this list and */
- /* include in the 0x37ff reply as a choice (this */
- /* makes sense cuz the server does NOT store open */
- /* character details - this also explains why */
- /* unknown1 is always 0 in the beta, and the 0x00 */
- /* of unknown2 acts as a EOF when client read the */
- /* t_d2char_info structures */
- } PACKED_ATTR() t_client_unknown_37;
- /******************************************************/
- /******************************************************/
- /*
- FF 37 01 01 00 00 00 00 08 00 00 00 04 00 00 00 .7..............
- 42 65 74 61 57 65 73 74 2C 4D 6F 4E 6B 00 87 80 BetaWest,MoNk...
- 06 01 01 01 01 50 FF FF 02 02 FF FF FF FF FF FF .....P..........
- 02 49 50 50 50 50 FF FF FF 50 50 FF FF FF FF FF .IPPPP...PP.....
- FF 14 88 82 80 80 FF FF FF 00 42 65 74 61 57 65 ..........BetaWe
- 73 74 2C 4D 6F 4E 6B 2D 65 00 83 80 05 02 02 01 st,MoNk-e.......
- 01 2B FF 1B 02 02 FF FF FF FF FF FF 03 FF FF FF .+..............
- FF FF FF FF A8 FF FF FF FF FF FF FF FF 10 80 82 ................
- 80 80 FF FF FF 00 42 65 74 61 57 65 73 74 2C 4D ......BetaWest,M
- 6F 4E 6B 2D 65 65 00 83 80 06 01 01 01 01 FF 4C oNk-ee.........L
- FF 02 02 FF FF FF FF FF FF 01 FF 48 48 48 48 FF ...........HHHH.
- A6 FF 48 48 FF FF FF FF FF FF 0F 80 80 80 80 FF ..HH............
- FF FF 00 42 65 74 61 57 65 73 74 2C 4D 6F 4E 6B ...BetaWest,MoNk
- 2D 74 77 6F 00 87 80 01 01 01 01 01 FF FF FF 01 -two............
- 01 FF FF FF FF FF FF 02 FF FF FF FF FF FF FF FF ................
- FF FF FF FF FF FF FF FF 01 84 80 FF FF FF 80 80 ................
- 00 .
- ^-- 1: (BetaWest) MoNk
- 2: (BetaWest) MoNk-e
- 3: (BetaWest) MoNk-ee
- 4: (BetaWest) MoNk-two
- ff 37 4e 00 00 00 00 00 08 00 00 00 01 00 00 00 .7N.............
- 42 65 74 61 57 65 73 74 2c 4c 69 66 65 6c 69 6b BetaWest,Lifelik
- 65 00 87 80 01 01 01 01 01 ff ff ff 01 01 ff ff e...............
- ff ff ff ff 03 ff ff ff ff ff ff ff ff ff ff ff ................
- ff ff ff ff ff 01 80 80 ff ff ff 80 80 00 ..............
- ff 37 4e 00 00 00 00 00 08 00 00 00 01 00 00 00 .7N.............
- 42 65 74 61 57 65 73 74 2c 51 6c 65 78 54 45 53 BetaWest,QlexTES
- 54 00 83 80 ff ff ff ff ff 30 ff 1b ff ff ff ff T........0......
- ff ff ff ff 04 ff ff ff ff ff ff ff ff ff ff ff ................
- ff ff ff ff ff 01 80 80 80 80 ff ff ff 00 ..............
- from bnetd-0.3.23pre18 to Diablo II 1.03
- "Char1 {BNE}" [lvl 20, amaz]
- "Char2 {BNE}" [lvl 21, sorc]
- "Char3 {BNE}" [lvl 22, necro]
- FF 37 D9 00 00 00 00 00 08 00 00 00 03 00 Gv.7............
- 00 00 51 61 72 61 74 68 52 65 61 6C 6D 2C 43 68 ..QarathRealm,Ch
- 61 72 31 00 87 80 01 01 01 01 01 01 01 01 01 01 ar1.............
- 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 ................
- 01 01 01 01 01 01 01 14 85 86 01 FF FF FF FF 42 ...............B
- 4E 45 54 44 00 51 61 72 61 74 68 52 65 61 6C 6d NETD.QarathRealm
- 2C 43 68 61 72 32 00 87 80 01 01 01 01 01 01 01 ,Char2..........
- 01 01 01 01 01 01 01 01 01 02 01 01 01 01 01 01 ................
- 01 01 01 01 01 01 01 01 01 01 15 85 86 01 FF FF ................
- FF FF 42 4E 45 54 44 00 51 61 72 61 74 68 52 65 ..BNETD.QarathRe
- 61 6C 6D 2C 43 68 61 72 33 00 87 80 01 01 01 01 alm,Char3.......
- 01 01 01 01 01 01 01 01 01 01 01 01 03 01 01 01 ................
- 01 01 01 01 01 01 01 01 01 01 01 01 01 16 85 86 ................
- 01 FF FF FF FF 42 4E 45 54 44 00 .....BNETD.
- */
- #define SERVER_UNKNOWN_37 0x37ff
- typedef struct /* character list reply? */
- {
- t_bnet_header h;
- bn_int unknown1;
- bn_int unknown2; /* _bucky_: max chars allowed? */
- bn_int count; /* # of chars, same number of */
- /* t_char_info to follow in */
- /* packet */
- /* d2char_info blocks */
- } PACKED_ATTR() t_server_unknown_37;
- #define SERVER_UNKNOWN_37_UNKNOWN1 0x00000000
- #define SERVER_UNKNOWN_37_UNKNOWN2 0x00000008
- /* The ONLY 0x00 that should appear should be the terminating NUL for */
- /* the character name string and the guild tag string, they're used as */
- /* delimiters to separate character name and the character structure */
- /* If you got any other NUL's in here the next character's info will */
- /* be royally fucked up - using 0x01 or 0xff for unknowns seem to work */
- /* well */
- typedef struct
- {
- /* "RealmName,CharacterName" - for closed characters */
- /* - OR - */
- /* "CharacterName" - for open characters */
- /* - strlen(CharacterName) must be <= 15 - */
- bn_byte unknownb1; /* 0x83, 0x87? */
- bn_byte unknownb2; /* 0x80...? */
- bn_byte helmgfx;
- bn_byte bodygfx;
- bn_byte leggfx;
- bn_byte lhandweapon;
- bn_byte lhandgfx;
- bn_byte rhandweapon;
- /* Partial weapon code list:
- 0x2f: 1H Axe
- 0x30: 1H Sword
- 0x50: 2H Staff
- 0x51: Another 2H Staff
- 0x52: Another 2H Staff
- 0x53: Another 2H Staff
- 0x54: 2H Axe
- 0x55: Scythe
- 0x56: empty?
- 0x57: Another 2H Axe
- 0x58: Halberd?
- 0x59: empty?
- 0x5a: Another 2H Axe
- 0x5b: Another Halberd
- 0x5c: empty?
- 0x5d: 1H club?
- 0x5e: empty?
- 0x5f: empty?
- */
- bn_byte rhandgfx;
- bn_byte unknownb3;
- bn_byte unknownb4;
- bn_byte unknownb5;
- bn_byte unknownb6;
- bn_byte unknownb7;
- bn_byte unknownb8;
- bn_byte unknownb9;
- bn_byte unknownb10;
- bn_byte unknownb11;
- bn_byte class; /* 0x01=Amazon, 0x02=Sor, 0x03=Nec, 0x04=Pal, 0x05=Bar */
- bn_int unknown1;
- bn_int unknown2;
- bn_int unknown3;
- bn_int unknown4;
- bn_byte level; /* yes, byte, not short/int/long */
- bn_byte status; /* 0x01-03 = Norm & alive */
- /* 0x04-07 = HC & alive */
- /* 0x08-0b = Norm & "dead"? */
- /* 0x0c+ = HC & dead, chat only */
- /* Add 0x80 to get same effect */
- bn_byte title; /* 0x01=none
- 0x02=Sir/Dame?
- 0x03=Sir/Dame?
- 0x04=Lord?
- 0x05=Lord?
- 0x06=Baron?
- 0x07=Baron? */
- /* Same codes for HC chars */
- /* Add 0x80 to get same effect */
- bn_byte unknownb13;
- bn_byte emblembgc; /* Guild emblem background colour */
- bn_byte emblemfgc; /* Guild emblem foreground colour */
- bn_byte emblemnum; /* Guild emblem type number */
- /* emblem number corresponds to D2DATA.MPQ/data/global/ui/Emblems/iconXXa.dc6 */
- /* where XX = emblem number - 1 (ie, 0x0A corresponds to icon09a.dc6) use */
- /* for dummy values seem safe... 0x01 won't work, you'll get an emblem... */
- bn_byte unknownb14;
- /* Guild Tag */ /* must not be longer than 3 chars */
- } PACKED_ATTR() t_d2char_info;
- #define D2CHAR_INFO_UNKNOWNB1 0x83
- #define D2CHAR_INFO_UNKNOWNB2 0x80
- #define D2CHAR_INFO_FILLER 0xff /* non-zero padding */
- #define D2CHAR_INFO_CLASS_AMAZON 0x01
- #define D2CHAR_INFO_CLASS_SORCERESS 0x02
- #define D2CHAR_INFO_CLASS_NECROMANCER 0x03
- #define D2CHAR_INFO_CLASS_PALADIN 0x04
- #define D2CHAR_INFO_CLASS_BARBARIAN 0x05
- #define D2CHAR_INFO_CLASS_DRUID 0x06
- #define D2CHAR_INFO_CLASS_ASSASSIN 0x07
- /******************************************************/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement