mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
515 lines
12 KiB
C
515 lines
12 KiB
C
/* EQEMu: Everquest Server Emulator
|
|
Copyright (C) 2001-2002 EQEMu Development Team (http://eqemu.org)
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY except by those people which sell it, which
|
|
are required to give you total support for your newly bought product;
|
|
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
#ifndef RACES_H
|
|
#define RACES_H
|
|
#include "../common/types.h"
|
|
#include <cmath>
|
|
|
|
//theres a big list straight from the client below.
|
|
|
|
#define HUMAN 1
|
|
#define BARBARIAN 2
|
|
#define ERUDITE 3
|
|
#define WOOD_ELF 4
|
|
#define HIGH_ELF 5
|
|
#define DARK_ELF 6
|
|
#define HALF_ELF 7
|
|
#define DWARF 8
|
|
#define TROLL 9
|
|
#define OGRE 10
|
|
#define HALFLING 11
|
|
#define GNOME 12
|
|
#define WEREWOLF 14
|
|
#define WOLF 42
|
|
#define BEAR 43
|
|
#define SKELETON 60
|
|
#define TIGER 63
|
|
#define ELEMENTAL 75
|
|
#define ALLIGATOR 91
|
|
#define EYE_OF_ZOMM 108
|
|
#define WOLF_ELEMENTAL 120
|
|
#define INVISIBLE_MAN 127
|
|
#define IKSAR 128
|
|
#define VAHSHIR 130
|
|
#define CONTROLLED_BOAT 141
|
|
#define IKSAR_SKELETON 161
|
|
#define FROGLOK 330
|
|
#define FROGLOK2 74 // Not sure why /who all reports race as 74 for frogloks
|
|
#define DRAKKIN 522 // 32768
|
|
#define EMU_RACE_NPC 131069 // was 65533
|
|
#define EMU_RACE_PET 131070 // was 65534
|
|
#define EMU_RACE_UNKNOWN 131071 // was 65535
|
|
|
|
|
|
#define human_1 1
|
|
#define barbarian_1 2
|
|
#define erudite_1 4
|
|
#define woodelf_1 8
|
|
#define highelf_1 16
|
|
#define darkelf_1 32
|
|
#define halfelf_1 64
|
|
#define dwarf_1 128
|
|
#define troll_1 256
|
|
#define ogre_1 512
|
|
#define halfling_1 1024
|
|
#define gnome_1 2048
|
|
#define iksar_1 4096
|
|
#define vahshir_1 8192
|
|
#define rall_1 16384 //froglok?
|
|
#define drakkin_1 32768
|
|
|
|
const char* GetRaceName(uint16 race);
|
|
|
|
uint32 GetArrayRace(uint16 race);
|
|
inline uint32 GetRaceBitmask(uint16 race) { return uint32(pow(2.0f, float(GetArrayRace(race) - 1))); }
|
|
|
|
#define Array_Race_UNKNOWN 0
|
|
#define Array_Race_HUMAN 1
|
|
#define Array_Race_BARBARIAN 2
|
|
#define Array_Race_ERUDITE 3
|
|
#define Array_Race_WOOD_ELF 4
|
|
#define Array_Race_HIGH_ELF 5
|
|
#define Array_Race_DARK_ELF 6
|
|
#define Array_Race_HALF_ELF 7
|
|
#define Array_Race_DWARF 8
|
|
#define Array_Race_TROLL 9
|
|
#define Array_Race_OGRE 10
|
|
#define Array_Race_HALFLING 11
|
|
#define Array_Race_GNOME 12
|
|
#define Array_Race_IKSAR 13
|
|
#define Array_Race_VAHSHIR 14
|
|
#define Array_Race_FROGLOK 15
|
|
#define Array_Race_DRAKKIN 16
|
|
#define Array_Race_NPC 17
|
|
#define Array_Race_PET 18
|
|
#define Count_Array_Race 19 // used for array defines, must be the max + 1
|
|
#define PLAYER_RACE_COUNT 16 // The count of all player races
|
|
|
|
/*
|
|
|
|
//pulled from the client by ksmith:
|
|
$races_table = array(
|
|
1 => "Human",
|
|
2 => "Barbarian",
|
|
3 => "Erudite",
|
|
4 => "Wood Elf",
|
|
5 => "High Elf",
|
|
6 => "Dark Elf",
|
|
7 => "Half Elf",
|
|
8 => "Dwarf",
|
|
9 => "Troll",
|
|
10 => "Ogre",
|
|
11 => "Halfling",
|
|
12 => "Gnome",
|
|
13 => "Aviak",
|
|
14 => "Were Wolf",
|
|
15 => "Brownie",
|
|
16 => "Centaur",
|
|
17 => "Golem",
|
|
18 => "Giant / Cyclops",
|
|
19 => "Trakenon",
|
|
20 => "Doppleganger",
|
|
21 => "Evil Eye",
|
|
22 => "Beetle",
|
|
23 => "Kerra",
|
|
24 => "Fish",
|
|
25 => "Fairy",
|
|
26 => "Old Froglok",
|
|
27 => "Old Froglok Ghoul",
|
|
28 => "Fungusman",
|
|
29 => "Gargoyle",
|
|
30 => "Gasbag",
|
|
31 => "Gelatinous Cube",
|
|
32 => "Ghost",
|
|
33 => "Ghoul",
|
|
34 => "Giant Bat",
|
|
35 => "Giant Eel",
|
|
36 => "Giant Rat",
|
|
37 => "Giant Snake",
|
|
38 => "Giant Spider",
|
|
39 => "Gnoll",
|
|
40 => "Goblin",
|
|
41 => "Gorilla",
|
|
42 => "Wolf",
|
|
43 => "Bear",
|
|
44 => "Freeport Guards",
|
|
45 => "Demi Lich",
|
|
46 => "Imp",
|
|
47 => "Griffin",
|
|
48 => "Kobold",
|
|
49 => "Lava Dragon",
|
|
50 => "Lion",
|
|
51 => "Lizard Man",
|
|
52 => "Mimic",
|
|
53 => "Minotaur",
|
|
54 => "Orc",
|
|
55 => "Human Beggar",
|
|
56 => "Pixie",
|
|
57 => "Dracnid",
|
|
58 => "Solusek Ro",
|
|
59 => "Bloodgills",
|
|
60 => "Skeleton",
|
|
61 => "Shark",
|
|
62 => "Tunare",
|
|
63 => "Tiger",
|
|
64 => "Treant",
|
|
65 => "Vampire",
|
|
66 => "Rallos Zek",
|
|
67 => "Highpass Citizen",
|
|
68 => "Tentacle",
|
|
69 => "Will 'O Wisp",
|
|
70 => "Zombie",
|
|
71 => "Qeynos Citizen",
|
|
72 => "Ship",
|
|
73 => "Launch",
|
|
74 => "Piranha",
|
|
75 => "Elemental",
|
|
76 => "Puma",
|
|
77 => "Neriak Citizen",
|
|
78 => "Erudite Citizen",
|
|
79 => "Bixie",
|
|
80 => "Reanimated Hand",
|
|
81 => "Rivervale Citizen",
|
|
82 => "Scarecrow",
|
|
83 => "Skunk",
|
|
84 => "Snake Elemental",
|
|
85 => "Spectre",
|
|
86 => "Sphinx",
|
|
87 => "Armadillo",
|
|
88 => "Clockwork Gnome",
|
|
89 => "Drake",
|
|
90 => "Halas Citizen",
|
|
91 => "Alligator",
|
|
92 => "Grobb Citizen",
|
|
93 => "Oggok Citizen",
|
|
94 => "Kaladim Citizen",
|
|
95 => "Cazic Thule",
|
|
96 => "Cockatrice",
|
|
97 => "Daisy Man",
|
|
98 => "Elf Vampire",
|
|
99 => "Denizen",
|
|
100 => "Dervish",
|
|
101 => "Efreeti",
|
|
102 => "Old Froglok Tadpole",
|
|
103 => "Kedge",
|
|
104 => "Leech",
|
|
105 => "Swordfish",
|
|
106 => "Felguard",
|
|
107 => "Mammoth",
|
|
108 => "Eye of Zomm",
|
|
109 => "Wasp",
|
|
110 => "Mermaid",
|
|
111 => "Harpie",
|
|
112 => "Fayguard",
|
|
113 => "Drixie",
|
|
114 => "Ghost Ship",
|
|
115 => "Clam",
|
|
116 => "Sea Horse",
|
|
117 => "Ghost Dwarf",
|
|
118 => "Erudite Ghost",
|
|
119 => "Sabertooth Cat",
|
|
120 => "Wolf Elemental",
|
|
121 => "Gorgon",
|
|
122 => "Dragon Skeleton",
|
|
123 => "Innoruuk",
|
|
124 => "Unicorn",
|
|
125 => "Pegasus",
|
|
126 => "Djinn",
|
|
127 => "Invisible Man",
|
|
128 => "Iksar",
|
|
129 => "Scorpion",
|
|
130 => "Vah Shir",
|
|
131 => "Sarnak",
|
|
132 => "Draglock",
|
|
133 => "Lycanthrope",
|
|
134 => "Mosquito",
|
|
135 => "Rhino",
|
|
136 => "Xalgoz",
|
|
137 => "Kunark Goblin",
|
|
138 => "Yeti",
|
|
139 => "Iksar Citizen",
|
|
140 => "Forest Giant",
|
|
141 => "Boat",
|
|
142 => "UNKNOWN RACE",
|
|
143 => "UNKNOWN RACE",
|
|
144 => "Burynai",
|
|
145 => "Goo",
|
|
146 => "Spectral Sarnak",
|
|
147 => "Spectral Iksar",
|
|
148 => "Kunark Fish",
|
|
149 => "Iksar Scorpion",
|
|
150 => "Erollisi",
|
|
151 => "Tribunal",
|
|
152 => "Bertoxxulous",
|
|
153 => "Bristlebane",
|
|
154 => "Fay Drake",
|
|
155 => "Sarnak Skeleton",
|
|
156 => "Ratman",
|
|
157 => "Wyvern",
|
|
158 => "Wurm",
|
|
159 => "Devourer",
|
|
160 => "Iksar Golem",
|
|
161 => "Iksar Skeleton",
|
|
162 => "Man Eating Plant",
|
|
163 => "Raptor",
|
|
164 => "Sarnak Golem",
|
|
165 => "Water Dragon",
|
|
166 => "Iksar Hand",
|
|
167 => "Succulent",
|
|
168 => "Flying Monkey",
|
|
169 => "Brontotherium",
|
|
170 => "Snow Dervish",
|
|
171 => "Dire Wolf",
|
|
172 => "Manticore",
|
|
173 => "Totem",
|
|
174 => "Cold Spectre",
|
|
175 => "Enchanted Armor",
|
|
176 => "Snow Bunny",
|
|
177 => "Walrus",
|
|
178 => "Rock-gem Men",
|
|
179 => "UNKNOWN RACE",
|
|
180 => "UNKNOWN RACE",
|
|
181 => "Yak Man",
|
|
182 => "Faun",
|
|
183 => "Coldain",
|
|
184 => "Velious Dragons",
|
|
185 => "Hag",
|
|
186 => "Hippogriff",
|
|
187 => "Siren",
|
|
188 => "Frost Giant",
|
|
189 => "Storm Giant",
|
|
190 => "Ottermen",
|
|
191 => "Walrus Man",
|
|
192 => "Clockwork Dragon",
|
|
193 => "Abhorent",
|
|
194 => "Sea Turtle",
|
|
195 => "Black and White Dragons",
|
|
196 => "Ghost Dragon",
|
|
197 => "Ronnie Test",
|
|
198 => "Prismatic Dragon",
|
|
199 => "ShikNar",
|
|
200 => "Rockhopper",
|
|
201 => "Underbulk",
|
|
202 => "Grimling",
|
|
203 => "Vacuum Worm",
|
|
204 => "Evan Test",
|
|
205 => "Kahli Shah",
|
|
206 => "Owlbear",
|
|
207 => "Rhino Beetle",
|
|
208 => "Vampyre",
|
|
209 => "Earth Elemental",
|
|
210 => "Air Elemental",
|
|
211 => "Water Elemental",
|
|
212 => "Fire Elemental",
|
|
213 => "Wetfang Minnow",
|
|
214 => "Thought Horror",
|
|
215 => "Tegi",
|
|
216 => "Horse",
|
|
217 => "Shissar",
|
|
218 => "Fungal Fiend",
|
|
219 => "Vampire Volatalis",
|
|
220 => "StoneGrabber",
|
|
221 => "Scarlet Cheetah",
|
|
222 => "Zelniak",
|
|
223 => "Lightcrawler",
|
|
224 => "Shade",
|
|
225 => "Sunflower",
|
|
226 => "Sun Revenant",
|
|
227 => "Shrieker",
|
|
228 => "Galorian",
|
|
229 => "Netherbian",
|
|
230 => "Akheva",
|
|
231 => "Spire Spirit",
|
|
232 => "Sonic Wolf",
|
|
233 => "Ground Shaker",
|
|
234 => "Vah Shir Skeleton",
|
|
235 => "Mutant Humanoid",
|
|
236 => "Seru",
|
|
237 => "Recuso",
|
|
238 => "Vah Shir King",
|
|
239 => "Vah Shir Guard",
|
|
240 => "Teleport Man",
|
|
241 => "Lujein",
|
|
242 => "Naiad",
|
|
243 => "Nymph",
|
|
244 => "Ent",
|
|
245 => "Fly Man",
|
|
246 => "Tarew Marr",
|
|
247 => "Sol Ro",
|
|
248 => "Clockwork Golem",
|
|
249 => "Clockwork Brain",
|
|
250 => "Spectral Banshee",
|
|
251 => "Guard of Justice",
|
|
252 => "UNKNOWN RACE",
|
|
253 => "Disease Boss",
|
|
254 => "Sol Ro Guard",
|
|
255 => "New Bertox",
|
|
256 => "New Tribunal",
|
|
257 => "Terris Thule",
|
|
258 => "Vegerog",
|
|
259 => "Crocodile",
|
|
260 => "Bat",
|
|
261 => "Slarghilug",
|
|
262 => "Tranquilion",
|
|
263 => "Tin Soldier",
|
|
264 => "Nightmare Wraith",
|
|
265 => "Malarian",
|
|
266 => "Knight of Pestilence",
|
|
267 => "Lepertoloth",
|
|
268 => "Bubonian Boss",
|
|
269 => "Bubonian Underling",
|
|
270 => "Pusling",
|
|
271 => "Water Mephit",
|
|
272 => "Stormrider",
|
|
273 => "Junk Beast",
|
|
274 => "Broken Clockwork",
|
|
275 => "Giant Clockwork",
|
|
276 => "Clockwork Beetle",
|
|
277 => "Nightmare Goblin",
|
|
278 => "Karana",
|
|
279 => "Blood Raven",
|
|
280 => "Nightmare Gargoyle",
|
|
281 => "Mouths of Insanity",
|
|
282 => "Skeletal Horse",
|
|
283 => "Saryn",
|
|
284 => "Fennin Ro",
|
|
285 => "Tormentor",
|
|
286 => "Necro Priest",
|
|
287 => "Nightmare",
|
|
288 => "New Rallos Zek",
|
|
289 => "Vallon Zek",
|
|
290 => "Tallon Zek",
|
|
291 => "Air Mephit",
|
|
292 => "Earth Mephit",
|
|
293 => "Fire Mephit",
|
|
294 => "Nightmare Mephit",
|
|
295 => "Zebuxoruk",
|
|
296 => "Mithaniel Marr",
|
|
297 => "Undead Knight",
|
|
298 => "The Rathe",
|
|
299 => "Xegony",
|
|
300 => "Fiend",
|
|
301 => "Test Object",
|
|
302 => "Crab",
|
|
303 => "Phoenix",
|
|
304 => "PoP Dragon",
|
|
305 => "PoP Bear",
|
|
306 => "Storm Taarid",
|
|
307 => "Storm Satuur",
|
|
308 => "Storm Kuraaln",
|
|
309 => "Storm Volaas",
|
|
310 => "Storm Mana",
|
|
311 => "Storm Fire",
|
|
312 => "Storm Celestial",
|
|
313 => "War Wraith",
|
|
314 => "Wrulon",
|
|
315 => "Kraken",
|
|
316 => "Poison Frog",
|
|
317 => "Queztocoatal",
|
|
318 => "Valorian",
|
|
319 => "War Boar",
|
|
320 => "PoP Efreeti",
|
|
321 => "War Boar Unarmored",
|
|
322 => "Black Knight",
|
|
323 => "Animated Armor",
|
|
324 => "Undead Footman",
|
|
325 => "Rallos Zek Minion",
|
|
326 => "Arachnid",
|
|
327 => "Crystal Spider",
|
|
328 => "Zeb Cage",
|
|
329 => "BoT Portal",
|
|
330 => "Froglok",
|
|
331 => "Troll Buccaneer",
|
|
332 => "Troll Freebooter",
|
|
333 => "Troll Sea Rover",
|
|
334 => "Spectre Pirate Boss",
|
|
335 => "Pirate Boss",
|
|
336 => "Pirate Dark Shaman",
|
|
337 => "Pirate Officer",
|
|
338 => "Gnome Pirate",
|
|
339 => "Dark Elf Pirate",
|
|
340 => "Ogre Pirate",
|
|
341 => "Human Pirate",
|
|
342 => "Erudite Pirate",
|
|
343 => "Poison Dart Frog",
|
|
344 => "Troll Zombie",
|
|
345 => "Luggald Land",
|
|
346 => "Luggald Armored",
|
|
347 => "Luggald Robed",
|
|
348 => "Froglok Mount",
|
|
349 => "Froglok Skeleton",
|
|
350 => "Undead Froglok",
|
|
351 => "Chosen Warrior",
|
|
352 => "Chosen Wizard",
|
|
353 => "Veksar",
|
|
354 => "Greater Veksar",
|
|
355 => "Veksar Boss",
|
|
356 => "Chokadai",
|
|
357 => "Undead Chokadai",
|
|
358 => "Undead Veksar",
|
|
359 => "Vampire Lesser",
|
|
360 => "Vampire Elite",
|
|
361 => "Rujakian Orc",
|
|
362 => "Bone Golem",
|
|
363 => "Synarcana",
|
|
364 => "Sand Elf",
|
|
365 => "Vampire Master",
|
|
366 => "Rujakian Orc Elite",
|
|
367 => "Skeleton New",
|
|
368 => "Mummy New",
|
|
369 => "Goblin New",
|
|
370 => "Insect",
|
|
371 => "Froglok Ghost",
|
|
372 => "Dervish New",
|
|
373 => "Shadow Creatue",
|
|
374 => "Golem New",
|
|
375 => "Evil Eye New",
|
|
376 => "Box",
|
|
377 => "Barrel",
|
|
378 => "Chest",
|
|
379 => "Vase",
|
|
380 => "Table",
|
|
381 => "Weapons Rack",
|
|
382 => "Coffin",
|
|
383 => "Bones",
|
|
384 => "Jokester",
|
|
385 => "Talosian Nihil",
|
|
386 => "Talosian Exile",
|
|
387 => "Talosian Golem",
|
|
388 => "Talosian Wolf",
|
|
389 => "Talosian Amphibian",
|
|
390 => "Talosian Mountain Beast",
|
|
391 => "Talosian Trilobyte",
|
|
392 => "Invader War Hound",
|
|
393 => "Invader Elite Centaur",
|
|
394 => "Invader Lamia",
|
|
395 => "Invader Cyclops",
|
|
396 => "Kyv",
|
|
397 => "Invader Soldier",
|
|
398 => "Invader Brute",
|
|
399 => "Invader Force Commander",
|
|
400 => "Invader Lieutenant Boss",
|
|
401 => "Invader War Beast",
|
|
402 => "Invader Soldier Elite",
|
|
403 => "UNKNOWN RACE",
|
|
404 => "Discord Ship",
|
|
*/
|
|
|
|
#endif
|
|
|