|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
04-25-2011, 07:26 AM
|
Sarnak
|
|
Join Date: Jan 2009
Location: Virginia
Posts: 51
|
|
LoN Illusion fix
There's a few illusions that, when cast, appear at odd sizes or will not show up as the proper genders instead being set to gender 2 which will cause them to appear as a human male.
This will fix the Kerran illusion (male/female gender dependent upon the gender of the recipient.), the Brownie illusion (same as Kerran plus a size change), the Drachnid illusion (same as Kerran), the two Banshee illusions (default to gender 1), the Spectre/Basilisk/Fairy illusions (size changes) and all of the LoY pirates (really only used for the Halloween illusions however as of right now on Live the gnome and ogre pirates are both clickies and the ogre is also an enchanter illusion so I just added them all in since they are plagued by these same problems anyway)
races.h
line 51-72
Code:
#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
mob.cpp
line 1368-1397
Code:
int8 Mob::GetDefaultGender(int16 in_race, int8 in_gender) {
//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 == 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;
}
else
return in_gender;
}
else if (in_race == 44 || in_race == 52 || in_race == 55 || in_race == 65 || in_race == 67 || in_race == 88 || in_race == 117 || in_race == 127 ||
in_race == 77 || in_race == 78 || in_race == 81 || in_race == 90 || in_race == 92 || in_race == 93 || in_race == 94 || in_race == 106 || in_race == 112 || in_race == 471) {
// Male only races
return 0;
}
else if (in_race == 25 || in_race == 56 || in_race == BANSHEE1 || in_race == BANSHEE2) {
// Female only races
return 1;
}
else {
// Neutral default for NPC Races
return 2;
}
}
spell_effects.cpp
line 1236-1272
Code:
else {
SendIllusionPacket
(
spell.base[i],
Mob::GetDefaultGender(spell.base[i], GetGender()),
spell.base2[i]
);
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 || 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
|| spell.base[i] == DARKELF_PIRATE || spell.base[i] == KERRAN_TBS){
SendAppearancePacket(AT_Size, 5);
}
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 || spell.base[i] == GNOME_PIRATE){
SendAppearancePacket(AT_Size, 3);
}
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);
}
}
spell_effects.cpp
line 3172-3207
Code:
case SE_IllusionCopy:
case SE_Illusion:
{
SendIllusionPacket(0, GetBaseGender());
if(GetRace() == OGRE || GetRace() == OGRE_PIRATE){
SendAppearancePacket(AT_Size, 9);
}
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 || GetRace() == DARKELF_PIRATE || GetRace() == KERRAN_TBS){
SendAppearancePacket(AT_Size, 5);
}
else if(GetRace() == DWARF){
SendAppearancePacket(AT_Size, 4);
}
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);
}
for(int x = 0; x < 7; x++){
SendWearChange(x);
}
break;
}
-Danyelle
|
|
|
|
04-25-2011, 11:30 AM
|
|
Administrator
|
|
Join Date: Feb 2009
Location: MN
Posts: 2,071
|
|
Create a .diff patch file, it will be much easier for those trying to find out what specifically was changed.
http://tortoisesvn.net/docs/nightly/...dug-patch.html
Post the .diff file here.
PS: Contact me sometime Danyelle
|
|
|
|
05-06-2011, 07:28 PM
|
Sarnak
|
|
Join Date: Jan 2009
Location: Virginia
Posts: 51
|
|
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)
-Danyelle
|
|
|
|
05-07-2011, 02:11 PM
|
|
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Thanks Danyelle, I will try to get this tested and committed when I have time unless someone cares to beat me to it (but I doubt it lol).
|
|
|
|
05-27-2011, 04:24 AM
|
|
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
Here are some updates to this submission that Danyelle PM'd me. Posting them here in case someone wants to commit them before I get to it. Been out on vacation for almost 2 weeks, so it may be a bit before I get all caught up for another look and testing of this.
Code:
Index: trunk/EQEmuServer/common/classes.cpp
===================================================================
--- trunk/EQEmuServer/common/classes.cpp (revision 1918)
+++ 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 1918)
+++ 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 1918)
+++ trunk/EQEmuServer/common/races.h (working copy)
@@ -39,6 +39,7 @@
#define BEAR 43
#define SKELETON 60
#define TIGER 63
+#define FROGLOK2 74 // Not sure why /who all reports race as 74 for frogloks
#define ELEMENTAL 75
#define ALLIGATOR 91
#define EYE_OF_ZOMM 108
@@ -49,8 +50,33 @@
#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 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 GOLEM_LDON 374
+#define PYRILEN 408
+#define GELIDRAN 417
+#define BASILISK_DON 436
+#define SPIDER_DON 440
+#define KOBOLD_DODH 455
+#define GNOMEWORK 457
+#define DRACHNID_DODH 461
+#define SHILISKIN 467
+#define FAIRY_DODH 473
+#define SPECTRE_POR 485
+#define BANSHEE1 487
+#define BANSHEE2 488
+#define SCRYKIN 495
+#define CENTAUR_TSS 521
#define DRAKKIN 522 // 32768
+#define GNOLL_TSS 524
+#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 1918)
+++ trunk/EQEmuServer/zone/mob.cpp (working copy)
@@ -1370,7 +1370,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;
@@ -1384,7 +1387,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/pets.cpp
===================================================================
--- trunk/EQEmuServer/zone/pets.cpp (revision 1918)
+++ trunk/EQEmuServer/zone/pets.cpp (working copy)
@@ -324,9 +324,9 @@
npc_type->texture = 2;
break;
case IKSAR:
- npc_type->race = WOLF;
+ npc_type->race = CHOKIDAI;
npc_type->texture = 0;
- npc_type->gender = 1;
+ npc_type->gender = 2;
npc_type->size *= 2.0f;
npc_type->luclinface = 0;
break;
@@ -370,6 +370,8 @@
npc_type->size = monster->size;
npc_type->texture = monster->texture;
npc_type->gender = monster->gender;
+ npc_type->luclinface = monster->luclinface;
+ npc_type->helmtexture = monster->helmtexture;
}
else {
LogFile->write(EQEMuLog::Error, "Error loading NPC data for monster summoning pet (NPC ID %d)", monsterid);
Index: trunk/EQEmuServer/zone/spell_effects.cpp
===================================================================
--- trunk/EQEmuServer/zone/spell_effects.cpp (revision 1918)
+++ trunk/EQEmuServer/zone/spell_effects.cpp (working copy)
@@ -1237,27 +1237,37 @@
Mob::GetDefaultGender(spell.base[i], GetGender()),
spell.base2[i]
);
- if(spell.base[i] == OGRE){
+ if(spell.base[i] == SPIDER_DON){
+ SendAppearancePacket(AT_Size, 10);
+ }
+ else 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 || spell.base[i] == GOLEM_LDON){
SendAppearancePacket(AT_Size, 8);
}
- else if(spell.base[i] == VAHSHIR || spell.base[i] == BARBARIAN){
+ else if(spell.base[i] == VAHSHIR || spell.base[i] == BARBARIAN || spell.base[i] == SCRYKIN || spell.base[i] == CENTAUR_TSS
+ || spell.base[i] == SHILISKIN || spell.base[i] == PYRILEN || spell.base[i] == GELIDRAN || spell.base[i] == GNOLL_TSS
+ || spell.base[i] == KOBOLD_DODH){
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 || spell.base[i] == GNOMEWORK){
SendAppearancePacket(AT_Size, 5);
}
- else if(spell.base[i] == DWARF){
+ else if(spell.base[i] == DWARF || spell.base[i] == FAIRY_DODH || spell.base[i] == WOLF || spell.base[i] == WOLF_ELEMENTAL){
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] == 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);
}
@@ -3165,24 +3175,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);
}
|
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 09:53 AM.
|
|
|
|
|
|
|
|
|
|
|
|
|