View Single Post
  #3  
Old 06-01-2008, 04:09 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

This information can also be found in the wiki & inferred from the source:
Code:
   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 }
The bigger question you're going to need to ask is what also modifies experience requirements (class and race mainly).

In any case, hope this helps.
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote