PDA

View Full Version : sharing exp penalties amongst group


nilbog
03-16-2009, 12:37 PM
After enabling the class/race based experience penalties, I am curious as how to share those penalties amongst the group.


//Uncomment this to enable Race and Class based XP modifiers (removed from live)
//#define USE_RACE_CLASS_XP_MODS

Works great.. and now the halfling warriors are leveling a hell of a lot faster than the troll shadowknights. But, originally, these penalties were split amongst your group, if you were grouped.

Here's the producer's letter from 1/14/01 defining how the penalties worked, and how they were changed.
http://everquest.allakhazam.com/editorial/011401_EQ_Producers_letter.html

The relevant information from that link is this though:

In regards to the sharing of the experience penalty, it was apparent in beta, before the penalty was shared, that those playing characters without an experience penalty leveled faster than those that did. It was obvious that this would occur, but it was to the extreme that a group of friends, all playing together, would become separated to the point that they could no longer group efficiently in the mid to upper-mid levels. So we chose to distribute experience in the group on the basis of the total experience of each member rather than the level, in order to keep groups together.

Here's what I see defined in source.

29 //experience modifiers based on race and class, used if USE_RACE_CLASS_XP_MODS is defined
30 // hum bar eru elf hie def hef dwa tro ogr hal gno iks, vah frog
31 float race_modifiers[15] = { 100.0f, 105.0f, 100.0f, 100.0f, 100.0f, 100.0f, 100.0f, 100.0f, 120.0f, 115.0f, 95.0f, 100.0f, 120.0f, 100.0f, 100.0f}; // Quagmire - Guessed on iks and vah
32
33 // war cle pal ran shd dru mnk brd rog shm nec wiz mag enc bst bes
34 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};

327 uint32 Client::GetEXPForLevel(int16 check_level)
328 {
329
330 int16 check_levelm1 = check_level-1;
331 float mod;
332 if (check_level < 31)
333 mod = 1.0;
334 else if (check_level < 36)
335 mod = 1.1;
336 else if (check_level < 41)
337 mod = 1.2;
338 else if (check_level < 46)
339 mod = 1.3;
340 else if (check_level < 52)
341 mod = 1.4;
342 else if (check_level < 53)
343 mod = 1.5;
344 else if (check_level < 54)
345 mod = 1.6;
346 else if (check_level < 55)
347 mod = 1.7;
348 else if (check_level < 56)
349 mod = 1.9;
350 else if (check_level < 57)
351 mod = 2.1;
352 else if (check_level < 58)
353 mod = 2.3;
354 else if (check_level < 59)
355 mod = 2.5;
356 else if (check_level < 60)
357 mod = 2.7;
358 else if (check_level < 61)
359 mod = 3.0;
360 else
361 mod = 3.1;
362
363 float base = (check_levelm1)*(check_levelm1)*(check_levelm1);
364
365 #ifdef USE_RACE_CLASS_XP_MODS
366 int16 tmprace = GetBaseRace();
367 if (tmprace == IKSAR) // Quagmire, set these up so they read from array right
368 tmprace = 12;
369 else if (tmprace == VAHSHIR)
370 tmprace = 13;
371 else if ((tmprace == FROGLOK) || (tmprace == FROGLOK2))
372 tmprace = 14;
373 else
374 tmprace--;
375
376 if (tmprace >= sizeof(race_modifiers) || GetClass() < 1 || GetClass() - 1 >= PLAYER_CLASS_COUNT)
377 return 0xFFFFFFFF;
378
379 mod *= class_modifiers[GetClass()-1]*race_modifiers[tmprace];
380 #else
381 mod *= 1000;
382 #endif
383
384 return(uint32(base * mod));
385 }

Anyone have any thoughts/ideas about this?

Yeormom
03-23-2009, 10:02 PM
Penalties we're split with the group? That was mad harsh Verant!

trevius
03-23-2009, 10:09 PM
Yes, I clearly remember that being one of the reasons it was so hard to get a group with my paladin and I know Iksar SKs were really hating life lol. Bad enough that we had such huge penalties to begin with, but to make it harder to get groups because they didn't want to take on our penalties just made it worse. Glad they got rid of that, but I wish it was before I had spent months leveling up my Paladin.

The defined penalties all look pretty accurate from what I recall about them at the time, but that was about 8 years ago lol. Also, don't forget to add Drakkin in there as they will need to get exp for people using SoF as well :) I think it would be safe to assume they would get a 100.0 mod, the same as humans since they are essentially the same in most aspects.