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.

Jard_Y_Dooku

Members
  • Joined

  • Last visited

Everything posted by Jard_Y_Dooku

  1. From what I understand, the program only retrieves data in direct response to a user request. And this is different from accessing the website directly, how?
  2. Yeah php's easy... just change all the data types to dollar signs, pretty much. :D
  3. Thanks for the compliments you guys. And the reason Keris can hit so high is because the special attack triples your max hit. For example if you would have hit 42, you'd hit 126 with the special attack/effect.
  4. The Kb is not all-knowing. Well, tbh, they should be all-knowing, but aren't. There are numerous mistakes, inaccuracies, generalities, and important information left unmentioned. I remember when the 5% was added- I weighed in in favour of it, that despite there being no kb evidence, both zamorak/saradomin godswords had reported max hits higher than what should have been - about 5%. These reports were given by, among others, people whom I know and respect highly. An accuracy increase wa also represented, but did not have enough information relayed. Any further info on this will be appreciated; I just wanted to make the point that the KB isn't an end-all, be-all. I understand there are inaccuracies, but special attacks don't necessarily have to raise your max hit to hit higher. Just because I hit a 50 with Zamorak godsword and then a 51 with the special attack doesn't mean the special hits higher. Also, a 5% increase seems a bit odd for Jagex to leave out. Secondly, a 5% increase is kind of worthless on a weapon as powerful as a godsword. Third, the Saradomin godsword's special is quite useful - I doubt they were much inclined to make it any better, the same with the Zamorak godsword, even though its special isn't that great. We should attempt intensive testing before concluding things like this, and I'm not adding 5% to the Saradomin and Zamorak godswords on the experimental formula, as priority is to get the base formula working accurately first. Thanks for your input though, I'll talk to some Jagex mods about this. Also, thanks for those pics, brunokiller. Also I forgot to mention: Level to XP and XP to level methods are now in the RuneScapeFormulas class.
  5. Friday, September 05 - Made a small error correction to the max hit calculator.
  6. Well, you know how using aggressive adds 3 strength levels and controlled adds 1? Well, RuneHQ adds the 3 levels before calculating the amount of levels you get for drinking a potion. There's a formula to determine how many levels you get from drinking a particular potion, e.g. at level 1 a super strength potion gives 5 levels, at 99 it gives 19. The point is that RuneHQ adds the 3 from the aggressive style before calculating the potion raise, instead of after... making it incorrect. Do you see what I'm saying? Here's an example; RuneHQ does: int strength = 99; strength += 3; strength += getPotionRaise(strength); The last two lines should be reversed.
  7. Open source; MIT license. Go ahead! Also, I may update it at a later time so be sure to watch this page. And if you come up with any good improvements, please don't hesitate to post the code so I can add it in. ;)
  8. As many of you may know, the release of summoning brought about a big change to RuneScape. The knowledge of RuneScape's real combat formula. This post is going to be an introduction to formulas in RuneScape, and what we as a community can do to discover them. NOTE: There will be a lot of formulas and mathematics in this post. All computer code examples will be written in Java, as complete functions that can be used in any program. All formulas have been compiled and tested with the latest version of Java. Let's start with... ~~ The Combat Formula ~~ RuneScape classic's original combat formula was the following: public static double combatFormulaRSC(int attack, int strength, int defence, int hitpoints, int prayer, int ranged, int magic) { double combatLevel = ((defence + hitpoints) * 0.25) + ((magic + prayer) * 0.125); double warrior = (attack + strength) * 0.25; double ranger = ranged * 0.375; return combatLevel + (((ranged * 1.5) > (attack + strength)) ? ranger : warrior); } After RS2 it was changed to the following; this is the current, 100% accurate formula with summoning included, used today for calculating combat levels. Entering 0 or 1 in the summoning parameter will cause the formula to calculate your F2P combat level. public static double combatFormula(int attack, int strength, int defence, int hitpoints, int prayer, int ranged, int magic, int summoning) { double combatLevel = (defence + hitpoints + Math.floor(prayer / 2) + Math.floor(summoning / 2)) * 0.25; double warrior = (attack + strength) * 0.325; double ranger = ranged * 0.4875; double mage = magic * 0.4875; return combatLevel + Math.max(warrior, Math.max(ranger, mage)); } Even before the release of summoning, when Tip.It claimed to have a 100% accurate formula, it still failed at times during ranged and magic combat level calculations. Until recently after the release of summoning, no one had entertained the notion that odd prayer/summoning levels were not counted. I'd like to thank Maxwaterman for his incredible efforts on providing the RuneScape community with the real, 100% accurate combat level formula. This formula is used by our very own Tip.It (you'll see Maxwaterman in the credits), and RuneHQ, another major fansite. It is also used on my fansite, the RuneScape Wikia, and possibly and probably others. The next formula I will introduce is for calculating how many levels in a particular skill you need for the next combat level: public static int levelsToNextCombat(int attack, int strength, int defence, int hitpoints, int prayer, int ranged, int magic, int summoning, CombatSkills skill) { double currentCombat = Math.floor(combatFormula(attack, strength, defence, hitpoints, prayer, ranged, magic, summoning)); // Array of number of skills to next level int[] next_level = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 }; // 1 to 8, since there's 8 combat skills for (int j = 1; j <= 8; j++) { // Efficiency :) if (j != (skill.ordinal() + 1)) { continue; } // Which skill are we working with? int[] add = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 }; // There's 8 prayer or summoning levels to a combat level, BUT note that magic or range can get very high so we'll check all the way to 99 for (int i = 1; i <= MAX_LEVEL; i++) { // Increment the current skill we're adding to, by 1 add[j - 1] = i; double cb = combatFormula(attack + add[0], strength + add[1], defence + add[2], hitpoints + add[3], prayer + add[4], ranged + add[5], magic + add[6], summoning + add[7]); if (Math.floor(cb) > Math.floor(currentCombat)) { next_level[j - 1] = i; break; } } } // Make sure this won't say you need levels over 99... int[] skills = new int[] { attack, strength, defence, hitpoints, prayer, ranged, magic, summoning }; for (int i = 0; i < next_level.length; i++) { if (skills[i] + next_level[i] > MAX_LEVEL) { next_level[i] = 0; } } return next_level[skill.ordinal()]; } I would highly recommend Tip.It use this in their calculator as their current method can be off sometimes; this will never be. It also counts attack/strength and defence/hitpoints separately as sometimes you can require 1 attack level until the next combat, or 2 strength... the word "OR" would not apply here. I hope everyone's enjoyed this little thing about the combat formula and that it helps them. Now, it's time for the... ~~ Melee Max Hit Formula ~~ This formula is a tricky one. No website has yet gotten it correct. Some are more accurate on some things, others are better at others. The method I've written for calculating the melee max hit formula has a parameter allowing the programmer to specify which website's formula he wishes to use. Here is the code: public static int meleeMaxHit(int strengthBase, int strengthCurrent, int strengthBonus, StrengthPrayers prayer, FightingStyles fightStyle, SpecialAttacks special, Effects effect, ItemSets itemSet, int hpBase, int hpCurrent, Websites website) throws Exception { // Check for invalid input if (itemSet == ItemSets.Dharok && special != SpecialAttacks.None) { throw new Exception("Dharok's set effect cannot be used in conjuction with a special attack as all special attacks require a weapon other than Dharok's greataxe to be wielded."); } if (itemSet != ItemSets.None && (effect == Effects.BlackMask || effect == Effects.SlayerHelmet)) { throw new Exception("No item set can be used in conjuction with the black mask or slayer helmet as only one helmet can be worn at once and helmets cannot be worn in Castle Wars."); } if (itemSet == ItemSets.Dharok && hpCurrent == 0) { throw new Exception("Dharok's set effect cannot be used with a current hitpoints level of zero as you would be dead and could not attack."); } if (itemSet == ItemSets.Dharok && hpBase > MAX_LEVEL) { throw new Exception("You cannot have a base hitpoints level greater than " + MAX_LEVEL + "."); } if (special == SpecialAttacks.Keris && !(effect == Effects.None || effect == Effects.BlackMask || effect == Effects.SlayerHelmet)) { throw new Exception("Keris can only be used with the black mask / slayer helmet effect. Keris can only be used on Kalphites, so the other effects are nonexistant."); } // Calculate according to each website's current formula... // Criticisms: Follows an unusual formula with no real background; very accurate in certain areas but far off in others. if (website == Websites.RuneUniverse) { double dharokMultiplier = ((1 - ((float)hpCurrent / (float)hpBase)) * 0.95) + 1; double baseStrength = ((strengthCurrent + fightStyle.getStrengthBoost()) * (1 + prayer.getBoost() + effect.getBoost())); double bonusMultiplier = (strengthBonus * 0.00175) + 0.1; double maxHit = (baseStrength * bonusMultiplier) + 1.3; if (itemSet == ItemSets.Dharok) { maxHit *= dharokMultiplier; } else if (itemSet == ItemSets.None) { maxHit *= special.getMultiplier(); } else { maxHit *= itemSet.getMultiplier(); } return (int)Math.floor(maxHit); } // Criticisms: // Assumes special attacks increase strength bonus, whereas Jagex states they increase damage (e.g. max hit). // Assumes that the Saradomin and Zamorak godsword special attacks increase max hit by 5% when there is NO evidence for this, plus the KB specifically says that the SGS "inflicts normal damage". No mention at all, of extra damage is made in the KB for the ZGS either. // Uses potions as a multiplier (e.g. Super strength potion makes a multiplier of 1.2 whereas ALL potions do is increase your strength LEVEL by a set amount derived by a formula. // I've modified the formula so that potions are used correctly; sections changed are commented out. else if (website == Websites.TipIt) { /* Not needed because this is incorrect double potion = 0; 1 = None 1.125 = Strength 1.2 = Super Strength 1.15 = Zamorak */ double multiplier = 1; double maxHit = 0; double strengthBonus2 = strengthBonus; if (special == SpecialAttacks.DragonDagger) { strengthBonus += 20; } else if (special == SpecialAttacks.DragonLongsword) { strengthBonus += 30; } else if (special == SpecialAttacks.DragonMace) { strengthBonus += 60; } else if (special == SpecialAttacks.BandosGodsword) { multiplier += 0.1; } else if (special == SpecialAttacks.ArmadylGodsword) { multiplier += 0.25; } else if (special == SpecialAttacks.SaradominGodsword || special == SpecialAttacks.ZamorakGodsword) { multiplier += 0.05; } else if (itemSet == ItemSets.Dharok) { strengthBonus2 = (strengthBonus * (((float)(hpBase - hpCurrent) / 99) + 1)); } else if (itemSet == ItemSets.VoidKnight) { multiplier += 0.1; } else if (special == SpecialAttacks.BerserkerNecklace) { multiplier += 0.2; } else { throw new Exception("Tip.It's formula does not support this special attack or item set."); } strengthCurrent += (int)Math.floor(strengthCurrent * effect.getBoost()); /* Not needed because this is incorrect if (special == SpecialAttacks.Rampage) { potion = 1.2; } */ // strengthCurrent was previously: Math.floor(strengthBase * potion) maxHit = (((strengthCurrent + Math.floor(strengthCurrent * prayer.getBoost()) + fightStyle.getStrengthBoost()) * ((strengthBonus2 * 0.00175) + 0.1) + 1.05) * multiplier); if (maxHit < 1.5) { maxHit = 1; } else { maxHit = Math.ceil(maxHit); } return (int)maxHit; } // Criticisms: Like most of the others, is horrible at calculating Dharok max hits. On a positive note, it almost handles potions correctly (it factors in the fight style strength addition before the potion, where the potion should be first). else if (website == Websites.RuneHQ) { // NOTE: Due to the way RuneHQ's formula uses potions, the following two lines MAY cause an inaccuracy of 1 strength level due to the way it had to be converted to be used in this system double postMultiplier = ((float)(strengthCurrent - strengthBase) / strengthBase) + 1; strengthCurrent = (int)Math.ceil((strengthBase + fightStyle.getStrengthBoost()) * postMultiplier); double dharokMultiplier = ((1 - ((float)hpCurrent / (float)hpBase)) * ((float)2 / (float)3)) + 1; double baseStrength = strengthCurrent * (1 + prayer.getBoost() + effect.getBoost()); double maxHit = 1 + ((float)strengthBonus / 100) + (((float)strengthBonus / 925) * Math.log(baseStrength)); double maxHit2 = ((baseStrength + 13) * maxHit) / 10; if (special == SpecialAttacks.DragonHalberd) { maxHit2 *= 1.1; } else if (itemSet == ItemSets.Dharok) { maxHit2 *= dharokMultiplier; } else if (special == SpecialAttacks.Keris) { maxHit2 = Math.floor(maxHit2) * special.getMultiplier(); } else { maxHit2 *= special.getMultiplier(); } return (int)Math.floor(maxHit2); } // Criticisms: Same as Tip.It's formula in terms of potions. // I've also modified this one to use potions properly. else if (website == Websites.RuneScapeWikia) { if (itemSet != ItemSets.None) { throw new Exception("RuneScape Wikia formula does not support item sets."); } if (special != SpecialAttacks.None) { throw new Exception("RuneScape Wikia formula does not support item sets."); } if (effect != Effects.None) { throw new Exception("RuneScape Wikia does not support special effects."); } // Was previously: (strengthBase * (1 + potion + prayer.getBoost()... double baseStrength = (strengthCurrent * (1 + prayer.getBoost())) + fightStyle.getStrengthBoost(); double strengthMultiplier = (strengthBonus * 0.00175) + 0.1; double maxHit = (baseStrength * strengthMultiplier) + 1.05; return (int)Math.floor(maxHit); } // Criticisms: Outdated and same potion problem as Tip.It and RS Wikia, but seems very accurate and simple and is the most logical to use as a base for new formulas. // Corrected potion error here also. else if (website == Websites.OldRSCWebsites) { if (itemSet != ItemSets.None) { throw new Exception("Old RSC formula does not support item sets."); } if (special != SpecialAttacks.None) { throw new Exception("Old RSC formula does not support item sets."); } if (effect != Effects.None) { throw new Exception("Old RSC formula does not support special effects."); } // strengthCurrent was previously (strength * potion) return (int)Math.floor(((strengthCurrent + (strengthBase * (1 * prayer.getBoost())) + fightStyle.getStrengthBoost()) * ((strengthBonus * 0.00175) + 0.1)) + 1.05); } // This is our research formula, the one that is hoped to become 100% accurate else if (website == Websites.Experimental) { if (itemSet == ItemSets.Dharok) { strengthCurrent += (hpBase - hpCurrent); } double finalStrength = strengthCurrent + fightStyle.getStrengthBoost() + (strengthBase * prayer.getBoost()) + (strengthBase * effect.getBoost()) + (itemSet == ItemSets.Dharok ? (hpBase - hpCurrent) : 0); double strengthMultiplier = (strengthBonus * 0.00175) + 0.1; double maxHit = (int)Math.floor((finalStrength * strengthMultiplier) + 1.05); return (int)Math.floor(Math.floor(Math.floor(maxHit) * itemSet.getMultiplier()) * special.getMultiplier()); } else { throw new Exception("Parameter 'website' must be a valid constant in the 'Websites' enumeration."); } } Yes, that took a while to write. Now, for the programmers of Tip.It, or those who can understand Java easily enough to see it in mathematical terms, I'd like to point out a few things that most sites do incorrectly in their formulas. [*:33nsra4c]Potions are calculated incorrectly by every formula I've ever come across. RuneHQ's is the only one that even comes close at all. A lot of sites calculate potions as strengthLevel * 1.2 for a Super strength potion, etc. This is NOT correct. ALL a potion does it raise your strength level. Potions don't belong in the max hit formula AT ALL; they are to be pre-calculated and passed in AS the strength level itself, not added to it. For example, I'm 99 strength. Drinking a super strength potion gives me 19 strength levels putting me at level 118. I don't tell the formula to calculate 99 strength + a super strength potion - I tell it to calculate with 118 strength. [*:33nsra4c]Jagex differentiates between things that raise your strength and those that raise your max hit. For example, the description of Dharok's special attack is "The lower your Hitpoints, the higher your Strength". The higher your STRENGTH, not max hit. Therefore, in the formula, Dharok's effect should be calculated and added to strength level BEFORE other calculations. Same idea for things like Keris, which triples your MAX HIT, not your strength. That should be calculated near the END of the formula, after other calculations have already been made. [*:33nsra4c]Pay attention to the knowledge base. Tip.It's max hit calculator actually factors in the Saradomin and Zamorak godswords as having a 5% max hit bonus! This is wrong. ONLY the Armadyl (+25%) and Bandos (+10%) godsword special attacks affect max hit. RuneHQ also claims the name of Keris' special attack / effect is "Scabaras Slayer" and that the Berserker Necklace's effect is "Obsidian Synergy". Neither of these are found anywhere else, and especially not on the KB. [*:33nsra4c]All the special attacks raise MAX HIT, according to the KB - not strength. Let's remember to factor it in correctly. Also, don't take the special attack multipliers used in my class as correct. I used the same ones as Tip.It and RuneHQ - they are experimental only, just like the formula itself! And the questions we have to answer... [*:33nsra4c]Are prayers and other bonuses cumulative? E.G., do you calculate that 99 strength * 1.23 for piety is 121.77, then 121.77 * 1.15 for Black mask? Or are they based on your BASE level, e.g. 99 * (1 + 0.23 + 0.15)? I am considering removing the base strength and current strength parameters from the formula and just using one strength variable. It'd make more sense, because I think Jagex considers "level" in their code to be your actual level, and your XP to be your base level. [*:33nsra4c]Where did the numbers 0.00175, 0.1 and 1.05, from the RSC formula, originate? And should we use them? [*:33nsra4c]The max hit rounded down before Keris is calculated? Is it rounded down before the Void Knight set is counted and what order are these calculations done in? In our experimental formula I have: floor(floor(floor(maxHit) * itemSet.getMultiplier()) * special.getMultiplier()) at the moment. It makes sense to round down before raising your "max hit" by X percent. [*:33nsra4c]Does the Void Knight set stack with special attacks? Pretty sure it does... Please take a look at the full source code of this in the Downloads and Links section. Hopefully we can work together to come up with an extremely accurate formula! Posting screenshots and/or videos of max hits detailing all conditions at the time would be helpful to our project. If you have any thoughts or ideas about the math in these formulas, please post them! I'd love to hear it. I'm also thinking of adding a function to grab player stats from the highscores to my class but as I currently have other work, I probably won't have the time for a while. I actually had this post ready as a draft for a while now so I figured I'd post it. I hope you enjoy this topic and hopefully we'll come up with something good! ~~ Downloads and Links ~~ This is an open source project, as such, the source code is available for you to view and edit! Click here to download the source code of RuneScapeFormulas.java I also made a little max hit calculator with a GUI (I wrote it in about an hour last night and didn't really bother to follow good coding guidelines so excuse me if the code's a bit messy). It uses my RuneScapeFormulas class, so be sure to download RuneScapeFormulas.java above if you want to compile it! Click here to download the source code of MaxHitCalculator.java Click here to download a JAR file of my Max Hit Calculator Click here to download an EXE file of my Max Hit Calculator
  9. That girl's not cute. But Aya Kiguchi is! Mine. Touch and face the wrath of the KGB! :) And apparently this girl runs FreeBSD 6.2. Super cute AND knows something about computers beyond the mainstream Windows user? Can't ask for much more than that...
  10. Which means nothing for RuneScape due to the fact it's in a different "universe".
  11. I'm a member and I use them on Mining because I absolutely hate that skill even more than Runecrafting...
  12. Jard Y Dooku - The Dooku part is from Count Dooku in Star Wars, "Jard" is a common (at least seems to be) fanon first name for Dooku, and the Y is an initial which stands for "Yan", another fanon first name for Dooku which I put as his middle name. :) Yan is the name of my RuneScape cat, too! My original account was Jard Dooku, which was incorrectly banned the day after I got 85 Slayer, so I made Jard Y Dooku, and eventually preferred my new username over the old one. The old account's unlocked now, but Jard Y Dooku pwns it in every way possible now anyways. ;) http://hiscore.runescape.com/compare.ws ... jard+dooku Plus full emotes, music, quests, etc...
  13. Used to play over 10 hours a day, now that a friend and I are developing an MMORPG, usually 2-8 hours a week or so (which is pretty much clan meets, Tears of Guthix and doing new updates when they come out).
  14. I have Error! NullReferenceException: Object reference not set to an instance of an object black marks for the win. For the non-programmers: it's a funny way of saying I have no blackmarks.
  15. ROFLMAO Sigged. Nice. 5 comments and a siggification. Figured at least a few people would enjoy that. ;)
  16. Saturday, August 30, 2008 Added Elvarg (level-83) Added Tolna (level-46) Confusion beast (level-43) previously unknown! Fear reaper (level-42) previously unknown! Hopeless creature (level-40) previously unknown! Added Delrith (level-27) Added Mourner (level-13) NOTE: I had overlooked the existence of the monsters marked "previously unknown". There are monsters with different levels available for combat after the completion of A Soul's Bane - this caused me to forget the monsters in the quest! Ah well, they're on here now. And sadly (contrary to the above 3), the Anger monsters in the quest are not scannable, so... Added Angry giant rat (level-45) to the unscannable monsters list Added Angry goblin (level-45) to the unscannable monsters list Added Angry unicorn (level-45) to the unscannable monsters list Added Angry bear (level-40) to the unscannable monsters list
  17. In my opinion, the Armadyl godsword's special looks rather homosexual. Bandos is much better, it looks like you're slamming your opponent into the ground. Armadyl's has a queer jump and twirl reminiscent of a dancer, with a white trail of gas flying into the air (probably released from the user's ears).
  18. Sunday, August 24, 2008 Updated Barrelchest (level-190) to Barrelchest (level-170) as his level was changed in-game
  19. Please don't use JPEGs for RuneScape screenshots in the future. I've transparentized it if the crew still wants to use it anyways, though.
  20. My expectations are the completion of the Runecrafting skill (Soul altar) and the final part of one long-running quest series. HOPEFULLY THE ELF SERIES!

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.