#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; }