Bah i'm an idiot. Completely forgot about that. Here.
Code:
Index: trunk/EQEmuServer/common/classes.cpp
===================================================================
--- trunk/EQEmuServer/common/classes.cpp (revision 1888)
+++ trunk/EQEmuServer/common/classes.cpp (working copy)
@@ -21,7 +21,9 @@
const char* GetEQClassName(int8 class_, int8 level) {
switch(class_) {
case WARRIOR:
- if (level >= 70)
+ if (level >= 75)
+ return "Imperator";
+ else if (level >= 70)
return "Vanquisher";
else if (level >= 65)
return "Overlord"; //Baron-Sprite: LEAVE MY CLASSES ALONE.
@@ -34,7 +36,9 @@
else
return "Warrior";
case CLERIC:
- if (level >= 70)
+ if (level >= 75)
+ return "Exemplar";
+ else if (level >= 70)
return "Prelate";
else if (level >= 65)
return "Archon";
@@ -47,7 +51,9 @@
else
return "Cleric";
case PALADIN:
- if (level >= 70)
+ if (level >= 75)
+ return "Holy Defender";
+ else if (level >= 70)
return "Lord";
else if (level >= 65)
return "Lord Protector";
@@ -60,7 +66,9 @@
else
return "Paladin";
case RANGER:
- if (level >= 70)
+ if (level >= 75)
+ return "Huntmaster";
+ else if (level >= 70)
return "Plainswalker";
else if (level >= 65)
return "Forest Stalker";
@@ -73,7 +81,9 @@
else
return "Ranger";
case SHADOWKNIGHT:
- if (level >= 70)
+ if (level >= 75)
+ return "Bloodreaver";
+ else if (level >= 70)
return "Scourge Knight";
else if (level >= 65)
return "Dread Lord";
@@ -86,7 +96,9 @@
else
return "Shadowknight";
case DRUID:
- if (level >= 70)
+ if (level >= 75)
+ return "Storm Caller";
+ else if (level >= 70)
return "Natureguard";
else if (level >= 65)
return "Storm Warden";
@@ -99,7 +111,9 @@
else
return "Druid";
case MONK:
- if (level >= 70)
+ if (level >= 75)
+ return "Ashenhand";
+ else if (level >= 70)
return "Stone Fist";
else if (level >= 65)
return "Transcendent";
@@ -112,7 +126,9 @@
else
return "Monk";
case BARD:
- if (level >= 70)
+ if (level >= 75)
+ return "Lyricist";
+ else if (level >= 70)
return "Performer";
else if (level >= 65)
return "Maestro";
@@ -125,7 +141,9 @@
else
return "Bard";
case ROGUE:
- if (level >= 70)
+ if (level >= 75)
+ return "Shadowblade";
+ else if (level >= 70)
return "Nemesis";
else if (level >= 65)
return "Deceiver";
@@ -138,7 +156,9 @@
else
return "Rogue";
case SHAMAN:
- if (level >= 70)
+ if (level >= 75)
+ return "Spiritwatcher";
+ else if (level >= 70)
return "Soothsayer";
else if (level >= 65)
return "Prophet";
@@ -151,7 +171,9 @@
else
return "Shaman";
case NECROMANCER:
- if (level >= 70)
+ if (level >= 75)
+ return "Deathcaller";
+ else if (level >= 70)
return "Wraith";
else if (level >= 65)
return "Arch Lich";
@@ -164,7 +186,9 @@
else
return "Necromancer";
case WIZARD:
- if (level >= 70)
+ if (level >= 75)
+ return "Pyromancer";
+ else if (level >= 70)
return "Grand Arcanist";
else if (level >= 65)
return "Arcanist";
@@ -177,7 +201,9 @@
else
return "Wizard";
case MAGICIAN:
- if (level >= 70)
+ if (level >= 75)
+ return "Grand Summoner";
+ else if (level >= 70)
return "Arch Magus";
else if (level >= 65)
return "Arch Convoker";
@@ -185,12 +211,14 @@
return "Arch Mage";
else if (level >= 55)
return "Conjurer";
- if (level >= 51)
+ else if (level >= 51)
return "Elementalist";
else
return "Magician";
case ENCHANTER:
- if (level >= 70)
+ if (level >= 75)
+ return "Entrancer";
+ else if (level >= 70)
return "Bedazzler";
else if (level >= 65)
return "Coercer";
@@ -203,7 +231,9 @@
else
return "Enchanter";
case BEASTLORD:
- if (level >= 70)
+ if (level >= 75)
+ return "Frostblood";
+ else if (level >= 70)
return "Wildblood";
else if (level >= 65)
return "Feral Lord";
@@ -216,7 +246,9 @@
else
return "Beastlord";
case BERSERKER:
- if (level >= 70)
+ if (level >= 75)
+ return "Juggernaut";
+ else if (level >= 70)
return "Ravager";
else if (level >= 65)
return "Fury";
@@ -229,7 +261,9 @@
else
return "Berserker";
case BANKER:
- if (level >= 70)
+ if (level >= 75)
+ return "Grand Banker";
+ else if (level >= 70)
return "Master Banker";
else if (level >= 65)
return "Elder Banker";
@@ -275,16 +309,22 @@
return "Berserker Guildmaster";
case MERCHANT:
return "Merchant";
- case ADVENTURERECRUITER:
+ case DISCORD_MERCHANT:
+ return "Discord Merchant";
+ case ADVENTURERECRUITER:
return "Adventure Recruiter";
- case ADVENTUREMERCHANT:
+ case ADVENTUREMERCHANT:
return "Adventure Merchant";
- case CORPSE_CLASS:
- return "Corpse Class";
- case TRIBUTE_MASTER:
+ case LDON_TREASURE:
+ return "Chest";
+ case TRIBUTE_MASTER:
return "Tribute Master";
- case GUILD_TRIBUTE_MASTER:
+ case GUILD_TRIBUTE_MASTER:
return "Guild Tribute Master";
+ case ALT_CURRENCY_MERCH:
+ return "Alternate Currency Merchant";
+ case MERC_LIASON:
+ return "Mercenary Liason";
default:
return "Unknown";
}
Index: trunk/EQEmuServer/common/classes.h
===================================================================
--- trunk/EQEmuServer/common/classes.h (revision 1888)
+++ trunk/EQEmuServer/common/classes.h (working copy)
@@ -59,11 +59,12 @@
#define ADVENTURERECRUITER 60
#define ADVENTUREMERCHANT 61
#define LDON_TREASURE 62 //objects you can use /open on first seen in LDONs
-#define CORPSE_CLASS 62 //only seen on Danvi's Corpse in Akheva so far..
#define TRIBUTE_MASTER 63
#define GUILD_TRIBUTE_MASTER 64 //not sure
#define NORRATHS_KEEPERS_MERCHANT 67
#define DARK_REIGN_MERCHANT 68
+#define ALT_CURRENCY_MERCH 70 //TBS and SoF Merchants (Doubloons. Faycite etc)
+#define MERC_LIASON 71 //Mercenary Merchants.
#define warrior_1 1
#define monk_1 64
#define paladin_1 4
Index: trunk/EQEmuServer/common/races.h
===================================================================
--- trunk/EQEmuServer/common/races.h (revision 1888)
+++ trunk/EQEmuServer/common/races.h (working copy)
@@ -49,8 +49,24 @@
#define CONTROLLED_BOAT 141
#define IKSAR_SKELETON 161
#define FROGLOK 330
+#define TROLL_PIRATE 331
+#define GNOME_PIRATE 338
+#define DARKELF_PIRATE 339
+#define OGRE_PIRATE 340
+#define HUMAN_PIRATE 341
+#define ERUDITE_PIRATE 342
+#define CHOKIDAI 356
+#define SKELETON_LDON 367
+#define BASILISK_DON 436
+#define DRACHNID_DODH 461
+#define FAIRY_DODH 473
+#define SPECTRE_POR 485
+#define BANSHEE1 487
+#define BANSHEE2 488
#define FROGLOK2 74 // Not sure why /who all reports race as 74 for frogloks
#define DRAKKIN 522 // 32768
+#define KERRAN_TBS 562
+#define BROWNIE_SOF 568
#define EMU_RACE_NPC 131069 // was 65533
#define EMU_RACE_PET 131070 // was 65534
#define EMU_RACE_UNKNOWN 131071 // was 65535
Index: trunk/EQEmuServer/zone/mob.cpp
===================================================================
--- trunk/EQEmuServer/zone/mob.cpp (revision 1888)
+++ trunk/EQEmuServer/zone/mob.cpp (working copy)
@@ -1369,7 +1369,10 @@
//cout << "Gender in: " << (int)in_gender << endl;
if ((in_race > 0 && in_race <= GNOME )
|| in_race == IKSAR || in_race == VAHSHIR || in_race == FROGLOK || in_race == DRAKKIN
- || in_race == 15 || in_race == 50 || in_race == 57 || in_race == 70 || in_race == 98 || in_race == 118) {
+ || in_race == 15 || in_race == 50 || in_race == 57 || in_race == 70 || in_race == 98
+ || in_race == 118 || in_race == TROLL_PIRATE || in_race == OGRE_PIRATE || in_race == GNOME_PIRATE
+ || in_race == DARKELF_PIRATE || in_race == HUMAN_PIRATE || in_race == ERUDITE_PIRATE || in_race == KERRAN_TBS
+ || in_race == DRACHNID_DODH || in_race == BROWNIE_SOF) {
if (in_gender >= 2) {
// Female default for PC Races
return 1;
@@ -1383,7 +1386,7 @@
return 0;
}
- else if (in_race == 25 || in_race == 56) {
+ else if (in_race == 25 || in_race == 56 || in_race == BANSHEE1 || in_race == BANSHEE2) {
// Female only races
return 1;
}
Index: trunk/EQEmuServer/zone/spell_effects.cpp
===================================================================
--- trunk/EQEmuServer/zone/spell_effects.cpp (revision 1888)
+++ trunk/EQEmuServer/zone/spell_effects.cpp (working copy)
@@ -1240,27 +1240,32 @@
Mob::GetDefaultGender(spell.base[i], GetGender()),
spell.base2[i]
);
- if(spell.base[i] == OGRE){
+ if(spell.base[i] == OGRE || spell.base[i] == BASILISK_DON || spell.base[i] == OGRE_PIRATE){
SendAppearancePacket(AT_Size, 9);
}
- else if(spell.base[i] == TROLL){
+ else if(spell.base[i] == TROLL || spell.base[i] == SPECTRE_POR || spell.base[i] == TROLL_PIRATE){
SendAppearancePacket(AT_Size, 8);
}
else if(spell.base[i] == VAHSHIR || spell.base[i] == BARBARIAN){
SendAppearancePacket(AT_Size, 7);
}
- else if(spell.base[i] == HALF_ELF || spell.base[i] == WOOD_ELF || spell.base[i] == DARK_ELF || spell.base[i] == FROGLOK){
+ else if(spell.base[i] == HALF_ELF || spell.base[i] == WOOD_ELF || spell.base[i] == DARK_ELF || spell.base[i] == FROGLOK
+ || spell.base[i] == DARKELF_PIRATE || spell.base[i] == KERRAN_TBS){
SendAppearancePacket(AT_Size, 5);
}
- else if(spell.base[i] == DWARF){
+ else if(spell.base[i] == DWARF || spell.base[i] == FAIRY_DODH){
SendAppearancePacket(AT_Size, 4);
}
- else if(spell.base[i] == HALFLING || spell.base[i] == GNOME){
+ else if(spell.base[i] == HALFLING || spell.base[i] == GNOME || spell.base[i] == GNOME_PIRATE){
SendAppearancePacket(AT_Size, 3);
}
- else if(spell.base[i] == WOLF) {
+ else if(spell.base[i] == WOLF || spell.base[i] == BROWNIE_SOF) {
SendAppearancePacket(AT_Size, 2);
}
+ else if(spell.base[i] == DRACHNID_DODH || spell.base[i] == BANSHEE1 || spell.base[i] == BANSHEE2 ||
+ spell.base[i] == HUMAN_PIRATE || spell.base[i] == ERUDITE_PIRATE){
+ SendAppearancePacket(AT_Size, 6);
+ }
else{
SendAppearancePacket(AT_Size, 6);
}
@@ -3168,24 +3173,30 @@
case SE_Illusion:
{
SendIllusionPacket(0, GetBaseGender());
- if(GetRace() == OGRE){
+ if(GetRace() == OGRE || GetRace() == OGRE_PIRATE){
SendAppearancePacket(AT_Size, 9);
}
- else if(GetRace() == TROLL){
+ else if(GetRace() == TROLL || GetRace() == TROLL_PIRATE){
SendAppearancePacket(AT_Size, 8);
}
else if(GetRace() == VAHSHIR || GetRace() == FROGLOK || GetRace() == BARBARIAN){
SendAppearancePacket(AT_Size, 7);
}
- else if(GetRace() == HALF_ELF || GetRace() == WOOD_ELF || GetRace() == DARK_ELF){
+ else if(GetRace() == HALF_ELF || GetRace() == WOOD_ELF || GetRace() == DARK_ELF || GetRace() == DARKELF_PIRATE || GetRace() == KERRAN_TBS){
SendAppearancePacket(AT_Size, 5);
}
else if(GetRace() == DWARF){
SendAppearancePacket(AT_Size, 4);
}
- else if(GetRace() == HALFLING || GetRace() == GNOME){
+ else if(GetRace() == HALFLING || GetRace() == GNOME || GetRace() == GNOME_PIRATE){
SendAppearancePacket(AT_Size, 3);
}
+ else if(GetRace()== BROWNIE_SOF){
+ SendAppearancePacket(AT_Size, 2);
+ }
+ else if(GetRace() == DRACHNID_DODH || GetRace() == HUMAN_PIRATE || GetRace() == ERUDITE_PIRATE){
+ SendAppearancePacket(AT_Size, 6);
+ }
else{
SendAppearancePacket(AT_Size, 6);
}
And just so i'm not bumping this for a completely pointless reason, in addition to the illusion fix this also includes the level 75+ class titles (We only have up to level 70 at the moment. Live stopped at 75 so that would make this the final set.). Adds the alt currency merchant (as used in TBS/SoF/SoD for doubloons, faycite and whatnot.) and the mercenary liason to the class list and removes corpse class (As it's the exact same class as the ldon chest, 62, so it's not really needed)