Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Server Code Submissions

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 04-25-2011, 07:26 AM
501st
Sarnak
 
Join Date: Jan 2009
Location: Virginia
Posts: 51
Default 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
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 07:47 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3