# Calculate experience until specified level

## Recommended Posts

```public static int getExperienceUntilLevel(int currentExperience, int level) {
int experience = 0;
for(int i = 1; i < level; i++) {
experience += Math.floor(i + 300 * Math.pow(2, i / 7.0f));
}
return (int) Math.floor(experience / 4) - currentExperience;
}
```
• 1
##### Share on other sites

pretty sure you copied this... at least give credits to whoever u copied from

##### Share on other sites

pretty sure you copied this... at least give credits to whoever u copied from

Uh.. I interpreted it from this formula, which is from the Runescape wikia

I wouldn't really classify that as copying.. but I've references the source regardless..

• 1
##### Share on other sites

Uh.. I interpreted it from this formula, which is from the Runescape wikia

I wouldn't really classify that as copying.. but I've references the source regardless..

As long as you understand and know which formula it is I guess it's fine..

##### Share on other sites

What's the problem of understanding that formula?

Nice one matey, thanks for it .

• 1
##### Share on other sites

What's the problem of understanding that formula?

Nice one matey, thanks for it .

##### Share on other sites

Nice, but computing the required XP on each call (especially on paint) will only result in performance issues. I'd suggest just caching the values into a giant 2D array.

• 1
##### Share on other sites

Nice, but computing the required XP on each call (especially on paint) will only result in performance issues. I'd suggest just caching the values into a giant 2D array.

That's exactly what I do with my script ;)

##### Share on other sites

Math operations are usually very expensive (Especially the Pow() operation)

I'd recommend just indexing a single-dimensional array

@Liverare, not sure why you would want to do a 2d array

EDIT: This is the one I use

```public static final int[] XP_TABLE = {0, 83, 174, 276, 388, 512, 650, 801, 969,
1154, 1358, 1584, 1833, 2107, 2411, 2746, 3115, 3523, 3973, 4470, 5018,
5624, 6291, 7028, 7842, 8740, 9730, 10824, 12031, 13363, 14833, 16456,
18247, 20224, 22406, 24815, 27473, 30408, 33648, 37224, 41171, 45529,
50339, 55649, 61512, 67983, 75127, 83014, 91721, 101333, 111945, 123660,
136594, 150872, 166636, 184040, 203254, 224466, 247886, 273742, 302288,
333804, 368599, 407015, 449428, 496254, 547953, 605032, 668051, 737627,
814445, 899257, 992895, 1096278, 1210421, 1336443, 1475581, 1629200,
1798808, 1986068, 2192818, 2421087, 2673114, 2951373, 3258594, 3597792,
3972294, 4385776, 4842295, 5346332, 5902831, 6517253, 7195629, 7944614,
8771558, 9684577, 10692629, 11805606, 13034431};```
Edited by FrostBug