SolaceCoding Posted June 3, 2014 Share Posted June 3, 2014 Is there a method for getting the percentage to the next level, I'm shit at math too so yeah, appreciate helperino Link to comment Share on other sites More sharing options...
Botre Posted June 3, 2014 Share Posted June 3, 2014 (edited) Edit: updated answer below Edited June 3, 2014 by Botrepreneur Link to comment Share on other sites More sharing options...
Apaec Posted June 3, 2014 Share Posted June 3, 2014 (edited) private static final int[] XP = { 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 }; XP List ^ public int getPercentUntilLevel(Skill skill) { int getStatic = this.getSkills().getExperience(skill) - XP[this.getSkills().getStatic(skill) - 1]; int getDynamic = XP[this.getSkills().getStatic(skill)] - XP[this.getSkills().getStatic(skill) - 1]; int percentage = getStatic * 100 / getDynamic; return percentage > 0 ? percentage : 0; } Calculation method ^ g.drawString("%tillstr " + getPercentUntilLevel(Skill.STRENGTH), 10, 20); Implementation ^ Enjoy Edited June 3, 2014 by Apaec Link to comment Share on other sites More sharing options...
SolaceCoding Posted June 3, 2014 Author Share Posted June 3, 2014 private static final int[] XP = { 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 }; XP List ^ public int getPercentUntilLevel(Skill skill) { int getStatic = this.getSkills().getExperience(skill) - XP[this.getSkills().getStatic(skill) - 1]; int getDynamic = XP[this.getSkills().getStatic(skill)] - XP[this.getSkills().getStatic(skill) - 1]; int percentage = getStatic * 100 / getDynamic; return percentage > 0 ? percentage : 0; } Calculation method ^ g.drawString("%tillstr " + getPercentUntilLevel(Skill.STRENGTH), 10, 20); Implementation ^ Enjoy public class XpDistance { private final Script script; @SuppressWarnings("unused") private final Bot b; public XpDistance(final Script script, final Bot b) { this.script = script; this.b = b; } private final int[] XP = {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}; public int getXpUntilLevel(Skill skill, int level) { int currentXp = this.script.skills.getExperience(skill); int xpUntilLevel = this.XP[level-1] - currentXp; return xpUntilLevel > 0 ? xpUntilLevel : 0; } public int getXpUntilNextLevel(Skill skill) { int currentXp = this.script.skills.getExperience(skill); int currentLevel = this.script.skills.getStatic(skill); return this.XP[currentLevel] - currentXp; } public int getXpPastCurrentLevel(Skill skill) { int currentXp = this.script.skills.getExperience(skill); int currentLevel = this.script.skills.getStatic(skill); return currentXp - this.XP[currentLevel-1]; } } Edit: just noted "percentage" Depends, Percentage until next level from 0 xp? or Percentage until level from your current level's min XP? Thanks guys, Appreciate the help. 1 Link to comment Share on other sites More sharing options...
Botre Posted June 3, 2014 Share Posted June 3, 2014 (edited) public class XpDistance { private final Script script; @SuppressWarnings("unused") private final Bot b; public XpDistance(final Script script, final Bot b) { this.script = script; this.b = b; } private final int[] XP = { 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 }; public int getXpUntilLevel(Skill skill, int level) { int x = this.XP[level - 1] - this.script.skills.getExperience(skill); return x > 0 ? x : 0; } public int getXpUntilNextLevel(Skill skill) { int x = this.XP[this.script.skills.getStatic(skill)] - this.script.skills.getExperience(skill); return x > 0 ? x : 0; } public int getXpPastCurrentLevel(Skill skill) { int x = this.script.skills.getExperience(skill) - this.XP[this.script.skills.getStatic(skill) - 1]; return x > 0 ? x : 0; } public int getPercentageUntilNextLevelFromZero(Skill skill) { int p = this.script.skills.getExperience(skill) * 100 / this.XP[this.script.skills.getStatic(skill)]; return p > 0 ? p : 0; } public int getPercentageUntilNextLevelFromCurrentLevel(Skill skill) { int p = this.getXpUntilNextLevel(skill) * 100 / (this.XP[this.script.skills.getStatic(skill)] - this.XP[this.script.skills .getStatic(skill) - 1]); return p > 0 ? p : 0; } } Sorry my previous answer didn't really answer your question, this should do it^ Update 2: added some ternary operators in the returns. Edited June 3, 2014 by Botrepreneur 1 Link to comment Share on other sites More sharing options...