Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Feature Requests

Development::Feature Requests Post suggestions/feature requests here.

Reply
 
Thread Tools Display Modes
  #1  
Old 07-08-2009, 08:41 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,450
Default Ability to level past 89ish?

I noticed recently that if you try and get past a level around level 89, you cannot go past level 89, or so. Is there a way to fix this?

I'm guessing it would be in exp.cpp and features.h, but... I am not sure.

I would love to see the ability to level to 254 (which is the max before you have spell issues) added into the source. (in b4 why are you having characters level that high?)
Reply With Quote
  #2  
Old 07-08-2009, 09:08 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

I absolutly, 500%, support this notion!

I don't know about 254 (yet) but I have allready laid out content progression up till lev 150 =)
Reply With Quote
  #3  
Old 07-09-2009, 03:10 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I don't recall there being a limit in the source other than level 254. Though, there may be a define set for it that sets it to 127. As far as I know, there is nothing restricting levels below 127 atm. I can #level to 254 just fine. I assume you are referring to leveling via experience? Which client are you using, Titanium or SoF? Are you sure you have both the MaxLevel and MaxExpLevel rules set to allow you to go above those levels?

Why are you needing to level that high??? JK, I am betting it is Raid Addicts related :P
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #4  
Old 07-09-2009, 04:20 AM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,450
Default

Quote:
Originally Posted by trevius View Post
I don't recall there being a limit in the source other than level 254. Though, there may be a define set for it that sets it to 127. As far as I know, there is nothing restricting levels below 127 atm. I can #level to 254 just fine. I assume you are referring to leveling via experience? Which client are you using, Titanium or SoF? Are you sure you have both the MaxLevel and MaxExpLevel rules set to allow you to go above those levels?

Why are you needing to level that high??? JK, I am betting it is Raid Addicts related :P
It's via experience and I think it is directly related to the experience formula in features.h, i'll see what I can do about it.

And no, it's not related to raid addicts for a change. It's a secret project!
Reply With Quote
  #5  
Old 07-09-2009, 11:06 AM
Yeormom
Discordant
 
Join Date: Apr 2004
Location: 127.0.0.1
Posts: 402
Default

Code:
#define HARD_LEVEL_CAP 127
The definition EXP_FORMULA is not preventing you from exceeding level 89.
__________________
Yeorwned
Bane of Life [Custom Classic/PvP]
Reply With Quote
  #6  
Old 07-09-2009, 07:14 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,450
Default

Quote:
Originally Posted by Yeormom View Post
Code:
#define HARD_LEVEL_CAP 127
The definition EXP_FORMULA is not preventing you from exceeding level 89.
That variable isn't used anymore in source, AFAIK. The only time I saw it used was in SKILL_CAPS, and I think it was removed recently.
Reply With Quote
  #7  
Old 11-22-2009, 02:28 PM
iggi
Sarnak
 
Join Date: Feb 2006
Posts: 62
Default

That's a good option, but it would also cause current servers to change their config (oh no!!1).

Theoretically couldn't you just make this a "long long" type and therefore 64bits long allowing for over 18 000 000 000 000 000 000 or level 181,211 (given other restrictions allow)?

P.S.- This is just an observation from a novice, but isn't level^3*3.1*1000 additional CPU cycles, rather than 3100*level^3, no decimal and less operations?
Reply With Quote
  #8  
Old 11-22-2009, 04:23 PM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

what ever it takes- I just need my lev 255 =)
Reply With Quote
  #9  
Old 11-22-2009, 09:49 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,450
Default

Quote:
Originally Posted by ChaosSlayerZ View Post
what ever it takes- I just need my lev 255 =)
Level 255 is a bad idea. If you make level 255, players can use spells regardless of class.

ChaosSlayer, why not check out the exp code from the x5 diff?
Reply With Quote
  #10  
Old 11-26-2009, 02:28 AM
iggi
Sarnak
 
Join Date: Feb 2006
Posts: 62
Default

Secrets and I worked on this a bit tonight. It looks possible, with the exception of one area:
Code:
struct LevelUpdate_Struct
{
/*00*/ uint32 level;                  // New level
/*04*/ uint32 level_old;              // Old level
/*08*/ uint32  exp;                    // Current Experience
};
Looks like it sends the xp to the client :( I am compiling the server as we speak to see if it will work with changing that as well to a long long. If this does not work, I will also try not sending the exp variable in the packets to the client, I think this may cause you to have to zone to update the level, but hey can't hurt to try (heck if it works I might have done something productive for once!).
Reply With Quote
  #11  
Old 11-26-2009, 03:01 AM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

Guys- if you can get this to work- I will named npcs after you!!!
I can even make you Raid bosses! =)
Reply With Quote
  #12  
Old 09-13-2010, 09:06 AM
Astal
Hill Giant
 
Join Date: Mar 2010
Posts: 236
Default

So has this gone anywhere. I know akkadius has a way to get to atleast 90 on his server. I plan on asking him how its done. I would like level 100 on mine if possible for the time being.
Reply With Quote
  #13  
Old 09-13-2010, 07:04 PM
Vanicae
Fire Beetle
 
Join Date: May 2010
Posts: 9
Default

Have you tried raising the Character:MaxExpLevel rule? The hard coded maximum of 127 is still in the code, and with the current formula, level 90 takes 2,185,403,900 exp, well within the range of the variable it's stored in.

If there is still any interest or need to go over 111 or so, it would need to be stored in a 64bit int, or the formula would have to be scaled down. The noted issue with LevelUpdate_Struct isn't an issue, the exp value sent to the client is a value 0-330, not the real exp value. The client displays exp in increments of 0.33% and doesn't care how it's calculated server side.

Last edited by Vanicae; 09-13-2010 at 07:21 PM.. Reason: Slightly wrong math
Reply With Quote
  #14  
Old 09-19-2010, 04:43 AM
ChaosSlayerZ's Avatar
ChaosSlayerZ
Demi-God
 
Join Date: Mar 2009
Location: Umm
Posts: 1,492
Default

i would love to have lev 200
Reply With Quote
  #15  
Old 09-19-2010, 04:13 PM
blackdragonsdg
Dragon
 
Join Date: Dec 2008
Location: Tennessee
Posts: 654
Default

Well I was still testing this but I was able to max out at level 253 via experience before hitting a wall.


Required sql
Code:
update rule_values set rule_value = 239765 where rule_name = 'AA:ExpPerPoint';
update rule_values set rule_value = 254 where rule_name =  'Character:MaxLevel';
update rule_values set rule_value = 254 where rule_name =  ' Character:MaxExpLevel';

This part is optional as it just mantains an exp scaling similar to what exists in the default peq database.

zone/exp.cpp
Code:
	void Client::AddEXP(int32 in_add_exp, int8 conlevel, bool resexp) {

	int32 add_exp = in_add_exp;

	if(!resexp && (XPRate != 0))
-		add_exp = static_cast<int32>(in_add_exp * (static_cast<float>(XPRate) / 100.0f));
+		add_exp = static_cast<int32>(in_add_exp * (static_cast<float>(XPRate) / 10000.0f));
	
	if (m_epp.perAA<0 || m_epp.perAA>100)
		m_epp.perAA=0;	// stop exploit with sanity check
	
	int32 add_aaxp;
	if(resexp) {
		add_aaxp = 0;
	} else {

		//figure out how much of this goes to AAs
		add_aaxp = add_exp * m_epp.perAA / 100;
		//take that amount away from regular exp
		add_exp -= add_aaxp;


zone/exp.cpp
Code:
	//check_level represents the level we should be when we have
	//this ammount of exp (once these loops complete)
	int16 check_level = GetLevel()+1;
	//see if we gained any levels
	while (set_exp >= GetEXPForLevel(check_level)) {
		check_level++;
-		if (check_level > 127) {	//hard level cap
+		if (check_level > 254) {	//hard level cap
-			check_level = 127;
+			check_level = 254;
			break;
		}
	}


zone/exp.cpp
Code:
	// Note: The client calculates exp separately, we cant change this function
	// Add: You can set the values you want now, client will be always sync :) - Merkur
	uint32 Client::GetEXPForLevel(int16 check_level)
	{

	int16 check_levelm1 = check_level-1;
	float mod;
	if (check_level < 31)
		mod = 1.0;
	else if (check_level < 36)
		mod = 1.1;
	else if (check_level < 41)
		mod = 1.2;
	else if (check_level < 46)
		mod = 1.3;
	else if (check_level < 52)
		mod = 1.4;
	else if (check_level < 53)
		mod = 1.5;
	else if (check_level < 54)
		mod = 1.6;
	else if (check_level < 55)
		mod = 1.7;
	else if (check_level < 56)
		mod = 1.9;
	else if (check_level < 57)
		mod = 2.1;
	else if (check_level < 58)
		mod = 2.3;
	else if (check_level < 59)
		mod = 2.5;
	else if (check_level < 60)
		mod = 2.7;
	else if (check_level < 61)
		mod = 3.0;
	else
		mod = 3.1;
	
	float base = (check_levelm1)*(check_levelm1)*(check_levelm1);

-	mod *= 1000;
+	mod *= 10;
	
	return(uint32(base * mod));
	}
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 06:49 PM.


 

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