exp_table: array[0..85] of integer = ( 0, // level 0 1, 69, 364, 1169, 2885, 6039, 11288, 19424, 31379, 48230, //level 10 71203, 101678, 141194, 191455, 254331, 331868, 426289, 540001, 675597, 835863, //level 20 1023785, 1242547, 1495544, 1786380, 2118877, 2497078, 2925251, 3407898, 3949755, 4555797, //level 30 5231247, 5981577, 6812514, 7730045, 8740423, 9850167, 11066073, 12395216, 13844952, 15422930, //level 40 17137088, 18995666, 21007204, 23180551, 25524869, 28049636, 30764655, 33680053, 36806290, 40154163, //level 50 45525134, 51262491, 57383989, 63907912, 70853090, 80700832, 91162655, 102265882, 114038596, 126509653, //level 60 146308200, 167244337, 189364894, 212717908, 237352644, 271975263, 308443198, 346827154, 387199547, 429634523, //level 70 474207979, 532694979, 606322775, 696381369, 800225364, 900275364, 1000571463, 1100482881, 1200687304, 1300321654, //level 80 1400123456, 1550789123, 1680156789, 1850164821, 2099305232 //level 85 ); function PercentExp(lvl, Exp:integer):double; var Result:double; begin Result:=0; if((lvl>=1)AND(lvl<=85))then Result:= (Exp-exp_table[lvl])/(exp_table[lvl+1]-exp_table[lvl])*100; if(Result<0)then Result:=0; PercentExp:=Result; end;