Go Back   EQEmulator Home > EQEmulator Forums > Development > Development: Custom Code

Development: Custom Code This is for code thatdoes not emulate live and wont be added to the official code.

Reply
 
Thread Tools Display Modes
  #1  
Old 01-11-2007, 04:20 AM
eq4me
Hill Giant
 
Join Date: Jul 2006
Posts: 166
Default

Its too late to edit the original post so here a correction and an addition.

the value for the exp modifier should be float and not unsigned int.

Especially with high exp modifiers there is the problem that you can not even get your most used skills to max before you level. Maybe it would be a good idea to add (at least part of) the exp multiplier to the success chance for an skill increase. So at least your most needed Skills would stay up to par.
Reply With Quote
  #2  
Old 01-11-2007, 04:30 AM
mattmeck
Guest
 
Posts: n/a
Default

This falls under the custom code headline since this would not emulate live, moved for ya
Reply With Quote
  #3  
Old 01-11-2007, 07:23 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Weren't these called "Hell Levels" in EQLive?

I like the idea.
Reply With Quote
  #4  
Old 01-11-2007, 12:32 PM
Dymerius
Sarnak
 
Join Date: Oct 2004
Posts: 74
Default

Technically, there were only certain upper-level Hell Levels.

If I remember correctly... 30, 40, 45(*shiver!*)

Then they added Kunark and level 51 put the other hell levels to shame... and 55... and 57 or 59? It's been so long...

But I do like your idea just because I hate lower levels where your character is undeveloped and basically identical to all other classes...
Reply With Quote
  #5  
Old 01-12-2007, 07:14 AM
Zengez
Hill Giant
 
Join Date: Nov 2004
Posts: 160
Default

51, 54, and 59 were hell lvls, not sure on 57 but i don't think so... and after posting too much serious stuff previously, I just had to point out anyone else notice that 8, 5, 3, 2, 1 is a reverse fibonacci series? math geeks, unite!
Reply With Quote
  #6  
Old 01-12-2007, 08:20 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

When I first played, they were all the 9's (19 [not so bad] 29, 39) until the 50's. Then 51+ were all hellish.

Sorry to derail.
Reply With Quote
  #7  
Old 01-12-2007, 10:34 AM
rojadruid
Discordant
 
Join Date: May 2005
Location: Smith Falls, Ontario, Canada
Posts: 283
Default

Quote:
Originally Posted by Dymerius
If I remember correctly... 30, 40, 45(*shiver!*)

Then they added Kunark and level 51 put the other hell levels to shame... and 55... and 57 or 59? It's been so long...
You would be correct on the hell levels.

Pre beta they where 30, 35, 40, 45, 50. When they made Kunark they added 51, 55, 59.
__________________
Rojadruid

Innoruuk Server [legit]
Server Admin.
Server Status: UP
Reply With Quote
  #8  
Old 01-12-2007, 11:12 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

This wouldn't be very hard and really isn't that bad an idea I threw something like this together quickly:

Code:
Index: exp.cpp
===================================================================
--- exp.cpp	(revision 940)
+++ exp.cpp	(working copy)
@@ -29,8 +29,16 @@
 //                            war   cle    pal    ran    shd    dru    mnk    brd    rog    shm    nec    wiz    mag    enc    bst    bes
 float class_modifiers[16] = { 9.0f, 10.0f, 14.0f, 14.0f, 14.0f, 10.0f, 12.0f, 14.0f, 9.05f, 10.0f, 11.0f, 11.0f, 11.0f, 11.0f, 10.0f, 10.0f};
 
+#define MAX_LEVEL_MOD 70
+float level_modifiers[MAX_LEVEL_MOD] = { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
+					1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
+					1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
+					1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
+					1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
+					1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
+					1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f };
+							
 
-
 void Client::AddEXP(int32 add_exp, int8 conlevel, bool resexp) {
 	if (m_epp.perAA<0 || m_epp.perAA>100)
 		m_epp.perAA=0;	// stop exploit with sanity check
@@ -44,10 +52,22 @@
 		//take that ammount away from regular exp
 		add_exp -= add_aaxp;
 	
-		//get zone modifier
+		float totalmod = 1.0;
+		//get modifiers... I don't like how we mix floats and ints so much but for now...
 		if (zone->GetEXPMod() > 0) {
-			add_exp = int32(float(add_exp) * zone->GetEXPMod());
+			totalmod = zone->GetEXPMod();
 		}
+		
+		if(RuleR(Character, ExpMultiplier) > 0){
+			totalmod *= RuleR(Character, ExpMultiplier);
+		}
+		
+		if(GetLevel() <= MAX_LEVEL_MOD && GetLevel >= 1){
+			totalmod *= level_modifiers[GetLevel()-1];
+		}
+		add_exp = int32(float(add_exp) * totalmod);
+		
+		
 	
 #ifdef CON_XP_SCALING
 		if (conlevel != 0xFF) {
..also noticed expmodifier rule doesn't appear to be working right now while doing which I will fix. Haven't tested this but yeah could also do it with something in the database too if wanted.. not a difficult concept and very nice for legit servers that want to tweak how they play.
Reply With Quote
  #9  
Old 01-13-2007, 04:34 AM
rojadruid
Discordant
 
Join Date: May 2005
Location: Smith Falls, Ontario, Canada
Posts: 283
Default

The rule idea is a way better idea to do it, scince thats why they are there for customization.
__________________
Rojadruid

Innoruuk Server [legit]
Server Admin.
Server Status: UP
Reply With Quote
Reply

Thread Tools
Display Modes

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