Commit aabd2f7bb1481c30c85c4b5d4296e4124b10ef24
1 parent
27780d01
WIP. Missing Quest data, Waypoint data, NPC Introductions, Character stats, Character skills, items
Showing
6 changed files
with
1218 additions
and
22 deletions
d2char.c
1 | 1 | #include "d2char.h" |
2 | -#include <stdlib.h> | |
2 | +#include "d2skills.h" | |
3 | +#include "d2mercs.h" | |
4 | +#include <stdio.h> | |
3 | 5 | |
4 | 6 | uint32_t calcChecksum(D2CharHeader* c, void* charData) { |
5 | 7 | uint32_t origChecksum = c->checksum; |
... | ... | @@ -51,7 +53,6 @@ int isFemale(D2CharHeader* c) { |
51 | 53 | c->charClass == D2S_CHARCLASS_SORCERESS); |
52 | 54 | } |
53 | 55 | |
54 | -// Returns static string from library memory, no need to free | |
55 | 56 | const char* getCharacterTitle(D2CharHeader* c) { |
56 | 57 | int tier; |
57 | 58 | if(isExpansion(c)) { |
... | ... | @@ -126,4 +127,34 @@ const char* getCharacterTitle(D2CharHeader* c) { |
126 | 127 | } |
127 | 128 | } |
128 | 129 | } |
130 | +} | |
131 | + | |
132 | +size_t getLastPlayed(D2CharHeader* c, char* buf, size_t bufLen) { | |
133 | + struct tm* time = localtime(&(c->lastPlayed)); | |
134 | + size_t ret = strftime(buf, bufLen, "%c", time); | |
135 | + if(!ret) { | |
136 | + fprintf(stderr,"libd2char error: Provided buffer for time string was too small\n"); | |
137 | + } | |
138 | + return ret; | |
139 | +} | |
140 | + | |
141 | +const char* getSkillName(int skillID) { | |
142 | + return skills[skillID]; | |
143 | +} | |
144 | + | |
145 | +int getCurrentDifficulty(D2CharHeader* c) { | |
146 | + for(int i = D2S_DIFFICULTY_NORMAL; i <= D2S_DIFFICULTY_HELL; ++i) { | |
147 | + if(c->difficulty[i] & D2S_DIFFICULTY_ACTIVE) { | |
148 | + return i; | |
149 | + } | |
150 | + } | |
151 | + return D2S_DIFFICULTY_UNKNOWN; | |
152 | +} | |
153 | + | |
154 | +const char* getMercName(D2CharHeader* c) { | |
155 | + return getMercNameTableEntry(c->mercenaryType, c->mercenaryNameID); | |
156 | +} | |
157 | + | |
158 | +const char* getMercType(D2CharHeader* c) { | |
159 | + return mercTypes[c->mercenaryType]; | |
129 | 160 | } |
130 | 161 | \ No newline at end of file | ... | ... |
d2char.h
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | #define D2CHAR_H |
3 | 3 | |
4 | 4 | #include <stdint.h> |
5 | +#include <stdlib.h> | |
5 | 6 | #include "d2strings.h" |
6 | 7 | |
7 | 8 | #define D2S_HEADER_LENGTH 765 |
... | ... | @@ -21,7 +22,13 @@ |
21 | 22 | #define D2S_CHARSTATUS_EXPANSION 0x20 |
22 | 23 | #define D2S_CHARSTATUS_LADDER 0x40 |
23 | 24 | |
24 | -enum D2Version { | |
25 | +#define D2S_DIFFICULTY_ACTIVE 0x80 | |
26 | +#define D2S_DIFFICULTY_NORMAL 0 | |
27 | +#define D2S_DIFFICULTY_NIGHTMARE 1 | |
28 | +#define D2S_DIFFICULTY_HELL 2 | |
29 | +#define D2S_DIFFICULTY_UNKNOWN -1 | |
30 | + | |
31 | +enum D2S_VERSION { | |
25 | 32 | VER_106 = 71, |
26 | 33 | VER_107 = 87, |
27 | 34 | VER_108XP = 87, |
... | ... | @@ -30,17 +37,17 @@ enum D2Version { |
30 | 37 | VER_110 = 96 |
31 | 38 | }; |
32 | 39 | |
33 | -enum D2CharClass { | |
34 | - D2S_CHARCLASS_AMAZON = 0x00, | |
35 | - D2S_CHARCLASS_SORCERESS = 0x01, | |
36 | - D2S_CHARCLASS_NECROMANCER = 0x02, | |
37 | - D2S_CHARCLASS_PALADIN = 0x03, | |
38 | - D2S_CHARCLASS_BARBARIAN = 0x04, | |
39 | - D2S_CHARCLASS_DRUID = 0x05, | |
40 | - D2S_CHARCLASS_ASSASSIN = 0x06 | |
40 | +enum D2S_CHARCLASS { | |
41 | + D2S_CHARCLASS_AMAZON = 0, | |
42 | + D2S_CHARCLASS_SORCERESS = 1, | |
43 | + D2S_CHARCLASS_NECROMANCER = 2, | |
44 | + D2S_CHARCLASS_PALADIN = 3, | |
45 | + D2S_CHARCLASS_BARBARIAN = 4, | |
46 | + D2S_CHARCLASS_DRUID = 5, | |
47 | + D2S_CHARCLASS_ASSASSIN = 6 | |
41 | 48 | }; |
42 | 49 | |
43 | -enum D2Acts { | |
50 | +enum D2S_ACT { | |
44 | 51 | D2S_ACT1 = 0, |
45 | 52 | D2S_ACT2 = 1, |
46 | 53 | D2S_ACT3 = 2, |
... | ... | @@ -53,7 +60,7 @@ typedef struct __attribute__((packed)){ |
53 | 60 | uint32_t versionID; |
54 | 61 | uint32_t fileSize; |
55 | 62 | uint32_t checksum; |
56 | - uint32_t activeWeapon; // TODO | |
63 | + uint32_t activeWeapon; // Determines which weapon set (I or II in inventory) is currently in use | |
57 | 64 | char name[D2S_CHARNAME_LENGTH]; |
58 | 65 | uint8_t charStatus; |
59 | 66 | uint8_t charProgress; |
... | ... | @@ -64,24 +71,24 @@ typedef struct __attribute__((packed)){ |
64 | 71 | uint32_t unknown3; // TODO |
65 | 72 | uint32_t lastPlayed; |
66 | 73 | uint32_t unknown4; // TODO |
67 | - uint8_t hotkeys[D2S_HOTKEYS_LENGTH]; | |
74 | + uint8_t hotkeys[D2S_HOTKEYS_LENGTH]; // Not implemented. Too bad! | |
68 | 75 | uint32_t leftAbility; |
69 | 76 | uint32_t rightAbility; |
70 | - uint32_t leftAbilityAlt; | |
71 | - uint32_t rightAbilityAlt; | |
72 | - uint8_t charAppearance[D2S_CHAR_APPEARANCE_LENGTH]; | |
77 | + uint32_t leftAbilityAlt; // Left ability when alternative weapon set (II) is selected | |
78 | + uint32_t rightAbilityAlt; // Right ability when alternative weapon set (II) is selected | |
79 | + uint8_t charAppearance[D2S_CHAR_APPEARANCE_LENGTH]; // Not implemented. Too bad! | |
73 | 80 | uint8_t difficulty[D2S_DIFFICULTY_LENGTH]; |
74 | - uint32_t mapID; | |
75 | - uint16_t unknown5; | |
76 | - uint16_t mercenaryStatus; | |
81 | + uint32_t mapID; // Not implemented. Too bad! | |
82 | + uint16_t unknown5; // TODO | |
83 | + uint16_t mercenaryDead; | |
77 | 84 | uint32_t mercenarySeed; |
78 | 85 | uint16_t mercenaryNameID; |
79 | 86 | uint16_t mercenaryType; |
80 | 87 | uint32_t mercenaryExp; |
81 | - uint8_t unknown6[144]; | |
88 | + uint8_t unknown6[144]; // TODO | |
82 | 89 | uint8_t questData[D2S_QUESTS_LENGTH]; |
83 | 90 | uint8_t waypointData[D2S_WAYPOINTS_LENGTH]; |
84 | - uint8_t NPCIntroductions[D2S_NPCDATA_LENGTH]; // TODO | |
91 | + uint8_t NPCIntroductions[D2S_NPCDATA_LENGTH]; // Not implemented. (Yet) | |
85 | 92 | } D2CharHeader; |
86 | 93 | |
87 | 94 | uint32_t calcChecksum(D2CharHeader* c, void* charData); |
... | ... | @@ -91,4 +98,27 @@ int hasDied(D2CharHeader* c); |
91 | 98 | int isExpansion(D2CharHeader* c); |
92 | 99 | int isLadder(D2CharHeader* c); |
93 | 100 | |
101 | +// 0 = Act I, 4 = Act V (Expansion) | |
102 | +int getCurrentAct(D2CharHeader* c); | |
103 | + | |
104 | +int isFemale(D2CharHeader* c); | |
105 | + | |
106 | +// Returns static string from library memory, no need to free | |
107 | +const char* getCharacterTitle(D2CharHeader* c); | |
108 | + | |
109 | +// Writes to user-allocated string. Format is default locale's time representation | |
110 | +size_t getLastPlayed(D2CharHeader* c, char* buf, size_t bufLen); | |
111 | + | |
112 | +// Returns static string from library memory, no need to free | |
113 | +const char* getSkillName(int skillID); | |
114 | + | |
115 | +// 0 = Normal, 2 = Hell | |
116 | +int getCurrentDifficulty(D2CharHeader* c); | |
117 | + | |
118 | +// Returns static string from library memory, no need to free | |
119 | +const char* getMercName(D2CharHeader* c); | |
120 | + | |
121 | +// Returns static string from library memory, no need to free | |
122 | +const char* getMercType(D2CharHeader* c); | |
123 | + | |
94 | 124 | #endif |
95 | 125 | \ No newline at end of file | ... | ... |
d2mercs.c
0 โ 100644
1 | +#include "d2mercs.h" | |
2 | + | |
3 | +int _getMercType(int mercID) { | |
4 | + if(mercID >= 0 && mercID <= 5) { | |
5 | + return D2S_MERCTYPE_ROGUE; | |
6 | + } else if(mercID >= 6 && mercID <= 14) { | |
7 | + return D2S_MERCTYPE_DESERT; | |
8 | + } else if(mercID >= 15 && mercID <= 23) { | |
9 | + return D2S_MERCTYPE_SORCEROR; | |
10 | + } else if(mercID >= 24 && mercID <= 29) { | |
11 | + return D2S_MERCTYPE_BARBARIAN; | |
12 | + } else { | |
13 | + return D2S_MERCTYPE_UNKNOWN; | |
14 | + } | |
15 | +} | |
16 | + | |
17 | +const char* _getMercName(int mercID, int mercNameID) { | |
18 | + int offset = getMercType(mercID); | |
19 | + return mercNames[mercNameID + offset]; | |
20 | +} | |
0 | 21 | \ No newline at end of file | ... | ... |
d2mercs.h
0 โ 100644
1 | +#ifndef D2MERCS_H | |
2 | +#define D2MERCS_H | |
3 | + | |
4 | +#include "d2strings.h" | |
5 | + | |
6 | +// The values here are the offsets of each merc's names in the table. | |
7 | +// i.e: Merc names from pos 41 to 61 are Desert mercs | |
8 | +// | |
9 | +// We use these values as offsets later to get the correct name using the relative ID the game provides | |
10 | +enum D2S_MERCTYPES { | |
11 | + D2S_MERCTYPE_UNKNOWN = -1, | |
12 | + D2S_MERCTYPE_ROGUE = 0, | |
13 | + D2S_MERCTYPE_DESERT = 41, | |
14 | + D2S_MERCTYPE_SORCEROR = 62, | |
15 | + D2S_MERCTYPE_BARBARIAN = 82 | |
16 | +}; | |
17 | + | |
18 | +const char* const mercTypes[] = { | |
19 | + D2S_MERC_ID_0, | |
20 | + D2S_MERC_ID_1, | |
21 | + D2S_MERC_ID_2, | |
22 | + D2S_MERC_ID_3, | |
23 | + D2S_MERC_ID_4, | |
24 | + D2S_MERC_ID_5, | |
25 | + D2S_MERC_ID_6, | |
26 | + D2S_MERC_ID_7, | |
27 | + D2S_MERC_ID_8, | |
28 | + D2S_MERC_ID_9, | |
29 | + D2S_MERC_ID_10, | |
30 | + D2S_MERC_ID_11, | |
31 | + D2S_MERC_ID_12, | |
32 | + D2S_MERC_ID_13, | |
33 | + D2S_MERC_ID_14, | |
34 | + D2S_MERC_ID_15, | |
35 | + D2S_MERC_ID_16, | |
36 | + D2S_MERC_ID_17, | |
37 | + D2S_MERC_ID_18, | |
38 | + D2S_MERC_ID_19, | |
39 | + D2S_MERC_ID_20, | |
40 | + D2S_MERC_ID_21, | |
41 | + D2S_MERC_ID_22, | |
42 | + D2S_MERC_ID_23, | |
43 | + D2S_MERC_ID_24, | |
44 | + D2S_MERC_ID_25, | |
45 | + D2S_MERC_ID_26, | |
46 | + D2S_MERC_ID_27, | |
47 | + D2S_MERC_ID_28, | |
48 | + D2S_MERC_ID_29 | |
49 | +}; | |
50 | + | |
51 | +const char* const mercNames[] = { | |
52 | + D2S_MERC_NAME_0, | |
53 | + D2S_MERC_NAME_1, | |
54 | + D2S_MERC_NAME_2, | |
55 | + D2S_MERC_NAME_3, | |
56 | + D2S_MERC_NAME_4, | |
57 | + D2S_MERC_NAME_5, | |
58 | + D2S_MERC_NAME_6, | |
59 | + D2S_MERC_NAME_7, | |
60 | + D2S_MERC_NAME_8, | |
61 | + D2S_MERC_NAME_9, | |
62 | + D2S_MERC_NAME_10, | |
63 | + D2S_MERC_NAME_11, | |
64 | + D2S_MERC_NAME_12, | |
65 | + D2S_MERC_NAME_13, | |
66 | + D2S_MERC_NAME_14, | |
67 | + D2S_MERC_NAME_15, | |
68 | + D2S_MERC_NAME_16, | |
69 | + D2S_MERC_NAME_17, | |
70 | + D2S_MERC_NAME_18, | |
71 | + D2S_MERC_NAME_19, | |
72 | + D2S_MERC_NAME_20, | |
73 | + D2S_MERC_NAME_21, | |
74 | + D2S_MERC_NAME_22, | |
75 | + D2S_MERC_NAME_23, | |
76 | + D2S_MERC_NAME_24, | |
77 | + D2S_MERC_NAME_25, | |
78 | + D2S_MERC_NAME_26, | |
79 | + D2S_MERC_NAME_27, | |
80 | + D2S_MERC_NAME_28, | |
81 | + D2S_MERC_NAME_29, | |
82 | + D2S_MERC_NAME_30, | |
83 | + D2S_MERC_NAME_31, | |
84 | + D2S_MERC_NAME_32, | |
85 | + D2S_MERC_NAME_33, | |
86 | + D2S_MERC_NAME_34, | |
87 | + D2S_MERC_NAME_35, | |
88 | + D2S_MERC_NAME_36, | |
89 | + D2S_MERC_NAME_37, | |
90 | + D2S_MERC_NAME_38, | |
91 | + D2S_MERC_NAME_39, | |
92 | + D2S_MERC_NAME_40, | |
93 | + D2S_MERC_NAME_41, | |
94 | + D2S_MERC_NAME_42, | |
95 | + D2S_MERC_NAME_43, | |
96 | + D2S_MERC_NAME_44, | |
97 | + D2S_MERC_NAME_45, | |
98 | + D2S_MERC_NAME_46, | |
99 | + D2S_MERC_NAME_47, | |
100 | + D2S_MERC_NAME_48, | |
101 | + D2S_MERC_NAME_49, | |
102 | + D2S_MERC_NAME_50, | |
103 | + D2S_MERC_NAME_51, | |
104 | + D2S_MERC_NAME_52, | |
105 | + D2S_MERC_NAME_53, | |
106 | + D2S_MERC_NAME_54, | |
107 | + D2S_MERC_NAME_55, | |
108 | + D2S_MERC_NAME_56, | |
109 | + D2S_MERC_NAME_57, | |
110 | + D2S_MERC_NAME_58, | |
111 | + D2S_MERC_NAME_59, | |
112 | + D2S_MERC_NAME_60, | |
113 | + D2S_MERC_NAME_61, | |
114 | + D2S_MERC_NAME_62, | |
115 | + D2S_MERC_NAME_63, | |
116 | + D2S_MERC_NAME_64, | |
117 | + D2S_MERC_NAME_65, | |
118 | + D2S_MERC_NAME_66, | |
119 | + D2S_MERC_NAME_67, | |
120 | + D2S_MERC_NAME_68, | |
121 | + D2S_MERC_NAME_69, | |
122 | + D2S_MERC_NAME_70, | |
123 | + D2S_MERC_NAME_71, | |
124 | + D2S_MERC_NAME_72, | |
125 | + D2S_MERC_NAME_73, | |
126 | + D2S_MERC_NAME_74, | |
127 | + D2S_MERC_NAME_75, | |
128 | + D2S_MERC_NAME_76, | |
129 | + D2S_MERC_NAME_77, | |
130 | + D2S_MERC_NAME_78, | |
131 | + D2S_MERC_NAME_79, | |
132 | + D2S_MERC_NAME_80, | |
133 | + D2S_MERC_NAME_81, | |
134 | + D2S_MERC_NAME_82, | |
135 | + D2S_MERC_NAME_83, | |
136 | + D2S_MERC_NAME_84, | |
137 | + D2S_MERC_NAME_85, | |
138 | + D2S_MERC_NAME_86, | |
139 | + D2S_MERC_NAME_87, | |
140 | + D2S_MERC_NAME_88, | |
141 | + D2S_MERC_NAME_89, | |
142 | + D2S_MERC_NAME_90, | |
143 | + D2S_MERC_NAME_91, | |
144 | + D2S_MERC_NAME_92, | |
145 | + D2S_MERC_NAME_93, | |
146 | + D2S_MERC_NAME_94, | |
147 | + D2S_MERC_NAME_95, | |
148 | + D2S_MERC_NAME_96, | |
149 | + D2S_MERC_NAME_97, | |
150 | + D2S_MERC_NAME_98, | |
151 | + D2S_MERC_NAME_99, | |
152 | + D2S_MERC_NAME_100, | |
153 | + D2S_MERC_NAME_101, | |
154 | + D2S_MERC_NAME_102, | |
155 | + D2S_MERC_NAME_103, | |
156 | + D2S_MERC_NAME_104, | |
157 | + D2S_MERC_NAME_105, | |
158 | + D2S_MERC_NAME_106, | |
159 | + D2S_MERC_NAME_107, | |
160 | + D2S_MERC_NAME_108, | |
161 | + D2S_MERC_NAME_109, | |
162 | + D2S_MERC_NAME_110, | |
163 | + D2S_MERC_NAME_111, | |
164 | + D2S_MERC_NAME_112, | |
165 | + D2S_MERC_NAME_113, | |
166 | + D2S_MERC_NAME_114, | |
167 | + D2S_MERC_NAME_115, | |
168 | + D2S_MERC_NAME_116, | |
169 | + D2S_MERC_NAME_117, | |
170 | + D2S_MERC_NAME_118, | |
171 | + D2S_MERC_NAME_119, | |
172 | + D2S_MERC_NAME_120, | |
173 | + D2S_MERC_NAME_121, | |
174 | + D2S_MERC_NAME_122, | |
175 | + D2S_MERC_NAME_123, | |
176 | + D2S_MERC_NAME_124, | |
177 | + D2S_MERC_NAME_125, | |
178 | + D2S_MERC_NAME_126, | |
179 | + D2S_MERC_NAME_127, | |
180 | + D2S_MERC_NAME_128, | |
181 | + D2S_MERC_NAME_129, | |
182 | + D2S_MERC_NAME_130, | |
183 | + D2S_MERC_NAME_131, | |
184 | + D2S_MERC_NAME_132, | |
185 | + D2S_MERC_NAME_133, | |
186 | + D2S_MERC_NAME_134, | |
187 | + D2S_MERC_NAME_135, | |
188 | + D2S_MERC_NAME_136, | |
189 | + D2S_MERC_NAME_137, | |
190 | + D2S_MERC_NAME_138, | |
191 | + D2S_MERC_NAME_139, | |
192 | + D2S_MERC_NAME_140, | |
193 | + D2S_MERC_NAME_141, | |
194 | + D2S_MERC_NAME_142, | |
195 | + D2S_MERC_NAME_143, | |
196 | + D2S_MERC_NAME_144, | |
197 | + D2S_MERC_NAME_145, | |
198 | + D2S_MERC_NAME_146, | |
199 | + D2S_MERC_NAME_147, | |
200 | + D2S_MERC_NAME_148 | |
201 | +}; | |
202 | + | |
203 | +int _getMercType(int mercID); | |
204 | +const char* _getMercName(int mercID, int mercNameID); | |
205 | + | |
206 | +#endif | |
0 | 207 | \ No newline at end of file | ... | ... |
d2skills.h
0 โ 100644
1 | +#ifndef D2SKILLS_H | |
2 | +#define D2SKILLS_H | |
3 | + | |
4 | +#include <stdint.h> | |
5 | +#include "d2strings.h" | |
6 | + | |
7 | +const char* const skills[] = { | |
8 | + D2S_SKILL_0, | |
9 | + D2S_SKILL_1, | |
10 | + D2S_SKILL_2, | |
11 | + D2S_SKILL_3, | |
12 | + D2S_SKILL_4, | |
13 | + D2S_SKILL_5, | |
14 | + D2S_SKILL_6, | |
15 | + D2S_SKILL_7, | |
16 | + D2S_SKILL_8, | |
17 | + D2S_SKILL_9, | |
18 | + D2S_SKILL_10, | |
19 | + D2S_SKILL_11, | |
20 | + D2S_SKILL_12, | |
21 | + D2S_SKILL_13, | |
22 | + D2S_SKILL_14, | |
23 | + D2S_SKILL_15, | |
24 | + D2S_SKILL_16, | |
25 | + D2S_SKILL_17, | |
26 | + D2S_SKILL_18, | |
27 | + D2S_SKILL_19, | |
28 | + D2S_SKILL_20, | |
29 | + D2S_SKILL_21, | |
30 | + D2S_SKILL_22, | |
31 | + D2S_SKILL_23, | |
32 | + D2S_SKILL_24, | |
33 | + D2S_SKILL_25, | |
34 | + D2S_SKILL_26, | |
35 | + D2S_SKILL_27, | |
36 | + D2S_SKILL_28, | |
37 | + D2S_SKILL_29, | |
38 | + D2S_SKILL_30, | |
39 | + D2S_SKILL_31, | |
40 | + D2S_SKILL_32, | |
41 | + D2S_SKILL_33, | |
42 | + D2S_SKILL_34, | |
43 | + D2S_SKILL_35, | |
44 | + D2S_SKILL_36, | |
45 | + D2S_SKILL_37, | |
46 | + D2S_SKILL_38, | |
47 | + D2S_SKILL_39, | |
48 | + D2S_SKILL_40, | |
49 | + D2S_SKILL_41, | |
50 | + D2S_SKILL_42, | |
51 | + D2S_SKILL_43, | |
52 | + D2S_SKILL_44, | |
53 | + D2S_SKILL_45, | |
54 | + D2S_SKILL_46, | |
55 | + D2S_SKILL_47, | |
56 | + D2S_SKILL_48, | |
57 | + D2S_SKILL_49, | |
58 | + D2S_SKILL_50, | |
59 | + D2S_SKILL_51, | |
60 | + D2S_SKILL_52, | |
61 | + D2S_SKILL_53, | |
62 | + D2S_SKILL_54, | |
63 | + D2S_SKILL_55, | |
64 | + D2S_SKILL_56, | |
65 | + D2S_SKILL_57, | |
66 | + D2S_SKILL_58, | |
67 | + D2S_SKILL_59, | |
68 | + D2S_SKILL_60, | |
69 | + D2S_SKILL_61, | |
70 | + D2S_SKILL_62, | |
71 | + D2S_SKILL_63, | |
72 | + D2S_SKILL_64, | |
73 | + D2S_SKILL_65, | |
74 | + D2S_SKILL_66, | |
75 | + D2S_SKILL_67, | |
76 | + D2S_SKILL_68, | |
77 | + D2S_SKILL_69, | |
78 | + D2S_SKILL_70, | |
79 | + D2S_SKILL_71, | |
80 | + D2S_SKILL_72, | |
81 | + D2S_SKILL_73, | |
82 | + D2S_SKILL_74, | |
83 | + D2S_SKILL_75, | |
84 | + D2S_SKILL_76, | |
85 | + D2S_SKILL_77, | |
86 | + D2S_SKILL_78, | |
87 | + D2S_SKILL_79, | |
88 | + D2S_SKILL_80, | |
89 | + D2S_SKILL_81, | |
90 | + D2S_SKILL_82, | |
91 | + D2S_SKILL_83, | |
92 | + D2S_SKILL_84, | |
93 | + D2S_SKILL_85, | |
94 | + D2S_SKILL_86, | |
95 | + D2S_SKILL_87, | |
96 | + D2S_SKILL_88, | |
97 | + D2S_SKILL_89, | |
98 | + D2S_SKILL_90, | |
99 | + D2S_SKILL_91, | |
100 | + D2S_SKILL_92, | |
101 | + D2S_SKILL_93, | |
102 | + D2S_SKILL_94, | |
103 | + D2S_SKILL_95, | |
104 | + D2S_SKILL_96, | |
105 | + D2S_SKILL_97, | |
106 | + D2S_SKILL_98, | |
107 | + D2S_SKILL_99, | |
108 | + D2S_SKILL_100, | |
109 | + D2S_SKILL_101, | |
110 | + D2S_SKILL_102, | |
111 | + D2S_SKILL_103, | |
112 | + D2S_SKILL_104, | |
113 | + D2S_SKILL_105, | |
114 | + D2S_SKILL_106, | |
115 | + D2S_SKILL_107, | |
116 | + D2S_SKILL_108, | |
117 | + D2S_SKILL_109, | |
118 | + D2S_SKILL_110, | |
119 | + D2S_SKILL_111, | |
120 | + D2S_SKILL_112, | |
121 | + D2S_SKILL_113, | |
122 | + D2S_SKILL_114, | |
123 | + D2S_SKILL_115, | |
124 | + D2S_SKILL_116, | |
125 | + D2S_SKILL_117, | |
126 | + D2S_SKILL_118, | |
127 | + D2S_SKILL_119, | |
128 | + D2S_SKILL_120, | |
129 | + D2S_SKILL_121, | |
130 | + D2S_SKILL_122, | |
131 | + D2S_SKILL_123, | |
132 | + D2S_SKILL_124, | |
133 | + D2S_SKILL_125, | |
134 | + D2S_SKILL_126, | |
135 | + D2S_SKILL_127, | |
136 | + D2S_SKILL_128, | |
137 | + D2S_SKILL_129, | |
138 | + D2S_SKILL_130, | |
139 | + D2S_SKILL_131, | |
140 | + D2S_SKILL_132, | |
141 | + D2S_SKILL_133, | |
142 | + D2S_SKILL_134, | |
143 | + D2S_SKILL_135, | |
144 | + D2S_SKILL_136, | |
145 | + D2S_SKILL_137, | |
146 | + D2S_SKILL_138, | |
147 | + D2S_SKILL_139, | |
148 | + D2S_SKILL_140, | |
149 | + D2S_SKILL_141, | |
150 | + D2S_SKILL_142, | |
151 | + D2S_SKILL_143, | |
152 | + D2S_SKILL_144, | |
153 | + D2S_SKILL_145, | |
154 | + D2S_SKILL_146, | |
155 | + D2S_SKILL_147, | |
156 | + D2S_SKILL_148, | |
157 | + D2S_SKILL_149, | |
158 | + D2S_SKILL_150, | |
159 | + D2S_SKILL_151, | |
160 | + D2S_SKILL_152, | |
161 | + D2S_SKILL_153, | |
162 | + D2S_SKILL_154, | |
163 | + D2S_SKILL_155, | |
164 | + D2S_SKILL_156, | |
165 | + D2S_SKILL_157, | |
166 | + D2S_SKILL_158, | |
167 | + D2S_SKILL_159, | |
168 | + D2S_SKILL_160, | |
169 | + D2S_SKILL_161, | |
170 | + D2S_SKILL_162, | |
171 | + D2S_SKILL_163, | |
172 | + D2S_SKILL_164, | |
173 | + D2S_SKILL_165, | |
174 | + D2S_SKILL_166, | |
175 | + D2S_SKILL_167, | |
176 | + D2S_SKILL_168, | |
177 | + D2S_SKILL_169, | |
178 | + D2S_SKILL_170, | |
179 | + D2S_SKILL_171, | |
180 | + D2S_SKILL_172, | |
181 | + D2S_SKILL_173, | |
182 | + D2S_SKILL_174, | |
183 | + D2S_SKILL_175, | |
184 | + D2S_SKILL_176, | |
185 | + D2S_SKILL_177, | |
186 | + D2S_SKILL_178, | |
187 | + D2S_SKILL_179, | |
188 | + D2S_SKILL_180, | |
189 | + D2S_SKILL_181, | |
190 | + D2S_SKILL_182, | |
191 | + D2S_SKILL_183, | |
192 | + D2S_SKILL_184, | |
193 | + D2S_SKILL_185, | |
194 | + D2S_SKILL_186, | |
195 | + D2S_SKILL_187, | |
196 | + D2S_SKILL_188, | |
197 | + D2S_SKILL_189, | |
198 | + D2S_SKILL_190, | |
199 | + D2S_SKILL_191, | |
200 | + D2S_SKILL_192, | |
201 | + D2S_SKILL_193, | |
202 | + D2S_SKILL_194, | |
203 | + D2S_SKILL_195, | |
204 | + D2S_SKILL_196, | |
205 | + D2S_SKILL_197, | |
206 | + D2S_SKILL_198, | |
207 | + D2S_SKILL_199, | |
208 | + D2S_SKILL_200, | |
209 | + D2S_SKILL_201, | |
210 | + D2S_SKILL_202, | |
211 | + D2S_SKILL_203, | |
212 | + D2S_SKILL_204, | |
213 | + D2S_SKILL_205, | |
214 | + D2S_SKILL_206, | |
215 | + D2S_SKILL_207, | |
216 | + D2S_SKILL_208, | |
217 | + D2S_SKILL_209, | |
218 | + D2S_SKILL_210, | |
219 | + D2S_SKILL_211, | |
220 | + D2S_SKILL_212, | |
221 | + D2S_SKILL_213, | |
222 | + D2S_SKILL_214, | |
223 | + D2S_SKILL_215, | |
224 | + D2S_SKILL_216, | |
225 | + D2S_SKILL_217, | |
226 | + D2S_SKILL_218, | |
227 | + D2S_SKILL_219, | |
228 | + D2S_SKILL_220, | |
229 | + D2S_SKILL_221, | |
230 | + D2S_SKILL_222, | |
231 | + D2S_SKILL_223, | |
232 | + D2S_SKILL_224, | |
233 | + D2S_SKILL_225, | |
234 | + D2S_SKILL_226, | |
235 | + D2S_SKILL_227, | |
236 | + D2S_SKILL_228, | |
237 | + D2S_SKILL_229, | |
238 | + D2S_SKILL_230, | |
239 | + D2S_SKILL_231, | |
240 | + D2S_SKILL_232, | |
241 | + D2S_SKILL_233, | |
242 | + D2S_SKILL_234, | |
243 | + D2S_SKILL_235, | |
244 | + D2S_SKILL_236, | |
245 | + D2S_SKILL_237, | |
246 | + D2S_SKILL_238, | |
247 | + D2S_SKILL_239, | |
248 | + D2S_SKILL_240, | |
249 | + D2S_SKILL_241, | |
250 | + D2S_SKILL_242, | |
251 | + D2S_SKILL_243, | |
252 | + D2S_SKILL_244, | |
253 | + D2S_SKILL_245, | |
254 | + D2S_SKILL_246, | |
255 | + D2S_SKILL_247, | |
256 | + D2S_SKILL_248, | |
257 | + D2S_SKILL_249, | |
258 | + D2S_SKILL_250, | |
259 | + D2S_SKILL_251, | |
260 | + D2S_SKILL_252, | |
261 | + D2S_SKILL_253, | |
262 | + D2S_SKILL_254, | |
263 | + D2S_SKILL_255, | |
264 | + D2S_SKILL_256, | |
265 | + D2S_SKILL_257, | |
266 | + D2S_SKILL_258, | |
267 | + D2S_SKILL_259, | |
268 | + D2S_SKILL_260, | |
269 | + D2S_SKILL_261, | |
270 | + D2S_SKILL_262, | |
271 | + D2S_SKILL_263, | |
272 | + D2S_SKILL_264, | |
273 | + D2S_SKILL_265, | |
274 | + D2S_SKILL_266, | |
275 | + D2S_SKILL_267, | |
276 | + D2S_SKILL_268, | |
277 | + D2S_SKILL_269, | |
278 | + D2S_SKILL_270, | |
279 | + D2S_SKILL_271, | |
280 | + D2S_SKILL_272, | |
281 | + D2S_SKILL_273, | |
282 | + D2S_SKILL_274, | |
283 | + D2S_SKILL_275, | |
284 | + D2S_SKILL_276, | |
285 | + D2S_SKILL_277, | |
286 | + D2S_SKILL_278, | |
287 | + D2S_SKILL_279, | |
288 | + D2S_SKILL_280, | |
289 | + D2S_SKILL_281, | |
290 | + D2S_SKILL_282, | |
291 | + D2S_SKILL_283, | |
292 | + D2S_SKILL_284, | |
293 | + D2S_SKILL_285, | |
294 | + D2S_SKILL_286, | |
295 | + D2S_SKILL_287, | |
296 | + D2S_SKILL_288, | |
297 | + D2S_SKILL_289, | |
298 | + D2S_SKILL_290, | |
299 | + D2S_SKILL_291, | |
300 | + D2S_SKILL_292, | |
301 | + D2S_SKILL_293, | |
302 | + D2S_SKILL_294, | |
303 | + D2S_SKILL_295, | |
304 | + D2S_SKILL_296, | |
305 | + D2S_SKILL_297, | |
306 | + D2S_SKILL_298, | |
307 | + D2S_SKILL_299, | |
308 | + D2S_SKILL_300, | |
309 | + D2S_SKILL_301, | |
310 | + D2S_SKILL_302, | |
311 | + D2S_SKILL_303, | |
312 | + D2S_SKILL_304, | |
313 | + D2S_SKILL_305, | |
314 | + D2S_SKILL_306, | |
315 | + D2S_SKILL_307, | |
316 | + D2S_SKILL_308, | |
317 | + D2S_SKILL_309, | |
318 | + D2S_SKILL_310, | |
319 | + D2S_SKILL_311, | |
320 | + D2S_SKILL_312, | |
321 | + D2S_SKILL_313, | |
322 | + D2S_SKILL_314, | |
323 | + D2S_SKILL_315, | |
324 | + D2S_SKILL_316, | |
325 | + D2S_SKILL_317, | |
326 | + D2S_SKILL_318, | |
327 | + D2S_SKILL_319, | |
328 | + D2S_SKILL_320, | |
329 | + D2S_SKILL_321, | |
330 | + D2S_SKILL_322, | |
331 | + D2S_SKILL_323, | |
332 | + D2S_SKILL_324, | |
333 | + D2S_SKILL_325, | |
334 | + D2S_SKILL_326, | |
335 | + D2S_SKILL_327, | |
336 | + D2S_SKILL_328, | |
337 | + D2S_SKILL_329, | |
338 | + D2S_SKILL_330, | |
339 | + D2S_SKILL_331, | |
340 | + D2S_SKILL_332, | |
341 | + D2S_SKILL_333, | |
342 | + D2S_SKILL_334, | |
343 | + D2S_SKILL_335, | |
344 | + D2S_SKILL_336, | |
345 | + D2S_SKILL_337, | |
346 | + D2S_SKILL_338, | |
347 | + D2S_SKILL_339, | |
348 | + D2S_SKILL_340, | |
349 | + D2S_SKILL_341, | |
350 | + D2S_SKILL_342, | |
351 | + D2S_SKILL_343, | |
352 | + D2S_SKILL_344, | |
353 | + D2S_SKILL_345, | |
354 | + D2S_SKILL_346, | |
355 | + D2S_SKILL_347, | |
356 | + D2S_SKILL_348, | |
357 | + D2S_SKILL_349, | |
358 | + D2S_SKILL_350, | |
359 | + D2S_SKILL_351, | |
360 | + D2S_SKILL_352, | |
361 | + D2S_SKILL_353, | |
362 | + D2S_SKILL_354, | |
363 | + D2S_SKILL_355, | |
364 | + D2S_SKILL_356 | |
365 | +}; | |
366 | + | |
367 | +#endif | |
0 | 368 | \ No newline at end of file | ... | ... |
d2strings.h
1 | 1 | #ifndef D2STRINGS_H |
2 | 2 | #define D2STRINGS_H |
3 | 3 | |
4 | +// Character titles | |
4 | 5 | const char* D2S_CHARPROGRESS_TIER0_NAME = ""; |
5 | 6 | const char* D2S_CHARPROGRESS_CLASSIC_TIER1_NAME_M = "Sir"; |
6 | 7 | const char* D2S_CHARPROGRESS_CLASSIC_TIER2_NAME_M = "Lord"; |
... | ... | @@ -23,4 +24,545 @@ const char* D2S_CHARPROGRESS_EXPANSION_TIER1_NAME_HARDCORE = "Destroyer"; |
23 | 24 | const char* D2S_CHARPROGRESS_EXPANSION_TIER2_NAME_HARDCORE = "Conqueror"; |
24 | 25 | const char* D2S_CHARPROGRESS_EXPANSION_TIER3_NAME_HARDCORE = "Guardian"; |
25 | 26 | |
27 | +// Skills | |
28 | +#define D2S_SKILL_0 "Attack" | |
29 | +#define D2S_SKILL_1 "Kick" | |
30 | +#define D2S_SKILL_2 "Throw Item" | |
31 | +#define D2S_SKILL_3 "Unsummon" | |
32 | +#define D2S_SKILL_4 "Left Hand Throw" | |
33 | +#define D2S_SKILL_5 "Left Hand Swing" | |
34 | +#define D2S_SKILL_6 "Magic Arrow" | |
35 | +#define D2S_SKILL_7 "Fire Arrow" | |
36 | +#define D2S_SKILL_8 "Inner Sight" | |
37 | +#define D2S_SKILL_9 "Critical Strike" | |
38 | +#define D2S_SKILL_10 "Jab" | |
39 | +#define D2S_SKILL_11 "Cold Arrow" | |
40 | +#define D2S_SKILL_12 "Multiple Shot" | |
41 | +#define D2S_SKILL_13 "Dodge" | |
42 | +#define D2S_SKILL_14 "Power Strike" | |
43 | +#define D2S_SKILL_15 "Poison Javelin" | |
44 | +#define D2S_SKILL_16 "Exploding Arrow" | |
45 | +#define D2S_SKILL_17 "Slow Missiles" | |
46 | +#define D2S_SKILL_18 "Avoid" | |
47 | +#define D2S_SKILL_19 "Impale" | |
48 | +#define D2S_SKILL_20 "Lightning Bolt" | |
49 | +#define D2S_SKILL_21 "Ice Arrow" | |
50 | +#define D2S_SKILL_22 "Guided Arrow" | |
51 | +#define D2S_SKILL_23 "Penetrate" | |
52 | +#define D2S_SKILL_24 "Charged Strike" | |
53 | +#define D2S_SKILL_25 "Plague Javelin" | |
54 | +#define D2S_SKILL_26 "Strafe" | |
55 | +#define D2S_SKILL_27 "Immolation Arrow" | |
56 | +#define D2S_SKILL_28 "Dopplezon" | |
57 | +#define D2S_SKILL_29 "Evade" | |
58 | +#define D2S_SKILL_30 "Fend" | |
59 | +#define D2S_SKILL_31 "Freezing Arrow" | |
60 | +#define D2S_SKILL_32 "Valkyrie" | |
61 | +#define D2S_SKILL_33 "Pierce" | |
62 | +#define D2S_SKILL_34 "Lightning Strike" | |
63 | +#define D2S_SKILL_35 "Lightning Fury" | |
64 | +#define D2S_SKILL_36 "Fire Bolt" | |
65 | +#define D2S_SKILL_37 "Warmth" | |
66 | +#define D2S_SKILL_38 "Charged Bolt" | |
67 | +#define D2S_SKILL_39 "Ice Bolt" | |
68 | +#define D2S_SKILL_40 "Frozen Armor" | |
69 | +#define D2S_SKILL_41 "Inferno" | |
70 | +#define D2S_SKILL_42 "Static Field" | |
71 | +#define D2S_SKILL_43 "Telekinesis" | |
72 | +#define D2S_SKILL_44 "Frost Nova" | |
73 | +#define D2S_SKILL_45 "Ice Blast" | |
74 | +#define D2S_SKILL_46 "Blaze" | |
75 | +#define D2S_SKILL_47 "Fire Ball" | |
76 | +#define D2S_SKILL_48 "Nova" | |
77 | +#define D2S_SKILL_49 "Lightning" | |
78 | +#define D2S_SKILL_50 "Shiver Armor" | |
79 | +#define D2S_SKILL_51 "Fire Wall" | |
80 | +#define D2S_SKILL_52 "Enchant" | |
81 | +#define D2S_SKILL_53 "Chain Lightning" | |
82 | +#define D2S_SKILL_54 "Teleport" | |
83 | +#define D2S_SKILL_55 "Glacial Spike" | |
84 | +#define D2S_SKILL_56 "Meteor" | |
85 | +#define D2S_SKILL_57 "Thunder Storm" | |
86 | +#define D2S_SKILL_58 "Energy Shield" | |
87 | +#define D2S_SKILL_59 "Blizzard" | |
88 | +#define D2S_SKILL_60 "Chilling Armor" | |
89 | +#define D2S_SKILL_61 "Fire Mastery" | |
90 | +#define D2S_SKILL_62 "Hydra" | |
91 | +#define D2S_SKILL_63 "Lightning Mastery" | |
92 | +#define D2S_SKILL_64 "Frozen Orb" | |
93 | +#define D2S_SKILL_65 "Cold Mastery" | |
94 | +#define D2S_SKILL_66 "Amplify Damage" | |
95 | +#define D2S_SKILL_67 "Teeth" | |
96 | +#define D2S_SKILL_68 "Bone Armor" | |
97 | +#define D2S_SKILL_69 "Skeleton Mastery" | |
98 | +#define D2S_SKILL_70 "Raise Skeleton" | |
99 | +#define D2S_SKILL_71 "Dim Vision" | |
100 | +#define D2S_SKILL_72 "Weaken" | |
101 | +#define D2S_SKILL_73 "Poison Dagger" | |
102 | +#define D2S_SKILL_74 "Corpse Explosion" | |
103 | +#define D2S_SKILL_75 "Clay Golem" | |
104 | +#define D2S_SKILL_76 "Iron Maiden" | |
105 | +#define D2S_SKILL_77 "Terror" | |
106 | +#define D2S_SKILL_78 "Bone Wall" | |
107 | +#define D2S_SKILL_79 "Golem Mastery" | |
108 | +#define D2S_SKILL_80 "Raise Skeletal Mage" | |
109 | +#define D2S_SKILL_81 "Confuse" | |
110 | +#define D2S_SKILL_82 "Life Tap" | |
111 | +#define D2S_SKILL_83 "Poison Explosion" | |
112 | +#define D2S_SKILL_84 "Bone Spear" | |
113 | +#define D2S_SKILL_85 "Blood Golem" | |
114 | +#define D2S_SKILL_86 "Attract" | |
115 | +#define D2S_SKILL_87 "Decrepify" | |
116 | +#define D2S_SKILL_88 "Bone Prison" | |
117 | +#define D2S_SKILL_89 "Summon Resist" | |
118 | +#define D2S_SKILL_90 "Iron Golem" | |
119 | +#define D2S_SKILL_91 "Lower Resist" | |
120 | +#define D2S_SKILL_92 "Poison Nova" | |
121 | +#define D2S_SKILL_93 "Bone Spirit" | |
122 | +#define D2S_SKILL_94 "Fire Golem" | |
123 | +#define D2S_SKILL_95 "Revive" | |
124 | +#define D2S_SKILL_96 "Sacrifice" | |
125 | +#define D2S_SKILL_97 "Smite" | |
126 | +#define D2S_SKILL_98 "Might" | |
127 | +#define D2S_SKILL_99 "Prayer" | |
128 | +#define D2S_SKILL_100 "Resist Fire" | |
129 | +#define D2S_SKILL_101 "Holy Bolt" | |
130 | +#define D2S_SKILL_102 "Holy Fire" | |
131 | +#define D2S_SKILL_103 "Thorns" | |
132 | +#define D2S_SKILL_104 "Defiance" | |
133 | +#define D2S_SKILL_105 "Resist Cold" | |
134 | +#define D2S_SKILL_106 "Zeal" | |
135 | +#define D2S_SKILL_107 "Charge" | |
136 | +#define D2S_SKILL_108 "Blessed Aim" | |
137 | +#define D2S_SKILL_109 "Cleansing" | |
138 | +#define D2S_SKILL_110 "Resist Lightning" | |
139 | +#define D2S_SKILL_111 "Vengeance" | |
140 | +#define D2S_SKILL_112 "Blessed Hammer" | |
141 | +#define D2S_SKILL_113 "Concentration" | |
142 | +#define D2S_SKILL_114 "Holy Freeze" | |
143 | +#define D2S_SKILL_115 "Vigor" | |
144 | +#define D2S_SKILL_116 "Conversion" | |
145 | +#define D2S_SKILL_117 "Holy Shield" | |
146 | +#define D2S_SKILL_118 "Holy Shock" | |
147 | +#define D2S_SKILL_119 "Sanctuary" | |
148 | +#define D2S_SKILL_120 "Meditation" | |
149 | +#define D2S_SKILL_121 "Fist Of The Heavens" | |
150 | +#define D2S_SKILL_122 "Fanaticism" | |
151 | +#define D2S_SKILL_123 "Conviction" | |
152 | +#define D2S_SKILL_124 "Redemption" | |
153 | +#define D2S_SKILL_125 "Salvation" | |
154 | +#define D2S_SKILL_126 "Bash" | |
155 | +#define D2S_SKILL_127 "Sword mastery" | |
156 | +#define D2S_SKILL_128 "Axe mastery" | |
157 | +#define D2S_SKILL_129 "Mace mastery" | |
158 | +#define D2S_SKILL_130 "Howl" | |
159 | +#define D2S_SKILL_131 "Find Potion" | |
160 | +#define D2S_SKILL_132 "Leap" | |
161 | +#define D2S_SKILL_133 "Double Swing" | |
162 | +#define D2S_SKILL_134 "Pole Arm Mastery" | |
163 | +#define D2S_SKILL_135 "Throwing Mastery" | |
164 | +#define D2S_SKILL_136 "Spear Mastery" | |
165 | +#define D2S_SKILL_137 "Taunt" | |
166 | +#define D2S_SKILL_138 "Shout" | |
167 | +#define D2S_SKILL_139 "Stun" | |
168 | +#define D2S_SKILL_140 "Double Throw" | |
169 | +#define D2S_SKILL_141 "Increased Stamina" | |
170 | +#define D2S_SKILL_142 "Find Item" | |
171 | +#define D2S_SKILL_143 "Leap Attack" | |
172 | +#define D2S_SKILL_144 "Concentrate" | |
173 | +#define D2S_SKILL_145 "Iron Skin" | |
174 | +#define D2S_SKILL_146 "Battle Cry" | |
175 | +#define D2S_SKILL_147 "Frenzy" | |
176 | +#define D2S_SKILL_148 "Increased Speed" | |
177 | +#define D2S_SKILL_149 "Battle Orders" | |
178 | +#define D2S_SKILL_150 "Grim Ward" | |
179 | +#define D2S_SKILL_151 "Whirlwind" | |
180 | +#define D2S_SKILL_152 "Berserk" | |
181 | +#define D2S_SKILL_153 "Natural Resistance" | |
182 | +#define D2S_SKILL_154 "War Cry" | |
183 | +#define D2S_SKILL_155 "Battle Command" | |
184 | +#define D2S_SKILL_156 "Fire Hit" | |
185 | +#define D2S_SKILL_157 "Unholy Bolt" | |
186 | +#define D2S_SKILL_158 "Skeleton Raise" | |
187 | +#define D2S_SKILL_159 "Maggot Egg" | |
188 | +#define D2S_SKILL_160 "Shaman Fire" | |
189 | +#define D2S_SKILL_161 "Magottup" | |
190 | +#define D2S_SKILL_162 "Magottdown" | |
191 | +#define D2S_SKILL_163 "Magottlay" | |
192 | +#define D2S_SKILL_164 "Andrial Spray" | |
193 | +#define D2S_SKILL_165 "Jump" | |
194 | +#define D2S_SKILL_166 "Swarm_move" | |
195 | +#define D2S_SKILL_167 "Nest" | |
196 | +#define D2S_SKILL_168 "Quick Strike" | |
197 | +#define D2S_SKILL_169 "Vampire Fireball" | |
198 | +#define D2S_SKILL_170 "Vampire Firewall" | |
199 | +#define D2S_SKILL_171 "Vampire Meteor" | |
200 | +#define D2S_SKILL_172 "Gargoyle Trap" | |
201 | +#define D2S_SKILL_173 "Spider Lay" | |
202 | +#define D2S_SKILL_174 "Vampire Heal" | |
203 | +#define D2S_SKILL_175 "Vampire Raise" | |
204 | +#define D2S_SKILL_176 "Submerge" | |
205 | +#define D2S_SKILL_177 "Fetish Aura" | |
206 | +#define D2S_SKILL_178 "Fetish Inferno" | |
207 | +#define D2S_SKILL_179 "Zakarum Heal" | |
208 | +#define D2S_SKILL_180 "Emerge" | |
209 | +#define D2S_SKILL_181 "Resurrect" | |
210 | +#define D2S_SKILL_182 "Bestow" | |
211 | +#define D2S_SKILL_183 "Missile Skill1" | |
212 | +#define D2S_SKILL_184 "Mon Teleport" | |
213 | +#define D2S_SKILL_185 "Prime Lightning" | |
214 | +#define D2S_SKILL_186 "Prime Bolt" | |
215 | +#define D2S_SKILL_187 "Prime Blaze" | |
216 | +#define D2S_SKILL_188 "Prime Firewall" | |
217 | +#define D2S_SKILL_189 "Prime Spike" | |
218 | +#define D2S_SKILL_190 "Prime Ice Nova" | |
219 | +#define D2S_SKILL_191 "Prime Poison Ball" | |
220 | +#define D2S_SKILL_192 "Prime Poison Nova" | |
221 | +#define D2S_SKILL_193 "Diablight" | |
222 | +#define D2S_SKILL_194 "Diabcold" | |
223 | +#define D2S_SKILL_195 "Diabfire" | |
224 | +#define D2S_SKILL_196 "Fingermagespider" | |
225 | +#define D2S_SKILL_197 "Diabwall" | |
226 | +#define D2S_SKILL_198 "Diabrun" | |
227 | +#define D2S_SKILL_199 "Diabprison" | |
228 | +#define D2S_SKILL_200 "Poison Ball Trap" | |
229 | +#define D2S_SKILL_201 "Andy Poison Bolt" | |
230 | +#define D2S_SKILL_202 "Hireable Missile" | |
231 | +#define D2S_SKILL_203 "Desert Turret" | |
232 | +#define D2S_SKILL_204 "Arcane Tower" | |
233 | +#define D2S_SKILL_205 "Monblizzard" | |
234 | +#define D2S_SKILL_206 "Mosquito" | |
235 | +#define D2S_SKILL_207 "Cursed Ball Trap Right" | |
236 | +#define D2S_SKILL_208 "Cursed Ball Trap Left" | |
237 | +#define D2S_SKILL_209 "Monfrozenarmor" | |
238 | +#define D2S_SKILL_210 "Monbonearmor" | |
239 | +#define D2S_SKILL_211 "Monbonespirit" | |
240 | +#define D2S_SKILL_212 "Moncursecast" | |
241 | +#define D2S_SKILL_213 "Hellmeteor" | |
242 | +#define D2S_SKILL_214 "Regurgitatoreat" | |
243 | +#define D2S_SKILL_215 "Monfrenzy" | |
244 | +#define D2S_SKILL_216 "Queendeath" | |
245 | +#define D2S_SKILL_217 "Scroll Of Identify" | |
246 | +#define D2S_SKILL_218 "Book Of Identify" | |
247 | +#define D2S_SKILL_219 "Scroll Of Townportal" | |
248 | +#define D2S_SKILL_220 "Book Of Townportal" | |
249 | +#define D2S_SKILL_221 "Raven" | |
250 | +#define D2S_SKILL_222 "Poison Creeper" | |
251 | +#define D2S_SKILL_223 "Wearwolf" | |
252 | +#define D2S_SKILL_224 "Shape Shifting" | |
253 | +#define D2S_SKILL_225 "Firestorm" | |
254 | +#define D2S_SKILL_226 "Oak Sage" | |
255 | +#define D2S_SKILL_227 "Summon Spirit Wolf" | |
256 | +#define D2S_SKILL_228 "Wearbear" | |
257 | +#define D2S_SKILL_229 "Molten Boulder" | |
258 | +#define D2S_SKILL_230 "Arctic Blast" | |
259 | +#define D2S_SKILL_231 "Cycle Of Life" | |
260 | +#define D2S_SKILL_232 "Feral Rage" | |
261 | +#define D2S_SKILL_233 "Maul" | |
262 | +#define D2S_SKILL_234 "Eruption" | |
263 | +#define D2S_SKILL_235 "Cyclone Armor" | |
264 | +#define D2S_SKILL_236 "Heart Of Wolverine" | |
265 | +#define D2S_SKILL_237 "Summon Fenris" | |
266 | +#define D2S_SKILL_238 "Rabies" | |
267 | +#define D2S_SKILL_239 "Fire Claws" | |
268 | +#define D2S_SKILL_240 "Twister" | |
269 | +#define D2S_SKILL_241 "Vines" | |
270 | +#define D2S_SKILL_242 "Hunger" | |
271 | +#define D2S_SKILL_243 "Shock Wave" | |
272 | +#define D2S_SKILL_244 "Volcano" | |
273 | +#define D2S_SKILL_245 "Tornado" | |
274 | +#define D2S_SKILL_246 "Spirit Of Barbs" | |
275 | +#define D2S_SKILL_247 "Summon Grizzly" | |
276 | +#define D2S_SKILL_248 "Fury" | |
277 | +#define D2S_SKILL_249 "Armageddon" | |
278 | +#define D2S_SKILL_250 "Hurricane" | |
279 | +#define D2S_SKILL_251 "Fire Blast" | |
280 | +#define D2S_SKILL_252 "Claw Mastery" | |
281 | +#define D2S_SKILL_253 "Psychic Hammer" | |
282 | +#define D2S_SKILL_254 "Tiger Strike" | |
283 | +#define D2S_SKILL_255 "Dragon Talon" | |
284 | +#define D2S_SKILL_256 "Shock Field" | |
285 | +#define D2S_SKILL_257 "Blade Sentinel" | |
286 | +#define D2S_SKILL_258 "Quickness" | |
287 | +#define D2S_SKILL_259 "Fists Of Fire" | |
288 | +#define D2S_SKILL_260 "Dragon Claw" | |
289 | +#define D2S_SKILL_261 "Charged Bolt Sentry" | |
290 | +#define D2S_SKILL_262 "Wake Of Fire Sentry" | |
291 | +#define D2S_SKILL_263 "Weapon Block" | |
292 | +#define D2S_SKILL_264 "Cloak Of Shadows" | |
293 | +#define D2S_SKILL_265 "Cobra Strike" | |
294 | +#define D2S_SKILL_266 "Blade Fury" | |
295 | +#define D2S_SKILL_267 "Fade" | |
296 | +#define D2S_SKILL_268 "Shadow Warrior" | |
297 | +#define D2S_SKILL_269 "Claws Of Thunder" | |
298 | +#define D2S_SKILL_270 "Dragon Tail" | |
299 | +#define D2S_SKILL_271 "Lightning Sentry" | |
300 | +#define D2S_SKILL_272 "Inferno Sentry" | |
301 | +#define D2S_SKILL_273 "Mind Blast" | |
302 | +#define D2S_SKILL_274 "Blades Of Ice" | |
303 | +#define D2S_SKILL_275 "Dragon Flight" | |
304 | +#define D2S_SKILL_276 "Death Sentry" | |
305 | +#define D2S_SKILL_277 "Blade Shield" | |
306 | +#define D2S_SKILL_278 "Venom" | |
307 | +#define D2S_SKILL_279 "Shadow Master" | |
308 | +#define D2S_SKILL_280 "Royal Strike" | |
309 | +#define D2S_SKILL_281 "Wake Of Destruction Sentry" | |
310 | +#define D2S_SKILL_282 "Imp Inferno" | |
311 | +#define D2S_SKILL_283 "Imp Fireball" | |
312 | +#define D2S_SKILL_284 "Baal Taunt" | |
313 | +#define D2S_SKILL_285 "Baal Corpse Explode" | |
314 | +#define D2S_SKILL_286 "Baal Monster Spawn" | |
315 | +#define D2S_SKILL_287 "Catapult Charged Ball" | |
316 | +#define D2S_SKILL_288 "Catapult Spike Ball" | |
317 | +#define D2S_SKILL_289 "Suck Blood" | |
318 | +#define D2S_SKILL_290 "Cry Help" | |
319 | +#define D2S_SKILL_291 "Healing Vortex" | |
320 | +#define D2S_SKILL_292 "Teleport 2" | |
321 | +#define D2S_SKILL_293 "Self Resurrect" | |
322 | +#define D2S_SKILL_294 "Vine Attack" | |
323 | +#define D2S_SKILL_295 "Overseer Whip" | |
324 | +#define D2S_SKILL_296 "Barbs Aura" | |
325 | +#define D2S_SKILL_297 "Wolverine Aura" | |
326 | +#define D2S_SKILL_298 "Oak Sage Aura" | |
327 | +#define D2S_SKILL_299 "Imp Fire Missile" | |
328 | +#define D2S_SKILL_300 "Impregnate" | |
329 | +#define D2S_SKILL_301 "Siege Beast Stomp" | |
330 | +#define D2S_SKILL_302 "Minionspawner" | |
331 | +#define D2S_SKILL_303 "Catapultblizzard" | |
332 | +#define D2S_SKILL_304 "Catapultplague" | |
333 | +#define D2S_SKILL_305 "Catapultmeteor" | |
334 | +#define D2S_SKILL_306 "Boltsentry" | |
335 | +#define D2S_SKILL_307 "Corpsecycler" | |
336 | +#define D2S_SKILL_308 "Deathmaul" | |
337 | +#define D2S_SKILL_309 "Defense Curse" | |
338 | +#define D2S_SKILL_310 "Blood Mana" | |
339 | +#define D2S_SKILL_311 "Mon Inferno Sentry" | |
340 | +#define D2S_SKILL_312 "Mon Death Sentry" | |
341 | +#define D2S_SKILL_313 "Sentry Lightning" | |
342 | +#define D2S_SKILL_314 "Fenris Rage" | |
343 | +#define D2S_SKILL_315 "Baal Tentacle" | |
344 | +#define D2S_SKILL_316 "Baal Nova" | |
345 | +#define D2S_SKILL_317 "Baal Inferno" | |
346 | +#define D2S_SKILL_318 "Baal Cold Missiles" | |
347 | +#define D2S_SKILL_319 "Mega Demon Inferno" | |
348 | +#define D2S_SKILL_320 "Evil Hut Spawner" | |
349 | +#define D2S_SKILL_321 "Countess Firewall" | |
350 | +#define D2S_SKILL_322 "Impbolt" | |
351 | +#define D2S_SKILL_323 "Horror Arctic Blast" | |
352 | +#define D2S_SKILL_324 "Death Sentry Ltng" | |
353 | +#define D2S_SKILL_325 "Vinecycler" | |
354 | +#define D2S_SKILL_326 "Bearsmite" | |
355 | +#define D2S_SKILL_327 "Resurrect2" | |
356 | +#define D2S_SKILL_328 "Bloodlord Frenzy" | |
357 | +#define D2S_SKILL_329 "Baal Teleport" | |
358 | +#define D2S_SKILL_330 "Imp Teleport" | |
359 | +#define D2S_SKILL_331 "Baal Clone Teleport" | |
360 | +#define D2S_SKILL_332 "Zakarum Lightning" | |
361 | +#define D2S_SKILL_333 "Vampire Missile" | |
362 | +#define D2S_SKILL_334 "Mephisto Missile" | |
363 | +#define D2S_SKILL_335 "Doom Knight Missile" | |
364 | +#define D2S_SKILL_336 "Rogue Missile" | |
365 | +#define D2S_SKILL_337 "Hydra Missile" | |
366 | +#define D2S_SKILL_338 "Necro Mage Missile" | |
367 | +#define D2S_SKILL_339 "Monbow" | |
368 | +#define D2S_SKILL_340 "Monfirearrow" | |
369 | +#define D2S_SKILL_341 "Moncoldarrow" | |
370 | +#define D2S_SKILL_342 "Monexplodingarrow" | |
371 | +#define D2S_SKILL_343 "Monfreezingarrow" | |
372 | +#define D2S_SKILL_344 "Monpowerstrike" | |
373 | +#define D2S_SKILL_345 "Succubusbolt" | |
374 | +#define D2S_SKILL_346 "Mephfrostnova" | |
375 | +#define D2S_SKILL_347 "Monicespear" | |
376 | +#define D2S_SKILL_348 "Shaman Ice" | |
377 | +#define D2S_SKILL_349 "Diablogeddon" | |
378 | +#define D2S_SKILL_350 "Delerium Change" | |
379 | +#define D2S_SKILL_351 "Nihlathak Corpse Explosion" | |
380 | +#define D2S_SKILL_352 "Serpent Charge" | |
381 | +#define D2S_SKILL_353 "Trap Nova" | |
382 | +#define D2S_SKILL_354 "Unholy Boltex" | |
383 | +#define D2S_SKILL_355 "Shaman Fireex" | |
384 | +#define D2S_SKILL_356 "Imp Fire Missile Ex" | |
385 | + | |
386 | +// Mercenary data | |
387 | +#define D2S_MERC_NAME_0 "Aliza" | |
388 | +#define D2S_MERC_NAME_1 "Amplisa" | |
389 | +#define D2S_MERC_NAME_2 "Annor" | |
390 | +#define D2S_MERC_NAME_3 "Abhaya" | |
391 | +#define D2S_MERC_NAME_4 "Elly" | |
392 | +#define D2S_MERC_NAME_5 "Paige" | |
393 | +#define D2S_MERC_NAME_6 "Basanti" | |
394 | +#define D2S_MERC_NAME_7 "Blaise" | |
395 | +#define D2S_MERC_NAME_8 "Kyoko" | |
396 | +#define D2S_MERC_NAME_9 "Klaudia" | |
397 | +#define D2S_MERC_NAME_10 "Kundri" | |
398 | +#define D2S_MERC_NAME_11 "Kyle" | |
399 | +#define D2S_MERC_NAME_12 "Visala" | |
400 | +#define D2S_MERC_NAME_13 "Elexa" | |
401 | +#define D2S_MERC_NAME_14 "Floria" | |
402 | +#define D2S_MERC_NAME_15 "Fiona" | |
403 | +#define D2S_MERC_NAME_16 "Gwinni" | |
404 | +#define D2S_MERC_NAME_17 "Gaile" | |
405 | +#define D2S_MERC_NAME_18 "Hannah" | |
406 | +#define D2S_MERC_NAME_19 "Heather" | |
407 | +#define D2S_MERC_NAME_20 "Iantha" | |
408 | +#define D2S_MERC_NAME_21 "Diane" | |
409 | +#define D2S_MERC_NAME_22 "Isolde" | |
410 | +#define D2S_MERC_NAME_23 "Divo" | |
411 | +#define D2S_MERC_NAME_24 "Ithera" | |
412 | +#define D2S_MERC_NAME_25 "Itonya" | |
413 | +#define D2S_MERC_NAME_26 "Liene" | |
414 | +#define D2S_MERC_NAME_27 "Maeko" | |
415 | +#define D2S_MERC_NAME_28 "Mahala" | |
416 | +#define D2S_MERC_NAME_29 "Liaza" | |
417 | +#define D2S_MERC_NAME_30 "Meghan" | |
418 | +#define D2S_MERC_NAME_31 "Olena" | |
419 | +#define D2S_MERC_NAME_32 "Oriana" | |
420 | +#define D2S_MERC_NAME_33 "Ryann" | |
421 | +#define D2S_MERC_NAME_34 "Rozene" | |
422 | +#define D2S_MERC_NAME_35 "Raissa" | |
423 | +#define D2S_MERC_NAME_36 "Sharyn" | |
424 | +#define D2S_MERC_NAME_37 "Shikha" | |
425 | +#define D2S_MERC_NAME_38 "Debi" | |
426 | +#define D2S_MERC_NAME_39 "Tylena" | |
427 | +#define D2S_MERC_NAME_40 "Wendy" | |
428 | +#define D2S_MERC_NAME_41 "Hazade" | |
429 | +#define D2S_MERC_NAME_42 "Alhizeer" | |
430 | +#define D2S_MERC_NAME_43 "Azrael" | |
431 | +#define D2S_MERC_NAME_44 "Ahsab" | |
432 | +#define D2S_MERC_NAME_45 "Chalan" | |
433 | +#define D2S_MERC_NAME_46 "Haseen" | |
434 | +#define D2S_MERC_NAME_47 "Razan" | |
435 | +#define D2S_MERC_NAME_48 "Emilio" | |
436 | +#define D2S_MERC_NAME_49 "Pratham" | |
437 | +#define D2S_MERC_NAME_50 "Fazel" | |
438 | +#define D2S_MERC_NAME_51 "Jemali" | |
439 | +#define D2S_MERC_NAME_52 "Kasim" | |
440 | +#define D2S_MERC_NAME_53 "Gulzar" | |
441 | +#define D2S_MERC_NAME_54 "Mizan" | |
442 | +#define D2S_MERC_NAME_55 "Leharas" | |
443 | +#define D2S_MERC_NAME_56 "Durga" | |
444 | +#define D2S_MERC_NAME_57 "Neeraj" | |
445 | +#define D2S_MERC_NAME_58 "Ilzan" | |
446 | +#define D2S_MERC_NAME_59 "Zanarhi" | |
447 | +#define D2S_MERC_NAME_60 "Waheed" | |
448 | +#define D2S_MERC_NAME_61 "Vikhyat" | |
449 | +#define D2S_MERC_NAME_62 "Jelani" | |
450 | +#define D2S_MERC_NAME_63 "Barani" | |
451 | +#define D2S_MERC_NAME_64 "Jabari" | |
452 | +#define D2S_MERC_NAME_65 "Devak" | |
453 | +#define D2S_MERC_NAME_66 "Raldin" | |
454 | +#define D2S_MERC_NAME_67 "Telash" | |
455 | +#define D2S_MERC_NAME_68 "Ajheed" | |
456 | +#define D2S_MERC_NAME_69 "Narphet" | |
457 | +#define D2S_MERC_NAME_70 "Khaleel" | |
458 | +#define D2S_MERC_NAME_71 "Phaet" | |
459 | +#define D2S_MERC_NAME_72 "Geshef" | |
460 | +#define D2S_MERC_NAME_73 "Vanji" | |
461 | +#define D2S_MERC_NAME_74 "Haphet" | |
462 | +#define D2S_MERC_NAME_75 "Thadar" | |
463 | +#define D2S_MERC_NAME_76 "Yatiraj" | |
464 | +#define D2S_MERC_NAME_77 "Rhadge" | |
465 | +#define D2S_MERC_NAME_78 "Yashied" | |
466 | +#define D2S_MERC_NAME_79 "Jarulf" | |
467 | +#define D2S_MERC_NAME_80 "Flux" | |
468 | +#define D2S_MERC_NAME_81 "Scorch" | |
469 | +#define D2S_MERC_NAME_82 "Varaya" | |
470 | +#define D2S_MERC_NAME_83 "Khan" | |
471 | +#define D2S_MERC_NAME_84 "Klisk" | |
472 | +#define D2S_MERC_NAME_85 "Bors" | |
473 | +#define D2S_MERC_NAME_86 "Brom" | |
474 | +#define D2S_MERC_NAME_87 "Wiglaf" | |
475 | +#define D2S_MERC_NAME_88 "Hrothgar" | |
476 | +#define D2S_MERC_NAME_89 "Scyld" | |
477 | +#define D2S_MERC_NAME_90 "Healfdane" | |
478 | +#define D2S_MERC_NAME_91 "Heorogar" | |
479 | +#define D2S_MERC_NAME_92 "Halgaunt" | |
480 | +#define D2S_MERC_NAME_93 "Hygelac" | |
481 | +#define D2S_MERC_NAME_94 "Egtheow" | |
482 | +#define D2S_MERC_NAME_95 "Bohdan" | |
483 | +#define D2S_MERC_NAME_96 "Wulfgar" | |
484 | +#define D2S_MERC_NAME_97 "Hild" | |
485 | +#define D2S_MERC_NAME_98 "Heatholaf" | |
486 | +#define D2S_MERC_NAME_99 "Weder" | |
487 | +#define D2S_MERC_NAME_100 "Vikhyat" | |
488 | +#define D2S_MERC_NAME_101 "Unferth" | |
489 | +#define D2S_MERC_NAME_102 "Sigemund" | |
490 | +#define D2S_MERC_NAME_103 "Heremod" | |
491 | +#define D2S_MERC_NAME_104 "Hengest" | |
492 | +#define D2S_MERC_NAME_105 "Folcwald" | |
493 | +#define D2S_MERC_NAME_106 "Frisian" | |
494 | +#define D2S_MERC_NAME_107 "Hnaef" | |
495 | +#define D2S_MERC_NAME_108 "Guthlaf" | |
496 | +#define D2S_MERC_NAME_109 "Oslaf" | |
497 | +#define D2S_MERC_NAME_110 "Yrmenlaf" | |
498 | +#define D2S_MERC_NAME_111 "Garmund" | |
499 | +#define D2S_MERC_NAME_112 "Freawaru" | |
500 | +#define D2S_MERC_NAME_113 "Eadgils" | |
501 | +#define D2S_MERC_NAME_114 "Onela" | |
502 | +#define D2S_MERC_NAME_115 "Damien" | |
503 | +#define D2S_MERC_NAME_116 "Erfor" | |
504 | +#define D2S_MERC_NAME_117 "Weohstan" | |
505 | +#define D2S_MERC_NAME_118 "Wulf" | |
506 | +#define D2S_MERC_NAME_119 "Bulwye" | |
507 | +#define D2S_MERC_NAME_120 "Lief" | |
508 | +#define D2S_MERC_NAME_121 "Magnus" | |
509 | +#define D2S_MERC_NAME_122 "Klatu" | |
510 | +#define D2S_MERC_NAME_123 "Drus" | |
511 | +#define D2S_MERC_NAME_124 "Hoku" | |
512 | +#define D2S_MERC_NAME_125 "Kord" | |
513 | +#define D2S_MERC_NAME_126 "Uther" | |
514 | +#define D2S_MERC_NAME_127 "Ip" | |
515 | +#define D2S_MERC_NAME_128 "Ulf" | |
516 | +#define D2S_MERC_NAME_129 "Tharr" | |
517 | +#define D2S_MERC_NAME_130 "Kaelim" | |
518 | +#define D2S_MERC_NAME_131 "Ulric" | |
519 | +#define D2S_MERC_NAME_132 "Alaric" | |
520 | +#define D2S_MERC_NAME_133 "Ethelred" | |
521 | +#define D2S_MERC_NAME_134 "Caden" | |
522 | +#define D2S_MERC_NAME_135 "Elgifu" | |
523 | +#define D2S_MERC_NAME_136 "Tostig" | |
524 | +#define D2S_MERC_NAME_137 "Alcuin" | |
525 | +#define D2S_MERC_NAME_138 "Emund" | |
526 | +#define D2S_MERC_NAME_139 "Sigurd" | |
527 | +#define D2S_MERC_NAME_140 "Gorm" | |
528 | +#define D2S_MERC_NAME_141 "Hollis" | |
529 | +#define D2S_MERC_NAME_142 "Ragnar" | |
530 | +#define D2S_MERC_NAME_143 "Torkel" | |
531 | +#define D2S_MERC_NAME_144 "Wulfstan" | |
532 | +#define D2S_MERC_NAME_145 "Alban" | |
533 | +#define D2S_MERC_NAME_146 "Barloc" | |
534 | +#define D2S_MERC_NAME_147 "Bill" | |
535 | +#define D2S_MERC_NAME_148 "Theodoric" | |
536 | + | |
537 | +#define D2S_MERC_ID_0 "Rogue Scout Fire Arrow [Normal" | |
538 | +#define D2S_MERC_ID_1 "Rogue Scout Cold Arrow [Normal" | |
539 | +#define D2S_MERC_ID_2 "Rogue Scout Fire Arrow [Nightmare]" | |
540 | +#define D2S_MERC_ID_3 "Rogue Scout Cold Arrow [Nightmare]" | |
541 | +#define D2S_MERC_ID_4 "Rogue Scout Fire Arrow [Hell]" | |
542 | +#define D2S_MERC_ID_5 "Rogue Scout Cold Arrow [Hell]" | |
543 | +#define D2S_MERC_ID_6 "Desert Mercenary Combat [Normal]" | |
544 | +#define D2S_MERC_ID_7 "Desert Mercenary Defensive [Normal]" | |
545 | +#define D2S_MERC_ID_8 "Desert Mercenary Offensive [Normal]" | |
546 | +#define D2S_MERC_ID_9 "Desert Mercenary Combat [Nightmare]" | |
547 | +#define D2S_MERC_ID_10 "Desert Mercenary Defensive [Nightmare]" | |
548 | +#define D2S_MERC_ID_11 "Desert Mercenary Offensive [Nightmare]" | |
549 | +#define D2S_MERC_ID_12 "Desert Mercenary Combat [Hell]" | |
550 | +#define D2S_MERC_ID_13 "Desert Mercenary Defensive [Hell]" | |
551 | +#define D2S_MERC_ID_14 "Desert Mercenary Offensive [Hell]" | |
552 | +#define D2S_MERC_ID_15 "Eastern Sorceror Fire Spells [Normal]" | |
553 | +#define D2S_MERC_ID_16 "Eastern Sorceror Cold Spells [Normal]" | |
554 | +#define D2S_MERC_ID_17 "Eastern Sorceror Lightning Spells [Normal]" | |
555 | +#define D2S_MERC_ID_18 "Eastern Sorceror Fire Spells [Nightmare]" | |
556 | +#define D2S_MERC_ID_19 "Eastern Sorceror Cold Spells [Nightmare]" | |
557 | +#define D2S_MERC_ID_20 "Eastern Sorceror Lightning Spells [Nightmare]" | |
558 | +#define D2S_MERC_ID_21 "Eastern Sorceror Fire Spells [Hell]" | |
559 | +#define D2S_MERC_ID_22 "Eastern Sorceror Cold Spells [Hell]" | |
560 | +#define D2S_MERC_ID_23 "Eastern Sorceror Lightning Spells [Hell]" | |
561 | +#define D2S_MERC_ID_24 "Barbarian [Normal]" | |
562 | +#define D2S_MERC_ID_25 "Barbarian [Normal]" | |
563 | +#define D2S_MERC_ID_26 "Barbarian [Nightmare]" | |
564 | +#define D2S_MERC_ID_27 "Barbarian [Nightmare]" | |
565 | +#define D2S_MERC_ID_28 "Barbarian [Hell]" | |
566 | +#define D2S_MERC_ID_29 "Barbarian [Hell]" | |
567 | + | |
26 | 568 | #endif |
27 | 569 | \ No newline at end of file | ... | ... |