Jump to content

Special Calcs: Max Hit Calc


Recommended Posts

I know there has already been a lot of discussion about this and how there is no public formula etc. However, i would just like to say that without anything except strength level and strength bonus, it always give you an estimate which is one above what you can actually hit. I know this is true because i have used it for months and i have never hit what its says, always just below. Thanks very much everyone! :)

Link to comment
Share on other sites

The formula IS public, and I helped design a bit of it. Max hit calculators are extremely difficult to engineer due to the extreme amount of input combination, so it'll likely never be 100% accurate without Jagex telling us, but thus far it's pretty good.

 

 

 

"

     + "NoYes";

   }

   else if(weap_id == 8){

     weap_spec.innerHTML = "Special - Cleave:
"

     + "NoYes";

   }

   else if(weap_id == 9){

     weap_spec.innerHTML = "Special - Shatter:
"

     + "NoYes";

   }

   else if(weap_id == 13){

     weap_spec.innerHTML = "Godsword Special:
"

     + "NoArmadylBandosSaradominZamorak";

   }

else if(weap_id == 29){

  weap_spec.innerHTML = "Special - Smash:
"

     + "NoYes"

}

else if(weap_id == 30){

  weap_spec.innerHTML = "Special - Feint:
"

     + "NoYes"

}

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

     weap_spec.innerHTML = ""

     + "HP Lost:
";

   }

   else{

     weap_spec.innerHTML = "";

   }



   // If using a 2-handed weapon, disable the shield select box. If not, enable it.

   if (weap_id == 2 || weap_id == 3 || weap_id == 7 || weap_id == 11 || weap_id == 12 || weap_id == 13 || weap_id == 14 || weap_id == 15 || weap_id == 18 || weap_id == 23 || weap_id == 24 || weap_id == 25 || weap_id == 26 || weap_id == 27 || weap_id == 29 || weap_id == 30 || weap_id == 31){

     document.getElementById("shield_custom").innerHTML = 0;

     shld_sel.disabled = true;

     shld_sel.value = 0;      

     shld_var = 0;

   }



   // If "Abyssal Whip" is selected with style set to aggresive, set style to controlled.

   if (weap_id == 1 && styl_var == 1){

     document.getElementById("styl_select").selectedIndex = 2;

   }



   // If a full set is being used, disable appropriate item slots.

   if (set_var != 0){

     document.getElementById("special_helmet").innerHTML = "";

     document.getElementById("helmet_custom").innerHTML = 0;

     helm_sel.disabled = true;

     helm_sel.value = 0;

     helmet_var = 0;



     document.getElementById("body_custom").innerHTML = 0;

     body_sel.disabled = true;

     body_sel.value = 0;

     body_var = 0;



     document.getElementById("legs_custom").innerHTML = 0;

     legs_sel.disabled = true;

     legs_sel.value = 0;

     legs_var = 0;



     if(set_var == 2){

       document.getElementById("glove_custom").innerHTML = 0;

       glov_sel.disabled = true;

       glov_sel.value = 0;

       glov_var = 0;

     }

   }      

 }



 // "amulet_select" has been changed.

 else if(i == 1){

   var amul_spec = document.getElementById("special_amulet");

   document.getElementById("amulet_custom").innerHTML = amul_var;



   if(amul_var == "0-15%"){

     amul_spec.innerHTML = "Style of Monster:
"

     + "UndeadRegular";

   }

   else if(amul_var == "0-20%"){

     amul_spec.innerHTML = "Style of Monster:
"

     + "UndeadRegular";

   }

   else{

     amul_spec.innerHTML = "";

   }

 }



 // "helmet_select" has been changed.

 else if(i == 2){

   var helm_spec = document.getElementById("special_helmet");

   document.getElementById("helmet_custom").innerHTML = helm_var;



   if(helm_var == "0-15%"){

     helm_spec.innerHTML = "Style of Monster:
"

     + "SlayerNormal";

   }

   else{

     helm_spec.innerHTML = "";

   }

 }



 // Another equipment select box has been changed.

 else if(i == 3){

   document.getElementById("body_custom").innerHTML = body_var;

   document.getElementById("legs_custom").innerHTML = legs_var;

   document.getElementById("shield_custom").innerHTML = shld_var;

   document.getElementById("cape_custom").innerHTML = cape_var;

   document.getElementById("ring_custom").innerHTML = ring_var;

   document.getElementById("glove_custom").innerHTML = glov_var;

   document.getElementById("boot_custom").innerHTML = boot_var;

 }



 // "str_lvl_input" input box has been changed.

 else if(i == 4){

   var str_input = document.getElementById("str_lvl_input");

   if(str_input.value 
     str_input.value = 1;

   }

 }



 // "dharok_axe" input box has been changed.

 else if(i == 5){

   var dharok_axe = document.getElementById("dharok_axe");

   if(dharok_axe.value > 98){

     dharok_axe.value = 98;

   }

 }



 // "styl_select" has changed. Possibly set to aggresive with Abby Whip as weapon.

 else if(i == 6){

   if(weap_id == 1 && styl_var == 1){

     document.getElementById("styl_select").selectedIndex = 2;

   }

 }



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

 else if(i == 7){

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

   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_lvl = parseInt(document.getElementById("str_lvl_input").value);

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

   var dag_spec = false;

var pot_boost = 0;

var str_mult = 0;

   var dmg_mult = 1;

var dharok_hp = 0;

var dharok_mod = 1;

   var max_hit;



   // Special attacks; adjust equipment strength bonus.

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){

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

   }

else if(weap_id == 29 && document.getElementById("statius_warhammer").selectedIndex == 1){

     dmg_mult += 0.25;

   }

else if(weap_id == 30 && document.getElementById("vesta_longsword").selectedIndex == 1){

     dmg_mult += 0.20;

   }

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

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

     dharok_mod = (dharok_hp / 99) + 1;

   }



   // Potion strength boost. The strength gained does not (seem to) influence prayer / equipment strength boosts, except for Dharok.

if(baxe_spec == 1){potion = 2;}

if(potion == 0){pot_boost = 0;}

else if(potion == 1){pot_boost = (str_lvl * 0.1)+3}

else if(potion == 2){pot_boost = (str_lvl * 0.15)+5}

else if(potion == 3){pot_boost = (str_lvl * 0.12)+2}

pot_boost = Math.floor(pot_boost);



// Passive % strength modifiers. Black Mask and Salve Amulet don't stack. Assumes that prayer and equipment % boosts are cumulative, not multiplicative.

// Also assumes that this bonus is not rounded down.

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

     str_mult += 0.15;

   }

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

     str_mult += 0.2;

   }

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

     str_mult += 0.15;

   }

str_mult += prayer;

mult_boost = (str_lvl * str_mult);



// Passive % damage modifiers.

   if(set_var == 2){

     dmg_mult += 0.1; // Void Knight Set

   }

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

     dmg_mult += 0.2; // Obsidian Synergy

   }



   // Calculate max hit. Multiply total strength with Dharok's modifier; the assumption is made that the resulting strength level is not rounded down.

   max_hit = ((((str_lvl + pot_boost + mult_boost + style)*dharok_mod)*((str_bonus*0.00175)+0.1)+1.05)*dmg_mult);

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



   output = document.getElementById("max_hit_output");

   if(dag_spec){

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

   }

else if(weap_id == 28){

  output.innerHTML = "Maximum Hit:  " + max_hit + "
Vs. Kalphite:  " + max_hit*3

}

   else{

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

   }

 }



 // Calculate total equipment strength bonus.

   total_str_bonus =  parseInt(weap_var) + parseInt(amul_var)

 + parseInt(helm_var) + parseInt(body_var) + parseInt(legs_var) + parseInt(shld_var) + parseInt(cape_var)

 + parseInt(ring_var) + parseInt(glov_var) +  parseInt(boot_var);



   if(total_str_bonus != 0){

     document.getElementById("total_str").value = total_str_bonus;

   }

}

-->

  • 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

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

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