From zone/exp.cpp:
Code:
if(zone->IsHotzone())
{
totalmod += RuleR(Zone, HotZoneBonus);
}
The full path of the exp modifiers is:
- percentage of AA exp is removed from exp total
- totalmod set to 1.0
- totalmod multiplied by Character:ExpMultiplier (if greater than 0)
- totalmod multiplied by 1.05 if Halfling
- totalmod multiplied by 1.05 if Warrior or Rogue
- (Above two only happen if Character:UseRaceClassExpBonuses is set to true)
- totalmod ADDS in value from rule Zone:HotZoneBonus if zone is a hotzone (note, adds... the rest are multiplicative)
- zemmod is calculated based on zone experience modifier
- experience to be added is multiplied by zemmod and totalmod
- If Character:UseXPConScaling is true, experience is modified according to conlevel
- After this, leadership exp is considered and calculated
- it appears the code then again gives the Halfling/Warrior/Rogue bonuses for some reason -- Never mind. I was too tired to notice this was the AA exp racial mod
- the rule Zone:LevelBasedEXPMods is considered
- total AA experience is calculated, as is total regular experience
- experience and AA experience are then added to the character's total
So, just in regards to Hotzone modifiers, it's added raw to an amount multiplied by the experience granted by the mob. So 1.0 for Hotzone modifier would essentially add again whatever the initial, raw experience amount is from the mob kill.
I'm extremely tired, so I'm not sure if what I'm saying makes sense.
For example, the raw exp from a mob is 100. The totalmod is set to 1.0 by default. Let's assume the ZEM is 1.0 (just so it doesn't modify anything). With a non-Halfling/Warrior/Rogue, no AA enabled, and no Character:ExpMultiplier set, your experience is (100 * 1.0 * 1.0) or 100. Now, if you were in a Hotzone with the Hotzone mod of 1.0, then totalmod is the base 1.0 plus 1.0 from the Hotzone mod, making it (100 * 2.0 * 1.0) or 200.
Can someone else who's good with code take a look at the whole "double bonus" thing? I'm not sure if I'm missing something while exhausted, but within the AddEXP function (line 186-195) the bonus is added. Then it seems to be added again after leadership exp and the AA modifier, at lines 304-313. --
Never mind! That's adding the race/class bonus to AA. I knew I was too tired.