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

Reply
 
Thread Tools Display Modes
  #1  
Old 12-08-2011, 02:09 AM
revloc02c's Avatar
revloc02c
Hill Giant
 
Join Date: Aug 2010
Location: UT
Posts: 215
Default Zone:HotZoneBonus should also be a multiplier

This is more of a suggestion that could be a submission:

In exp.cpp
Code:
		//get modifiers
		if(RuleR(Character, ExpMultiplier) >= 0){
			totalmod *= RuleR(Character, ExpMultiplier);
		}

		if(zone->newzone_data.zone_exp_multiplier >= 0){
			zemmod *= zone->newzone_data.zone_exp_multiplier;
		}

		if(RuleB(Character,UseRaceClassExpBonuses))
		{
			if(GetBaseRace() == HALFLING){
				totalmod *= 1.05;
			}

			if(GetClass() == ROGUE || GetClass() == WARRIOR){
				totalmod *= 1.05;
			}
		}

		if(zone->IsHotzone())
		{
			totalmod += RuleR(Zone, HotZoneBonus);
		}

		add_exp = int32(float(add_exp) * totalmod * zemmod);
The HotZoneBonus is added to the modifier, and it should be multiplied just like the other modifiers are. Granted the value in the rule_values table (default is 0.75 I think) may need to change to accommodate this, but multiplying make more sense.

Consider:
If you decided to make your ExpMultiplier really high, say 10 for arguments sake (not a likely value I know, but to help make the point) then adding a 0.75 to the modifier is relatively a very small increase, only 7.5%.
But if your ExpMultiplier was really low...I actually set it to 0.01 (along with some other changes mind you) and when I got to a hot zone I was getting 75 times as much exp as I should have (that's 7500%)...kinda throws things off a little when you kill one goblin in Runny Eye and gain 23 levels.

Changing the code to this:
Code:
if(zone->IsHotzone())
{
	totalmod *= RuleR(Zone, HotZoneBonus);
}
...would keep the bonus consistent. Set the db value to 1.5 and you'd always have 150% exp bonus in hot zones regardless of what the base ExpMultiplier is; set it to 2 and you'll always get 200% exp etc.

One caution if this change is implemented, if the HotZoneBonus value in the rule_values table stays at 0.75 it is going to make hot zones only give 75% exp of a normal zone, making it more of a cold-zone-penalty. So the db value would have to change along with the cpp code.
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 03:02 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