EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   EXP Points vs Percent (https://www.eqemulator.org/forums/showthread.php?t=25364)

Kayot 05-31-2008 05:42 PM

EXP Points vs Percent
 
Whats the formula used to decide the next exp level?

So far heres my list

Code:

1        1000        7000
2        8000        19000
3        27000        37000
4        64000        61000
5        125000        91000
6        216000        127000
7        343000

First column is level, second is Total EXP needed, and third is how much more is added to the last one.

Bulle 05-31-2008 08:04 PM

I had made a spreadsheet back then, as the formula is basically the level to the power of 3, multiplied by a fixed value dependent of the level.

Here it is in CSV format, as I cannot find a way to attach a file to the post (you can ignore the Cash columns, it is something I had tried to compute based on the common cash value for a mob of this level, but it is hardly rigorous).

I took the XP formula from the source code in 1104.

Code:

;;;;;;;;;;;
;"Level";"XP";"Cash";;;"XP Calc";"XP/Mob";"Delta XP/Lvl";"Mobs/Lvl";"Cash/Mob";"Cash/Lvl"
;0;0;0;;;;;;;;
;1;0;0;;;1;263;0;0;27;0
;2;1'000;312;;;1;1'050;1'000;4;82;312
;3;8'000;1'350;;;1;2'363;7'000;7;156;1'038
;4;27'000;3'327;;;1;4'200;19'000;8;246;1'976
;5;64'000;6'410;;;1;6'563;37'000;9;350;3'083
;6;125'000;10'753;;;1;9'450;61'000;9;467;4'343
;7;216'000;16'498;;;1;12'863;91'000;10;597;5'745
;8;343'000;23'777;;;1;16'800;127'000;10;737;7'279
;9;512'000;32'715;;;1;21'263;169'000;10;889;8'938
;10;729'000;43'431;;;1;26'250;217'000;10;1'050;10'716
;11;1'000'000;56'039;;;1;31'763;271'000;10;1'221;12'608
;12;1'331'000;70'647;;;1;37'800;331'000;10;1'402;14'608
;13;1'728'000;87'362;;;1;44'363;397'000;11;1'591;16'714
;14;2'197'000;106'283;;;1;51'450;469'000;11;1'790;18'921
;15;2'744'000;127'510;;;1;59'063;547'000;11;1'997;21'227
;16;3'375'000;151'138;;;1;67'200;631'000;11;2'212;23'628
;17;4'096'000;177'260;;;1;75'863;721'000;11;2'435;26'122
;18;4'913'000;205'967;;;1;85'050;817'000;11;2'666;28'707
;19;5'832'000;237'346;;;1;94'763;919'000;11;2'904;31'379
;20;6'859'000;271'485;;;1;105'000;1'027'000;11;3'150;34'139
;21;8'000'000;308'467;;;1;115'763;1'141'000;11;3'403;36'982
;22;9'261'000;348'375;;;1;127'050;1'261'000;11;3'664;39'908
;23;10'648'000;391'291;;;1;138'863;1'387'000;11;3'931;42'916
;24;12'167'000;437'293;;;1;151'200;1'519'000;11;4'205;46'003
;25;13'824'000;486'461;;;1;164'063;1'657'000;11;4'487;49'168
;26;15'625'000;538'871;;;1;177'450;1'801'000;11;4'774;52'410
;27;17'576'000;594'598;;;1;191'363;1'951'000;11;5'069;55'727
;28;19'683'000;653'717;;;1;205'800;2'107'000;11;5'369;59'119
;29;21'952'000;716'300;;;1;220'763;2'269'000;11;5'676;62'584
;30;24'389'000;782'421;;;1;236'250;2'437'000;11;5'990;66'121
;31;29'700'000;924'256;;;1.1;252'263;5'311'000;22;6'309;141'835
;32;32'770'100;1'005'005;;;1.1;268'800;3'070'100;12;6'635;80'748
;33;36'044'800;1'089'875;;;1.1;285'863;3'274'700;12;6'966;84'870
;34;39'530'700;1'178'943;;;1.1;303'450;3'485'900;12;7'304;89'068
;35;43'234'400;1'272'283;;;1.1;321'563;3'703'700;12;7'647;93'339
;36;51'450'000;1'476'589;;;1.2;340'200;8'215'600;26;7'997;204'306
;37;55'987'200;1'587'972;;;1.2;359'363;4'537'200;13;8'352;111'384
;38;60'783'600;1'704'253;;;1.2;379'050;4'796'400;13;8'712;116'281
;39;65'846'400;1'825'508;;;1.2;399'263;5'062'800;13;9'078;121'255
;40;71'182'800;1'951'813;;;1.2;420'000;5'336'400;13;9'450;126'305
;41;83'200'000;2'232'992;;;1.3;441'263;12'017'200;29;9'827;281'179
;42;89'597'300;2'381'010;;;1.3;463'050;6'397'300;14;10'210;148'018
;43;96'314'400;2'534'743;;;1.3;485'363;6'717'100;15;10'598;153'733
;44;103'359'100;2'694'270;;;1.3;508'200;7'044'700;15;10'991;159'527
;45;110'739'200;2'859'670;;;1.3;531'563;7'380'100;15;11'390;165'400
;46;127'575'000;3'233'191;;;1.4;555'450;16'835'800;32;11'793;373'521
;47;136'270'400;3'424'213;;;1.4;579'863;8'695'400;16;12'202;191'022
;48;145'352'200;3'621'809;;;1.4;604'800;9'081'800;16;12'616;197'596
;49;154'828'800;3'826'060;;;1.4;630'263;9'476'600;16;13'035;204'251
;50;164'708'600;4'037'048;;;1.4;656'250;9'879'800;16;13'460;210'988
;51;175'000'000;4'254'852;;;1.4;682'763;10'291'400;16;13'889;217'804
;52;198'976'500;4'757'825;;;1.5;709'800;23'976'500;35;14'323;502'972
;53;224'972'800;5'298'473;;;1.6;737'363;25'996'300;37;14'762;540'648
;54;253'090'900;5'878'317;;;1.7;765'450;28'118'100;38;15'206;579'844
;55;299'181'600;6'820'928;;;1.9;794'063;46'090'700;60;15'654;942'612
;56;349'387'500;7'839'377;;;2.1;823'200;50'205'900;63;16'108;1'018'449
;57;403'916'800;8'936'733;;;2.3;852'863;54'529'300;66;16'566;1'097'355
;58;462'982'500;10'116'103;;;2.5;883'050;59'065'700;69;17'029;1'179'371
;59;526'802'400;11'380'641;;;2.7;913'763;63'819'900;72;17'497;1'264'537
;60;616'137'000;13'137'416;;;3;945'000;89'334'600;98;17'969;1'756'775
;61;669'600'000;14'181'004;;;3.1;976'763;53'463'000;57;18'446;1'043'588
;62;703'641'100;14'840'656;;;3.1;1'009'050;34'041'100;35;18'928;659'652
;63;738'816'800;15'517'431;;;3.1;1'041'863;35'175'700;35;19'414;676'775
;64;775'145'700;16'211'490;;;3.1;1'075'200;36'328'900;35;19'905;694'059
;65;812'646'400;16'922'993;;;3.1;1'109'063;37'500'700;35;20'400;711'503
;66;851'337'500;17'652'099;;;3.1;1'143'450;38'691'100;35;20'899;729'106
;67;891'237'600;18'398'966;;;3.1;1'178'363;39'900'100;35;21'404;746'868
;68;932'365'300;19'163'753;;;3.1;1'213'800;41'127'700;35;21'912;764'787
;69;974'739'200;19'946'614;;;3.1;1'249'763;42'373'900;35;22'425;782'862
;70;1'018'377'900;20'747'706;;;3.1;1'286'250;43'638'700;35;22'942;801'092
;71;1'063'300'000;21'567'183;;;3.1;1'323'263;44'922'100;35;23'464;819'477
;72;1'109'524'100;22'405'198;;;3.1;1'360'800;46'224'100;35;23'990;838'015
;73;1'157'068'800;23'261'903;;;3.1;1'398'863;47'544'700;35;24'520;856'705
;74;1'205'952'700;24'137'451;;;3.1;1'437'450;48'883'900;35;25'055;875'548
;75;1'256'194'400;25'031'991;;;3.1;1'476'563;50'241'700;35;25'593;894'541
;76;1'307'812'500;25'945'675;;;3.1;1'516'200;51'618'100;35;26'136;913'684
;77;1'360'825'600;26'878'651;;;3.1;1'556'363;53'013'100;35;26'684;932'976
;78;1'415'252'300;27'831'068;;;3.1;1'597'050;54'426'700;35;27'235;952'417
;79;1'471'111'200;28'803'073;;;3.1;1'638'263;55'858'900;35;27'790;972'005
;80;1'528'420'900;29'794'813;;;3.1;1'680'000;57'309'700;35;28'350;991'740

If you put that in a .CSV file and load it you should get the "user-friendly" table.

AndMetal 06-01-2008 04:09 AM

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.

Bulle 06-01-2008 06:37 AM

As for race and class modifiers they are disabled by default. I cannot remember what it takes to re-enable them (variable, rule ?) but regular PEQ build does not include that. So the XP table is the same for everyone.

Cripp 06-01-2008 11:40 AM

from source in features.h..
Code:

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



All times are GMT -4. The time now is 09:59 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.