l2-unlegits/l2packets/l2world/L2Experience.cpp
2012-02-01 05:25:08 +00:00

119 lines
1.9 KiB
C++

#include "stdafx.h"
#include "L2Experience.h"
double L2Experience::getExpPercent( long long exp )
{
double ret = 0.0;
#ifndef __GNUC__
const long long int exp_at_level[] =
#else
const double exp_at_level[] =
#endif
{
-1, // level 0 (unreachable)
0,
68,
363,
1168,
2884,
6038,
11287,
19423,
31378,
48229, //level 10
71201,
101676,
141192,
191452,
254327,
331864,
426284,
539995,
675590,
835854, //level 20
1023775,
1242536,
1495531,
1786365,
2118860,
2497059,
2925229,
3407873,
3949727,
4555766, //level 30
5231213,
5981539,
6812472,
7729999,
8740372,
9850111,
11066012,
12395149,
13844879,
15422851, //level 40
17137002,
18995573,
21007103,
23180442,
25524751,
28049509,
30764519,
33679907,
36806133,
40153995, //level 50
45524865,
51262204,
57383682,
63907585,
70852742,
80700339,
91162131,
102265326,
114038008,
126509030, //level 60
146307211,
167243291,
189363788,
212716741,
237351413,
271973532,
308441375,
346825235,
387197529,
429632402, //level 70
474205751,
532692055,
606319094,
696376867,
804219972,
931275828,
1151275834,
1511275834,
#ifdef __GNUC__
2099275834.0,
4200000000.0, //level 80
6300000000.0, //level 81
8820000000.0, //level 82
11844000000.0, //level 83
15472800000.0, //level 84
19827360000.0, //level 85
25314000000.0
#else
2099275834,
4200000000, //level 80
6300000000, //level 81
8820000000, //level 82
11844000000, //level 83
15472800000, //level 84
19827360000, //level 85
25314000000
#endif
};
int i = 0;
//int cur_level = 0;
for( i=0; i<86; i++ ) if( exp_at_level[i+1] > exp ) break;
//cur_level = i;
ret = 100.0 * (exp - exp_at_level[i]) / (exp_at_level[i+1] - exp_at_level[i]);
return ret;
}