Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Database/World Building

Development::Database/World Building World Building forum, dedicated to the EQEmu MySQL Database. Post partial/complete databases for spawns, items, etc.

Reply
 
Thread Tools Display Modes
  #1  
Old 06-16-2009, 05:03 PM
zergling
Sarnak
 
Join Date: Mar 2009
Location: In an apartment
Posts: 33
Default AAs before level 51?

I was curious if there is a setting somewhere I am missing that would allow my players to set themselves to start earning AA xp before level 51?

Or is it buried somewhere in the source code that I could possibly change and recompile with? (Do you happen to know what file I would look to change this?)

I can see how I can set what level an AA can be purchased at, but unless I can let the characters earn the AA points to purchase them below 51, there is no reason to set the AAs themselves below that.


PS: Yes I understand some AAs would be very overpowered at low levels. I was mainly going to do it for the +stat AAs and other innocuous stuff. And I was planning to leave the cost at the level 51 rate. My players just want an option so that they can still hunt and make slow progress without gaining levels and getting too far ahead of others.
Reply With Quote
  #2  
Old 06-16-2009, 05:18 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I think the level 51 requirement is mandated by the client. I could be wrong, but I am pretty sure that is what disables/enables the ability to turn on or off AA exp gain percentage settings.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #3  
Old 06-16-2009, 06:56 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

lev 51 is a req by client to EARN AA XP, but not to have AAs

you can:

-reward AA to players with a quest
-lower the req level on AA of your choice

and - TADAM - you can spend/use AAs at level 1
Reply With Quote
  #4  
Old 06-16-2009, 11:37 PM
Krugus
Sarnak
 
Join Date: Dec 2005
Location: the Void
Posts: 40
Post AA's

On the server I'm working on, I've tinkered with the code to allow players to earn AA xp as they gain normal XP. Its still a work in progress but it does work. Again I'm no programmer but I do enjoy tinkering (I must be a gnome...). The mod will allow players to start Spending AA's around 10th level... and yes you will have to compile your own code

There are a few things you will have to mod before this will work.

First mods will be in the exp.cpp

Look for:
Code:
//figure out how much of this goes to AAs
add_aaxp = add_exp * m_epp.perAA / 100;
//take that ammount away from regular exp
add_exp -= add_aaxp;
Replace with:
Code:
//figure out how much of this goes to AAs
//Krugus mod:  AA xp gained now = xp gained before modifiers.  Gain AA's as you level!
add_aaxp = add_exp; // krugus mod: was add_aaxp = add_exp * m_epp.perAA / 100;
//take that ammount away from regular exp
//add_exp -= add_aaxp;
Next in exp.cpp

look for:
Code:
void Client::SetEXP(int32 set_exp, int32 set_aaxp, bool isrezzexp) {
	max_AAXP = GetEXPForLevel(52) - GetEXPForLevel(51);
	if (max_AAXP == 0 || GetEXPForLevel(GetLevel()) == 0xFFFFFFFF) {
		Message(13, "Error in Client::SetEXP. EXP not set.");
		return; // Must be invalid class/race
	}
Replace with:
Code:
void Client::SetEXP(int32 set_exp, int32 set_aaxp, bool isrezzexp) {
//max_AAXP = GetEXPForLevel(10) - GetEXPForLevel(9); // krugus mod:  was 52 and 51.  changed it to 10 and 9 to start off with
	//start of AA MOD   Adjusting AA xp based on character level.  Easier to gain them at lower levels but the required xp goes up every 10 lvls
	   if(GetLevel() >= 71) {
			max_AAXP = GetEXPForLevel(27) - GetEXPForLevel(26);//2,107,000 xp
	   }
		else if(GetLevel() >= 61) {
			max_AAXP = GetEXPForLevel(23) - GetEXPForLevel(22);	//1,519,000	xp
	   }
		else if(GetLevel() >= 51) {
			max_AAXP = GetEXPForLevel(19) - GetEXPForLevel(18); //1,027,000 xp
		}
		else if(GetLevel() >= 41) {
			max_AAXP = GetEXPForLevel(17) - GetEXPForLevel(16); //817,000 xp
		}
		else if(GetLevel() >= 31) {
			max_AAXP = GetEXPForLevel(15) - GetEXPForLevel(14); //631,000 xp
		}
		else if(GetLevel() >= 21) {
			max_AAXP = GetEXPForLevel(13) - GetEXPForLevel(12); //469,000 xp
		}
		else if(GetLevel() >= 1) {
			max_AAXP = GetEXPForLevel(10) - GetEXPForLevel(9); //271,000 xp
		}
	//END of AA MOD	
	if (max_AAXP == 0 || GetEXPForLevel(GetLevel()) == 0xFFFFFFFF) {
		Message(13, "Error in Client::SetEXP. EXP not set.");
		return; // Must be invalid class/race
	}
Next in exp.cpp

Look for:
Code:
if (GetLevel() < 51) {
		m_epp.perAA = 0;	// turn off aa exp if they drop below 51
	} else
		SendAAStats();	//otherwise, send them an AA update
Replace with:
Code:
if (GetLevel() < 10) { // krugus mod was < 51 
		m_epp.perAA = 0;	// turn off aa exp if they drop below 10 (krugus mod was 51)
	} else
		SendAAStats();	//otherwise, send them an AA update
Next mod will be in client_packet.cpp

Look for the following, it should be listed twice in the client_packet.cpp .......

Code:
//Send AA Exp packet:
	if(GetLevel() >= 51)
		SendAAStats();
......and change the 51 to 10 in both spots.


The last change is a simple db query:
Code:
update altadv_vars set class_type = 10 where class_type = 51;
update altadv_vars set class_type = 25 where class_type = 55;
update altadv_vars set class_type = 40 where class_type = 59;
update altadv_vars set class_type =  class_type - 10 where class_type > 59;
This will allow:
General AA's to be bought at 10th
Arch Type AA's at 25th
Class AA's at 40th
the rest from 49th on up.

As far as the % AA bar goes, yea its more than likely hard coded in the Client but with this... its not needed.

Anyways hope this helps.
Reply With Quote
  #5  
Old 06-16-2009, 11:59 PM
zergling
Sarnak
 
Join Date: Mar 2009
Location: In an apartment
Posts: 33
Default

Hmmm, is the current % going to AAs a character variable that can be set?

Like could I have an NPC that the characters could go to and say "10%" "20%" etc, and have it set that way?
Reply With Quote
  #6  
Old 06-17-2009, 12:58 AM
Krugus
Sarnak
 
Join Date: Dec 2005
Location: the Void
Posts: 40
Default

IMNSHO, Allowing someone to gain AA's long before 51st is almost pointless if you are going to leave it at the default AA xp rate (which is roughly the xp needed to get from 50th to 51st level).

Just wondering if you realize how much xp that is
Reply With Quote
  #7  
Old 06-17-2009, 02:41 AM
zergling
Sarnak
 
Join Date: Mar 2009
Location: In an apartment
Posts: 33
Default

Yes, I do realize. The point isn't really to gain a lot. Its so you can solo if you want, without getting ahead of the group.

Say a couple joins the game, one of whom works, the other is a house wife. Under normal rules, she can't really play on that character while her husband is at work. If she could turn on AA XP, she could just flip it on, and solo to her hearts content. And then when hubby gets home from work and wants to play they are still the same level. It probably takes a couple weeks to earn an AA that way, but she still knows that she can work towards SOMETHING on her main.
Reply With Quote
  #8  
Old 06-17-2009, 11:51 AM
WillowyLady
Sarnak
 
Join Date: Aug 2003
Location: Recycle Bin
Posts: 90
Default

For a quick fix #level 51

__________________
I'll be back!

Reply With Quote
  #9  
Old 06-17-2009, 06:08 PM
zergling
Sarnak
 
Join Date: Mar 2009
Location: In an apartment
Posts: 33
Default

Heh, no thanks, we're going for a server where the players don't have GM commands.
Reply With Quote
Reply


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:00 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3