Jump to content

RuneScape formulas revealed!


Jard_Y_Dooku

Recommended Posts

I remember seeing the pic of the 110 being hit on the shades as well, but I searched and couldn't find the topic. That may have also been done before the addition of the last few bonuses (not sure if piety or the salve ammy (e) was out yet).

 

 

 

 

 

110.jpg

 

 

 

 

 

piety + salve.

2153_s.gif

When a true genius appears in the world, you may know him by this sign, that the dunces are all in confederacy against him. ~Jonathan Swift

userbar_full.png

Website Updates/Corrections here. WE APPRECIATE YOUR INPUT! Crewbie's Missions!Contributor of the Day!

Thanks to artists: Destro3979, Guthix121, Shivers21, and Unoalexi.

Link to comment
Share on other sites

  • Replies 90
  • Created
  • Last Reply

Top Posters In This Topic

piety + salve.

 

 

 

Salve or Salve(e)? A quick (modified) calculation using the tip.it calc puts the result with Salve and not Salve(e) at 110 exactly. The way I always worked around the Dharok error on the tip.it calc was to just calculate it based on full 99 hp, then double the end result manually. In this case, the end result of 55 * 2 = 110.

Boy_Wonder_1.png
Link to comment
Share on other sites

@ AllBogs... the potion result is floored. A super potion calculates to a 19.8 increase for level 99, and it's floored, becoming level 118 strength as we know. If a player could reach level 100, a super potion would boost exactly 20.0.

 

 

 

And the thing about 110 hits is that that's NOT necessarily the max. Shades have only 110 HP. Take a look at this section of my bestiary, it lists some undead monsters with higher HP (http://www.runeuniverse.us/npc.ws?sort= ... ype=Search).

 

 

 

Though there are not many, I'd recommend the Ancient Cavern skeletons as they have 124 HP and Dharok's max is unlikely to exceed that. Possibly the barbarian spirits as well, if the salve amulet counts them as undead. They have 190 HP and would be superior to anything else for testing purposes.

 

 

 

I'm glad you guys seem to be enjoying this topic, and thanks especially to Boy Wonder1 for his posts.

  • Never trust anyone. You are always alone, and betrayal is inevitable.
  • Nothing is safe from the jaws of the decompiler.

Link to comment
Share on other sites

@ AllBogs... the potion result is floored. A super potion calculates to a 19.8 increase for level 99, and it's floored, becoming level 118 strength as we know. If a player could reach level 100, a super potion would boost exactly 20.0.

 

 

 

And the thing about 110 hits is that that's NOT necessarily the max. Shades have only 110 HP. Take a look at this section of my bestiary, it lists some undead monsters with higher HP (http://www.runeuniverse.us/npc.ws?sort= ... ype=Search).

 

 

 

Though there are not many, I'd recommend the Ancient Cavern skeletons as they have 124 HP and Dharok's max is unlikely to exceed that. Possibly the barbarian spirits as well, if the salve amulet counts them as undead. They have 190 HP and would be superior to anything else for testing purposes.

 

 

 

I'm glad you guys seem to be enjoying this topic, and thanks especially to Boy Wonder1 for his posts.

 

 

 

piety + salve.

 

 

 

Salve or Salve(e)? A quick (modified) calculation using the tip.it calc puts the result with Salve and not Salve(e) at 110 exactly. The way I always worked around the Dharok error on the tip.it calc was to just calculate it based on full 99 hp, then double the end result manually. In this case, the end result of 55 * 2 = 110.

 

 

 

Quite sure it's Salve(e) - I remember seeing a picture of a 110 at the Ancient Cavern skeletons with a Salve(e), also... though that's not very helpful in answering this question.

  • Never trust anyone. You are always alone, and betrayal is inevitable.
  • Nothing is safe from the jaws of the decompiler.

Link to comment
Share on other sites

I think I'll experiment it bit with the order in which different strength bonusses are applied.

 

 

 

As it stands now;

 

 

 


potion_mod in {1.125, 1.2, 1.15}

pray_mod in {0.05, 0.1, 0.15, 0.18, 0.23}

style in {1, 3, 0}

str_lvl = "player's strength level"

str_base = str_lvl * str_multipliers   // With multipliers the Salve, Salve (e) or Black Mask bonus. (They don't stack, been tested)

str_in_calculation = floor(floor(str_base * potion_mod) + (str_base * pray_mod) + style)

 

 

 

Let us assume this is correct. Dharok's strength bonus could be applied to various numbers. Directly to "str_lvl", so it's multiplicative with Salve / Black Mask bonusses; it could be added to these multipliers, making it additive with Salve / Black Mask bonusses; or to "str_in_calc", making it multiplicative with everything, including the combat style strength bonus.

 

 

 

Personally, I'd say it being additive with other %strength modifiers makes most sense, as it would prevent excessive scaling of effective strength when even more %modifiers are introduced. On the other hand, it being multiplicative might work, too; probably easier to program as well, and I'm not so sure that Jagex cares much about weapon balance. I do think it's unlikely that even the combat style bonus scales with Dharok, so the last option's probably incorrect.

 

 

 

We also know that anything resulting in less than 110 under optimal circumstances is plain wrong.

 

 

 

I also have a hunch that the %modifier from prayer might be additive with other %modifiers (ie Salve ammy), as the calculator currently produces somewhat high numbers when bashing undead wearing Salve while potting and praying (ie excessive scaling). I'll play around a bit tonight and see how it works out.

 

 

 

Edit: wrote cumulative where I meant multiplicative.

Link to comment
Share on other sites

I think I'll experiment it bit with the order in which different strength bonusses are applied.

 

 

 

As it stands now;

 

 

 


potion_mod in {1.125, 1.2, 1.15}

pray_mod in {0.05, 0.1, 0.15, 0.18, 0.23}

style in {1, 3, 0}

str_lvl = "player's strength level"

str_base = str_lvl * str_multipliers   // With multipliers the Salve, Salve (e) or Black Mask bonus. (They don't stack, been tested)

str_in_calculation = floor(floor(str_base * potion_mod) + (str_base * pray_mod) + style)

 

 

 

Let us assume this is correct. Dharok's strength bonus could be applied to various numbers. Directly to "str_lvl", so it's cumulative with Salve / Black Mask bonusses; it could be added to these multipliers, making it additive with Salve / Black Mask bonusses; or to "str_in_calc", making it cumulative with everything, including the combat style strength bonus.

 

 

 

Personally, I'd say it being additive with other %strength modifiers makes most sense, as it would prevent excessive scaling of effective strength when even more %modifiers are introduced. On the other hand, it being cumulative might work, too; probably easier to program as well, and I'm not so sure that Jagex cares much about weapon balance. I do think it's unlikely that even the combat style bonus scales with Dharok, so the last option's probably incorrect.

 

 

 

We also know that anything resulting in less than 110 under optimal circumstances is plain wrong.

 

 

 

I also have a hunch that the %modifier from prayer might be additive with other %modifiers (ie Salve ammy), as the calculator currently produces somewhat high numbers when bashing undead wearing Salve while potting and praying. I'll play around a bit tonight and see how it works out.

 

 

 

AllBogs... when you play around with the formula, please implement potions correctly. I would like to see you implement my potion formula into the Tip.It calculator ASAP as well, as it is 100% accurate in calculating the received level, and therefore will give us a base strength level to start with, that is actually valid... Remember, floor() the potion boost before adding it to strength level - it should be an integer.

 

 

 

Here, I'll code it for you. :)

 

 

 


None

Strength

Super Strength

Zamorak

 

 

 

change to:

 

 

 


None

Strength

Super Strength

Zamorak

 

 

 

and add this function in your JS:

 

 

 

function potionBoost(level, rangeLow, rangeHigh)

{

   if (level < 0 || rangeLow == 0 || rangeHigh == 0)

   {

       return 0;

   }



   return Math.floor((level / 100) * (rangeHigh - rangeLow)) + (rangeLow + (level / 100));

}

 

 

 

And the code for calculation, fixed:

 

 

 

// The "Tip Me!" button has been clicked.

 else if(i == 7){

   var str_lvl = parseInt(document.getElementById("str_lvl_input").value);

   var potion = parseInt(document.getElementById("poti_select").value);

   if (potion == 1)

   {

       potion = potionBoost(str_level, 3, 12);

   }

   else if (potion == 2)

   {

       potion = potionBoost(str_level, 5, 19);

   }

   else if (potion == 3)

   {

       potion = potionBoost(str_level, 2, 13);

   }

   var style = parseInt(document.getElementById("styl_select").value);

   var prayer = parseFloat(document.getElementById("pray_select").value);

   var baxe_spec = document.getElementById("baxe_select").selectedIndex;

   var str_bonus = parseInt(document.getElementById("total_str").value);

   var dag_spec = false;

   var dharok_hp = 0;

   var multiplier = 1;

   var max_hit;



   if(weap_id == 6 && document.getElementById("drag_dag").selectedIndex == 1){

     dag_spec = true;

     str_bonus += 20;

   }

   else if(weap_id == 8 && document.getElementById("drag_long").selectedIndex == 1){

     str_bonus += 30;

   }

   else if(weap_id == 9 && document.getElementById("drag_mace").selectedIndex == 1){

     str_bonus += 60;

   }

   else if(weap_id == 13){

     multiplier += parseFloat(document.getElementById("god_select").value);

   }

   else if(weap_id == 3 && set_var == 1){

     dharok_hp = parseInt(document.getElementById("dharok_axe").value);

     str_bonus = str_bonus * ((dharok_hp / 99) + 1);

   }

   else if(set_var == 2){

     multiplier += 0.1;

   }

   else if(amul_var == 7 && (weap_id == 16 || weap_id == 17 || weap_id == 18 || weap_id == 19)){

     multiplier += 0.2;

   }



   // Note: Black Mask & Salve Amulet don't stack.

   if(amul_var == "0-15%" && document.getElementById("salv_amul").selectedIndex == 0){

     str_lvl = Math.floor(str_lvl * 1.15);

   }

   else if(amul_var == "0-20%" && document.getElementById("salv_amul_e").selectedIndex == 0){

     str_lvl = Math.floor(str_lvl * 1.2);

   }

   else if(helm_var == "0-15%" && document.getElementById("blck_mask").selectedIndex == 0){

     str_lvl = Math.floor(str_lvl * 1.15);

   }



   if(baxe_spec == 1){

     potion = 1.2;      

   }



   max_hit = (((str_lvl+potion+Math.floor(str_lvl*prayer)+style)*((str_bonus*0.00175)+0.1)+1.05)*multiplier);

   if(max_hit < 1.5){max_hit = 1;}

   else{max_hit = Math.ceil(max_hit);}



   output = document.getElementById("max_hit_output");

   if(dag_spec){

     output.innerHTML = "Maximum Hit:&nbsp " + max_hit + " x2";

   }

   else{

     output.innerHTML = "Maximum Hit:&nbsp " + max_hit;

   }

 }

 

 

 

EDIT: I just thought of something... it's entirely possible that the potion formula is as simple as:

 

 

 

(level * percentConstant) + integerConstant

 

 

 

What leads me to believe this is that first of all - my formula is weird. Secondly...

 

 

 

For attack, strength, defence and combat potions, (level * 1.1) + 3 seems to work and matches with Jagex's 3-12 range for levels 1-99.

 

For super attack, strength and defence potions, (level * 1.15) + 5 seems to work and matches with Jagex's 5-19 range.

 

For restore potion, (level * 1.3) + 10 seems to work and matches with Jagex's 10-39 range.

 

For prayer and summoning potions, (level * 1.25) + 7 seems to work and matches with Jagex's 7-31 range.

 

For prayer potions with wrench, (level * 1.27) + 7 seems to work and matches with Jagex's 7-33 range. (and no it's not 1.275, that'd be too high)

 

For super restore potions, (level * 1.25) + 8 seems to work and matches with Jagex's 8-32 range.

 

For ranged potions, (level * 1.1) + 4 seems to work and matches with Jagex's 4-13 range.

 

For zamorak brew...

 

strength = (level * 1.12) + 2 (not 1.125, doesn't work out)

 

attack = (level * 1.2) + 2

 

defence and hitpoints = level - ((level * 0.1) + 2)

 

For saradomin brew

 

hitpoints = (level * 1.15) + 2

 

defence = (level * 1.2) + 2

 

attack, strength, magic and ranged = level - ((level * 0.075) + 2)

 

 

 

I guessed all these numbers as I typed that - relatively easy!

 

 

 

So we can say that:

 

 

 

Attack/strength/defence = 10% increase, +3 levels

 

Super attack/strength/defence = 15% increase, +5 levels

 

Restore potion = 30% increase, +10 levels

 

Prayer/summoning = 25% increase, +7 levels

 

Prayer w/ wrench = 27% increase, +7 levels

 

Super restore = 25% increase, +8 levels

 

Ranged potion = 10% increase, +4 levels

 

Zamorak...

 

Attack = 20% increase, +2 levels

 

Strength = 12% increase, +2 levels

 

Defence/HP = (level) MINUS (10% increase, +2 levels) OR 10% decrease, -1 levels ?

 

Saradomin...

 

Attack/strength/magic/ranged = (level) MINUS (7.5% increase, +2 levels) OR 7.5% decrease, -1 levels ?

 

Defence = 20% increase, +2 levels

 

Hitpoints = 15% increase, +2 levels

 

 

 

These values seem far more logical, although I'm not sure yet about the losses. From a programming standpoint, my first guess makes more sense; from a logical standpoint, the second makes more sense... or maybe not. I'm not sure about this yet but I will be running some tests later (comparing the results of each formula and finding which values differ).

 

 

 

Cheers!

  • Never trust anyone. You are always alone, and betrayal is inevitable.
  • Nothing is safe from the jaws of the decompiler.

Link to comment
Share on other sites

To be honest, I think the second option makes more sense from a programming / game design standpoint, too. It's a simple formula that captures the concept of a potion scaling with the skill level it boost, yet also adding a (smaller) bonus when said skill level is very low. The first solution looks a bit complicated for something as simple as a buff potion.

 

 

 

Either way, the current flat modifier is plain wrong (as it doesn't respect the lower bound on the boost), so I'll change that one, too. Cheers. Should take care of the calc being wrong on low strength max hits when potted.

 

 

 

In addition to seeing how having prayer as an additive strength boost works, I'm also going to see if having potions directly influence base strength (it says 118 strength on the stats display after all) and then going from there works out.

 

 

 

Edit: also, some thought on Dharok. If the multiplier is indeed calculated as we think it is, it would have to affect the entire strength component of the formula in order to (nearly) double it when on 1 out of 99 hp. If it's placed in or outside the formula shouldn't matter much. As it is now, it's basically (strength_part * equipment part); multiplying either the strength part by some x, or the entire thing by x, should have the same result. (Earlier the difference was 1 point of damage; due to use of floor, no doubt)

 

 

 

Edit2: I've tested the calculator with using potted strength as the basis for calculations; that is to say, having things multiply 118 strength instead of 99 strength, for instance. I'm getting an F2P scimitar max hit of 26 with a diamond amulet, strength potion and ultimate strength - guess we can conclude that prayers and such do not adjust the bonus strength points awarded from potting, as I don't recall ever having seen someone be hit for 26 on F2P with a scimitar.

Link to comment
Share on other sites



<?php



function potionBoostOLD($level, $rangeLow, $rangeHigh)

{

if ($level < 0 || $rangeLow == 0 || $rangeHigh == 0)

{

return 0;

}



// NOTE: encase with floor() for actual output, this outputs decimal right now for testing.

return (($level / 100) * ($rangeHigh - $rangeLow)) + ($rangeLow + ($level / 100));

}



function potionBoostNEW($level, $percentage, $constant)

{

// NOTE: encase with floor() for actual output, this outputs decimal right now for testing.

return (($level * ($percentage / 100)) + $constant);

}



$potions = array

(

array("Attack, strength and defence potions", 3, 12, 10),

array("Super attack, Super strength and Super defence potions", 5, 19, 15),

array("Restore potions", 10, 39, 30),

array("Prayer and summoning potions", 7, 31, 25),

array("Prayer potions with Holy wrench", 7, 33, 27),

array("Super restore potions", 8, 32, 25),

array("Ranged potions", 4, 13, 10),

array("Zamorak brew - Strength", 2, 13, 12),

array("Zamorak brew - Attack", 2, 21, 20),

array("Zamorak brew - Defence and Hitpoints (subtracted, not added)", 2, 11, 10),

array("Saradomin brew - Defence", 2, 21, 20),

array("Saradomin brew - Hitpoints", 2, 16, 15),

array("Saradomin brew - Attack, strength, ranged and magic (subtracted, not added)", 2, 9, 8),

array("Wizard's mind bomb", 2, 3, 2),

array("Wizard's mind bomb(m)", 2, 4, 3)

);



$mismatches = 0;

$badpots = 0;



for ($j = 0; $j < count($potions); $j++)

{

echo '
' . $potions[$j][0] . '
LevelAmount boosted/removed (OLD formula)Amount boosted/removed (NEW formula)Resultant level
up to ' . floor($boostNEW) . ' but will not exceed your base level';

}



// No potion will allow your level to drop below zero

if ($result < 0)

{

$result = 0;

}



// Output all fields

echo '' . $i . '' . $boostOLD . '' . $boostNEW . '' . $result . '';

}



// Increase the number of potions with mismatched values by one

$badpots += $pots ? 1 : 0;



echo '';

}



echo '

Remember that all values shown here are FLOORED before being added to or subtracted from your base level, otherwise around 90% of the subtractions would be off (incorrect) by one level too many. So don't forget to floor!

';



echo '

' . count($potions) . ' potions checked. ' . $mismatches . ' mismatched value(s) in ' . $badpots . ' potion(s) found.

';



echo '
Potion constants table
Potion namePercentageInteger constant
' . $potions[$k][0] . '' . $potions[$k][3] . '%' . $potions[$k][1] . '
';



?>

  • Never trust anyone. You are always alone, and betrayal is inevitable.
  • Nothing is safe from the jaws of the decompiler.

Link to comment
Share on other sites

Glad you like it!

 

 

 

I just updated the code/downloads to version 1.1. I changed the potion formula to the new, logical formula discussed near the end of page 3, and fixed a small bug with the max hit calculator where the boost level wouldn't readjust if you changed your base strength level when a potion was selected. Enjoy!

  • Never trust anyone. You are always alone, and betrayal is inevitable.
  • Nothing is safe from the jaws of the decompiler.

Link to comment
Share on other sites

I'll poke the guide and items DB folks to update stuff so it matches the knowledge base, at least. While putting the formula for each specific potion into the guide would be overkill, the "attack potion increases by 12.5%" stuff is plain wrong.

 

 

 

A potion boost calculator sounds neat. I'll put it up for discussion and see what other crewbies think about it.

Link to comment
Share on other sites

A potion boost calculator sounds neat. I'll put it up for discussion and see what other crewbies think about it.

 

In classic (when supers where first released) if you examined them they said %'s on how much they increased your level by.

 

 

 

If I remember rightly Supers where "20%" of your level and Regular where "12.5%" of your level.

Link to comment
Share on other sites

Awesome, AllBogs. :)

 

 

 

A potion boost calculator sounds neat. I'll put it up for discussion and see what other crewbies think about it.

 

In classic (when supers where first released) if you examined them they said %'s on how much they increased your level by.

 

 

 

If I remember rightly Supers where "20%" of your level and Regular where "12.5%" of your level.

 

 

 

Wow, that's interesting, I'd never heard of that before. I wonder why they changed it...

  • Never trust anyone. You are always alone, and betrayal is inevitable.
  • Nothing is safe from the jaws of the decompiler.

Link to comment
Share on other sites

Btw, your max hit calculator is messed up big time. I tried various settings such as 98 str and max str bonus+keris and the max changes between 12 and 96.

 

 

 

And the result pops up in another window, as well as changing various options in the max hit menu if you close the popup.

 

 

 

 

 

Also, why do you have lumberjack clothing as options in the max hit outfit selection menu?

Link to comment
Share on other sites

Btw, your max hit calculator is messed up big time. I tried various settings such as 98 str and max str bonus+keris and the max changes between 12 and 96.

 

 

 

And the result pops up in another window, as well as changing various options in the max hit menu if you close the popup.

 

 

 

 

 

Also, why do you have lumberjack clothing as options in the max hit outfit selection menu?

 

 

 

Yes, I know my calculator's complete junk right now. Firefox 3 doesn't seem to like iframes. I'll convert it entirely to JavaScript when I get a chance, but don't expect anything too soon.

 

 

 

And the reason it has lumberjack clothing in there is because it automatically selects ALL items from my item database (I don't add them to the calculator manually like Tip.It). And that might get fairly large if I start getting thousands of items into my database. I may change the calculator to select only the items with a strength bonus or max-hit-affecting property in the future.

 

 

 

So have you got the complete original combat formula for RSC?

 

 

 

Yes, if you look at the beginning of the topic, you can download the RuneScapeFormulas.java file which contains the formula in Java.

  • Never trust anyone. You are always alone, and betrayal is inevitable.
  • Nothing is safe from the jaws of the decompiler.

Link to comment
Share on other sites

Awesome, AllBogs. :)

 

 

 

A potion boost calculator sounds neat. I'll put it up for discussion and see what other crewbies think about it.

 

In classic (when supers where first released) if you examined them they said %'s on how much they increased your level by.

 

 

 

If I remember rightly Supers where "20%" of your level and Regular where "12.5%" of your level.

 

 

 

Wow, that's interesting, I'd never heard of that before. I wonder why they changed it...

It's because Jagex believes the less you know, the better.
If the CORPORAL beast is this hard, imagine how hard a GENERAL or COLONEL beast would be. a corporal is not even an admirable rank in armies that use that ranking system.

 

Yeah, it is a pking minigame, so any arguments anybody makes will probably be biased.

The best way this will end :Everybody just says,"I'm not arguing with you anymore, goodbye."

The worst way this will end: I don't really know, psychological warfare? Worldwide thermonuclear war? Pie eating contest?

Link to comment
Share on other sites

Awesome, AllBogs. :)

 

 

 

A potion boost calculator sounds neat. I'll put it up for discussion and see what other crewbies think about it.

 

In classic (when supers where first released) if you examined them they said %'s on how much they increased your level by.

 

 

 

If I remember rightly Supers where "20%" of your level and Regular where "12.5%" of your level.

 

 

 

Wow, that's interesting, I'd never heard of that before. I wonder why they changed it...

It's because Jagex believes the less you know, the better.

 

 

 

Probably... but I actually meant I wonder why they changed the values, not the examines, because they are no longer 20 and 12.5%. They're now 15 and 10.

  • Never trust anyone. You are always alone, and betrayal is inevitable.
  • Nothing is safe from the jaws of the decompiler.

Link to comment
Share on other sites

Awesome, AllBogs. :)

 

 

 

A potion boost calculator sounds neat. I'll put it up for discussion and see what other crewbies think about it.

 

In classic (when supers where first released) if you examined them they said %'s on how much they increased your level by.

 

 

 

If I remember rightly Supers where "20%" of your level and Regular where "12.5%" of your level.

 

 

 

Wow, that's interesting, I'd never heard of that before. I wonder why they changed it...

It's because Jagex believes the less you know, the better.

 

 

 

Probably... but I actually meant I wonder why they changed the values, not the examines, because they are no longer 20 and 12.5%. They're now 15 and 10.

 

Not really, because 99 + 20% would be 118.8 which is the exact maths for the super strength potion, right?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

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