Blame view

docs/d2s_110_format_table.txt 7.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
-------------------------------------------------------------------------------
originally extracted from here:
http://www.coreyh.org/diablo-2-files/documentation/d2s_110_format_table.htm
-------------------------------------------------------------------------------


D2S File Format - Version 1.10

type   name              bits      desc                      cond1   condvar1   condval1 cond2  condvar2  condval2 comment
ASC8   dwMajic           4         File ID                                                                          +0
DWRD   dwVersion         32        File Version                                                                     +4
DWRD   dwSize            32        File Size                                                                        +8
DWRD   dwCRC             32        File CRC                                                                         +c
DWRD   dwWeaponSet       32        Weapon Set                                                                       +10
ASCI   Name              16        Character Name                                                                   +14
BYTE   charType          8         Character Type                                                                   +24 // 0x40 = ladder 0x20 = expansion 0x10 =? 0x08 = HasDied 0x04 = Hardcore
                                                                                                                   0x02 = ? 0x01 = new character format
BYTE   charTitle         8         Character Title                                                                  +25
WORD   unk1              16        Unknown                                                                          +26 // 00 00
BYTE   charClass         8         Character Class                                                                  +28
WORD   unk2              16        Unknown                                                                          +29 // 10 1E
BYTE   charLevel         8         Level                                                                            +2b
DWRD   unk3              32        Unknown                                                                          +2c
DWRD   dwTime            32        Time Stamp                                                                       +30
DWRD   unk4              32        Unknown                                                                         // FF FF FF FF +34
DWRD   dwSkillKey[16]    32        Skill Keys                                                                      // No Array support in format !!! +38
DWRD   dwLeftSkill1      32        Left Skill Weapon Set 1                                                          +78
DWRD   dwRightSkill1     32        Right Skill Weapon Set 1                                                         +7c
DWRD   dwLeftSkill2      32        Left Skill Weapon Set 2                                                          +80
DWRD   dwRightSkill2     32        Right Skill Weapon Set 2                                                         +84
BYTE   outfit[16]        8         Character Load graphics                                                         // No Array support in format !!! +88
BYTE   colors[16]        8         Character Load Colors                                                           // No Array support in format !!! +98
BYTE   Town1             8         Normal Town                                                                     // Only town for last played mode is set
BYTE   Town2             8         Nightmare Town
BYTE   Town3             8         Hell Town
DWRD   dwMapSeed         32        Map Random Seed
WORD   unk5              16        Unknown                                                                         // 00 00
BYTE   bMercDead         8         Merc Dead Flag
BYTE   unk6              8         Unknown
DWRD   dwMercControl     32        Merc Control seed
WORD   wMercName         16        Merc Name Index
WORD   wMercType         16        Merc Type
DWRD   dwMercExp         32        Merc Experience
BYTE   unk7[0x90]        8         Unknown                                                                         // No Array support in format !!!

FILE   d2Woo.txt         0         Questinfo Header                                                                // Act/Quest info header

FILE   d2Ws.txt          0         Waypoints                                                                       // waypoints

FILE   d2W4.txt          0         Greetings                                                                       // NPC greeting control

PROP   Stats             0         Player Stats                                                                    // stats read like properties

FILE   d2if.txt          0         Player Skills                                                                   // skills

FILE   itemlist.txt      0         Player Item List

WORD   iCorpses          16        Number of Corpses
FILE   corpse.txt        iCorpses  Corpse List                                                                     // need to add support for variable 'bits'

ASC8   d2jf              2         Merc List majic                                                                 // jf
FILE   itemlist.txt      0         Merc Item List                  0 bHasMerc          1

ASC8   d2kf              2         Iron Golem majic                                                                // kf
BYTE   bHasGolem         8         Iron Golem Flag
FILE   fields.txt        0         Golem Item                      0 bHasGolem         1



       //========== corpse.txt                                                                                     // dead body info

BYTE   bodyInfo[12]      8         Corpse Info
FILE   itemlist.txt      0         Corpse Item List


       //========== itemlist.txt                                                                                   // Item record list

ASC8   dwMajic           2         Item List majic                                                                 // JM
WORD   nItems            16        Number of Items
FILE   fields.txt        nItems    Item Records




       //========== d2Woo.txt                                                                                      // Act/Quest info header

ASC8   dwMajic           4         Record ID                                                                       // Woo!
DWRD   dwActs            32        Numer of acts
WORD   wSize             16        Size in bytes

FILE   d2Act.txt         3*wActs   Quest/Act states

       //========== d2Acts.txt                                                                                     // Act status flags

WORD   wActStart         16        Act Start info
WORD   wQuestStatus[6]   16        Quest Status
WORD   wActEnd           16        Act End flags

       //========== d2Ws.txt                                                                                       // waypoints

ASC8   wMajic            2         Record ID                                                                       // ws
BYTE   unk[6]            8         Unknown
DWRD   wp[3*6]           32        Waypoint Data

       //========== d2W4.txt                                                                                       // NPC state control

ASC8   wMajic            2         Record ID (0x7701)
WORD   wSize             16        size of struct
DWRD   normal[2]         32        Normal
DWRD   nightmare[2]      32        Nightmare
DWRD   hell[2]           32        Hell
DWRD   normal1[2]        32        Normal1
DWRD   nightmare1[2]     32        Nightmare1
DWRD   hell1[2]          32        Hell1


       //========== d2if.txt                                                                                       // skills

ASC8   wMajic            2         Record ID                                                                       // if
BYTE   skill_lvls[30]    8         Skill Levels