Skip to content
View in the app

A better way to browse. Learn more.

Tip.It Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Making a runescape skill calculator

Featured Replies

Couple of questions:

- Is there a forumla to get the xp needed for a level or do I have to hardcode it in a List?

- Is there any easy way of getting all the ways to gain xp or is that something I have to do myself?

 

I'm using Java but if you post in PHP I *should* be able to figure it out. Thanks!

- Tips

treq5.gif

T R Tipster.png

Edit: When I'm on my desktop I'll write it in Java if you need. I have functions writting for them in C++ and AHK_L. >.<

<?php

function experience($L) {
 $a=0;
 for($x=1; $x<$L; $x++) {
   $a += floor($x+300*pow(2, ($x/7)));
 }
 return floor($a/4);
}

for($L=1;$L<100;$L++) {
 echo 'Level '.$L.': '.experience($L).'<br />';
}
?>

09144a99bb.png

I found an experience formula here.

<?php
function experience($L) {
$a=0;
for($x=1; $x<$L; $x++) {
$a += floor($x+300*pow(2, ($x/7)));
}
return floor($a/4);
}
for($L=1;$L<100;$L++) {
echo 'Level '.$L.': '.experience($L).'<br />';
}
?>

 

After translating it to Java myself, I found it is not 100% accurate, but close. I did some Googling around and found out pretty much every site uses the same formula. I think around level 101 is where it needs to be decreased by 1. Of course, unless the XP table on tip.it is wrong. It says "104,273,166" for 120 where the formula ends up being "104,273,167".

 

As far as your second question, it would be difficult to get all possible training ways. You could just find the popular ones by navigating forums and double checking the methods they post and then leaving a form field in your calculator for a user to input custom rates.

wii_wheaton.png

[software Engineer] -

[Ability Bar Suggestion] - [Gaming Enthusiast]

I'm not sure if doing that many loops every time you need the xp of a level is efficient. I'd rather just store it in an array then reference that as necessary.

 


<?php

$level = array("",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,14391160,15889109,17542976,19368992,21385073,23611006,26068632,28782069,31777943,35085654,38737661,42769801,47221641,52136869,57563718,63555443,70170840,77474828,85539082,94442737,104273167);
echo $level[120];

?>

Well it would depend on his program. Looping 120 times shouldn't even be noticable. :P.

09144a99bb.png

If you're talking hundreds of thousands of searches, then it'll make a difference of a couple milliseconds. :P.

09144a99bb.png

  • Author

I'm not sure if doing that many loops every time you need the xp of a level is efficient. I'd rather just store it in an array then reference that as necessary.

 


<?php

$level = array("",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,14391160,15889109,17542976,19368992,21385073,23611006,26068632,28782069,31777943,35085654,38737661,42769801,47221641,52136869,57563718,63555443,70170840,77474828,85539082,94442737,104273167);
echo $level[120];

?>

Thanks, I'll probably just use this just because it's so easy.

It's good to know the forumla though in case I ever need it, so thanks guys

treq5.gif

T R Tipster.png

Create an account or sign in to comment

Important Information

By using this site, you agree to our Terms of Use.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.