Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

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.

Wizard

Members
  • Joined

  • Last visited

Everything posted by Wizard

  1. Text : Peter Size : the same in the example Colour: your decision Anytinh else? : Do what you think is the best!
  2. Holy shit.. cant wait to use this in my slayer script!
  3. Wrong, i wrote the whole tracker, he just did the fading part(I suck at math)
  4. So, as there is no more team NovumNation anymore, I decided to release this skill tracker that i made for the team' API back then. Features: -Neat -Tracks all the skills -You can specify which skills to fade and which not Im not going to explain how to add it, its quite simple for you to figure how to add it if you have a basic understanding of Java. The code was written to work with a different framework, so I rewrote it fast, thus you may find some errors. SkillWrapper.Java public class SkillWrapper { private int startXp; private int currentXp; private int startLevel; private int prevGainedXp; private long lastGainedXP; public boolean keep = false; public SkillWrapper(int startXp, int currentXp, int startLevel) { this.startXp = startXp; this.currentXp = currentXp; this.startLevel = startLevel; } public int getSecTNL(int xpTNL) { final int gains = getHourlyGains(); return (gains == 0) ? 0 : (int) ((3600L * xpTNL) / (long) gains); } public int getHourlyGains() { long time = getRuntime(NNScript.startTime); return (time == 0L) ? 0 : (int) ((3600000D * (currentXp - startXp)) / time); } public int getGainedXp() { return currentXp - startXp; } public long getRuntime(long startTime) { return (System.currentTimeMillis() - startTime); } public void setCurrentXp(int currentXp) { this.currentXp = currentXp; if (currentXp != startXp && getGainedXp() > prevGainedXp) { lastGainedXP = System.currentTimeMillis(); prevGainedXp = getGainedXp(); } } public int getStartXp() { return startXp; } public int getCurrentXp() { return currentXp; } public int getStartLevel() { return startLevel; } public long getLastGainedXP() { return lastGainedXP; } public void reset() { this.startXp = 0; this.currentXp = 0; } public static String SecToHMS(int sec) { int min = sec / 60; sec %= 60; int hour = min / 60; min %= 60; return "" + hour + ":" + min + ":" + sec; } } SkillTracker.java public class SkillTracker { private Script s; private Map<Skill, SkillWrapper> skills; public SkillTracker(Script s, Skill... skills) { this.s = s; this.skills = new HashMap<Skill, SkillWrapper>(); for (Skill s1 : Skill.values()) { add(s1); } for(Skill s1 : skills) { if(this.skills.containsKey(s1)) { getWrapper(s1).keep = true; } } } public void updateAll() { for (Map.Entry<Skill, SkillWrapper> m : skills.entrySet()) { update(m.getKey()); } } public void update(Skill skill) { if (skills.containsKey(skill)) { getWrapper(skill).setCurrentXp(s.client.getSkills().getExperience(skill)); } } public void add(Skill skill) { if (!skills.containsKey(skill)) { skills.put(skill, new SkillWrapper(s.client.getSkills().getExperience(skill), 0, s.client.getSkills().getLevel(skill))); update(skill); } } public void remove(Skill skill) { if (skills.containsKey(skill)) { getWrapper(skill).reset(); skills.remove(skill); } } public SkillWrapper getWrapper(Skill skill) { return skills.get(skill); } public Map<Skill, SkillWrapper> getSkills() { return skills; } } SkillTrackerPaint.java public class SkillTrackerPaint { private Script s; private SkillTracker tracker; public static final int[] XP_TABLE = {0, 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 }; private Color MAIN_BOX; private Color MAIN_REFLECTION; private Color HOVER_RECT; private final Font ARIAL_9 = new Font("Arial", 0, 9); private final Font ARIAL_12 = new Font("Arial", 0, 12); private Color MAIN_COLOR = null; private Color MAIN_TRIM = null; private Color FONT_COLOR; private Rectangle hover; public SkillTrackerPaint(Script s, Skill... skills) { this.s = s; tracker = new SkillTracker(this.s, skills); } public void paint(Graphics g) { if (!tracker.getSkills().isEmpty()) { tracker.updateAll(); int y = 3; for (Map.Entry<Skill, SkillWrapper> entry : tracker.getSkills().entrySet()) { long lastGainedXP = entry.getValue().getLastGainedXP(); int alpha = 255; if (System.currentTimeMillis() - lastGainedXP < 30000 || entry.getValue().keep) { if (System.currentTimeMillis() - lastGainedXP >= 29000 && !entry.getValue().keep) { long timeLeft = 30000 - (System.currentTimeMillis() - lastGainedXP); //0-5000 alpha = (int) (255D * (timeLeft / 1000D)); } drawBar(g, y, entry.getKey(), alpha); hover = new Rectangle(345, y, 166, 20); if (NNScript.mousePosition != null) if (hover.contains(NNScript.mousePosition)) drawHover(g, y, entry.getKey()); y += 21; } } } } private void drawBar(Graphics g1, int y, Skill s, int alpha) { Graphics2D g = (Graphics2D) g1; g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Color mCol = new Color(Colors.forSkill(s).getColor()); MAIN_COLOR = new Color(mCol.getRed(), mCol.getGreen(), mCol.getBlue(), alpha); Color tCol = new Color(Colors.forSkill(s).getTrim()); MAIN_TRIM = new Color(tCol.getRed(), tCol.getGreen(), tCol.getBlue(), alpha); MAIN_BOX = new Color(0, 0, 0, alpha - 55 > 0 ? alpha - 55 : 0); MAIN_REFLECTION = new Color(255, 255, 255, alpha - 205 > 0 ? alpha - 205 : 0); HOVER_RECT = new Color(0, 0, 0, alpha - 104 > 0 ? alpha - 104 : 0); FONT_COLOR = new Color(255, 255, 255, alpha); g.setColor(MAIN_BOX); g.fillRect(4 + 346, y, 166, 20); g.setColor(MAIN_COLOR); g.fillRect(4 + 429, y + 2, 80, 15); g.setColor(MAIN_TRIM); g.setStroke(new BasicStroke(2)); g.drawRect(4 + 429, y + 2, 80, 15); g.fillRect(4 + 429, y + 2, (int) (getPercentToNextLevel(s) * 0.81), 14); g.drawRect(4 + 429, y + 2, (int) (getPercentToNextLevel(s) * 0.81), 14); g.setColor(MAIN_REFLECTION); g.fillRect(4 + 429, y + 2, 80, 9); g.setFont(ARIAL_12); g.setColor(FONT_COLOR); g.drawString(s.toString(), 4 + 348, y + 14); g.setFont(ARIAL_9); g.drawString(getPercentToNextLevel(s) + "% to level", 4 + 442, y + 13); } private void drawHover(Graphics g1, int y, Skill s) { Graphics2D g = (Graphics2D) g1; g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setStroke(new BasicStroke(2)); g.setColor(MAIN_TRIM); g.drawPolygon(new Polygon(new int[]{335 + 185, 335 + 180, 335 + 185}, new int[]{y + 2, y + 10, y + 20}, 3)); g.setColor(HOVER_RECT); g.fill(new Polygon(new int[]{335 + 185, 335 + 180, 335 + 185}, new int[]{y + 2, y + 10, y + 20}, 3)); if (y >= (505 - 90)) y = 505 - 90; g.setColor(MAIN_TRIM); g.drawRect(335 + 185, y, 131, 85); g.setColor(MAIN_COLOR); g.fillRect(335 + 185, y, 131, 85); g.setColor(FONT_COLOR); g.setFont(ARIAL_9); g.drawString("Current level: " + this.s.client.getSkills().getLevel(s), 335 + 189, y + 14); g.drawString("Gained levels: " + (this.s.client.getSkills().getLevel(s) - tracker.getWrapper(s).getStartLevel()), 335 + 189, y + 25); g.drawString("Current xp: " + this.s.client.getSkills().getExperience(s), 335 + 189, y + 36); g.drawString("Gained xp: " + tracker.getWrapper(s).getGainedXp(), 335 + 189, y + 47); g.drawString("XP TNL: " + getExpToNextLevel(s), 335 + 189, y + 58); g.drawString("XP/Hour: " + tracker.getWrapper(s).getHourlyGains(), 335 + 189, y + 69); g.drawString("Time TNL: " + SkillWrapper.SecToHMS(tracker.getWrapper(s).getSecTNL(getExpToNextLevel(s))), 335 + 189, y + 80); } public int getPercentToNextLevel(final Skill skill) { final int lvl = s.client.getSkills().getLevel(skill); if (lvl == 99) { return 0; } final int xpTotal = XP_TABLE[lvl + 1] - XP_TABLE[lvl]; if (xpTotal == 0) { return 0; } final int xpDone = s.client.getSkills().getExperience(skill) - XP_TABLE[lvl]; return 100 * xpDone / xpTotal; } public int getExpToNextLevel(final Skill skill) { final int lvl = s.client.getSkills().getLevel(skill); if (lvl == 99) { return 0; } return XP_TABLE[lvl + 1] - s.client.getSkills().getExperience(skill); } enum Colors { AGILITY(Skill.AGILITY, 0x1f215b, 0x6b1f1a), ATTACK(Skill.ATTACK, 0x6b1f1a, 0x98931b), CONSTRUCTION(Skill.CONSTRUCTION, 0x8b816f, 0x945819), COOKING(Skill.COOKING, 0x451f44, 0x5c1406), CRAFTING(Skill.CRAFTING, 0x6d533c, 0x6d533c), DEFENCE(Skill.DEFENCE, 0x6375b0, 0xc1b9b8), FARMING(Skill.FARMING, 0x214b23, 0x6c8649), FIREMAKING(Skill.FIREMAKING, 0xa24508, 0xb29a06), FISHING(Skill.FISHING, 0x687a88, 0xa69718), FLETCHING(Skill.FLETCHING, 0x02272f, 0xa46108), HERBLORE(Skill.HERBLORE, 0x085a0d, 0x989428), HITPOINTS(Skill.HITPOINTS, 0xb2b0a6, 0xa12111), HUNTER(Skill.HUNTER, 0x454135, 0x150f0f), MAGIC(Skill.MAGIC, 0x6a6964, 0x191f6d), MINING(Skill.MINING, 0x322f1e, 0x548faf), PRAYER(Skill.PRAYER, 0xbdb3b3, 0xbe8f18), RANGED(Skill.RANGED, 0x4d6317, 0x7c4728), RUNECRAFTING(Skill.RUNECRAFTING, 0xa2a196, 0xcdb317), SLAYER(Skill.SLAYER, 0x1f1c1c, 0x6f170d), SMITHING(Skill.SMITHING, 0x494939, 0xcdb317), STRENGTH(Skill.STRENGTH, 0x086844, 0xa12111), THIEVING(Skill.THIEVING, 0x6a3b5a, 0x383333), WOORDCUTTING(Skill.WOODCUTTING, 0x826a3b, 0x2d6541); private Colors(Skill skill, int color, int trim) { this.skill = skill; this.color = color; this.trim = trim; } public static Colors forSkill(Skill skill) { for (Colors c : Colors.values()) { if (c.getSkill() == skill) return c; } return null; } int getTrim() { return trim; } Skill getSkill() { return skill; } int getColor() { return color; } private Skill skill; private int color; private int trim; } } How to use: In your main class, add: private Skill[] skills = null; private SkillTrackerPaint stPaint = null; public static long startTime; public static Point mousePosition; onStart method, add: skills = {Skills.ATTACK.. etc} //to make it always display the progress of those skills and not fade after 20 secs if (skills != null && skills.length > 0) stPaint = new SkillTrackerPaint(this, skills); onPaint method, add: if (stPaint != null) { stPaint.paint(g); } mouseMoved method, add: mousePosition = a.getPoint(); Final results(skills.add(Skills.values()) Credits: Gandalf Cory
  5. Next Super? Next Global? Next Chatbox? Gandalf(me)
  6. I like the idea to have another script of this type, good luck mate.
  7. Nope, Java scripts which are written to do a certain job is more efficient than SSF.
  8. Why you dont deserve moderator: making a thread like this!
  9. If you know how to code, then take a look at the API and get to know it The Main class of your script must extends the class Script which contains the main methods of every basic script onStart onLoop onEnd onPaint
  10. Wizard replied to lolmanden's topic in Archive
    Not impressive.. yet it looks sexy. I still prefer Android ..
  11. Meh, I think ill just wait for tomorrow..
  12. Wizard replied to GTi's topic in Archive
    Galaxy s4
  13. Just one note: randomize your path, generate a new path every time you walk (add random to the next position) that way you can reduce the chance of getting banned
  14. Name/Words: Gandalf, (sub text) -> The only wizard Colour scheme: your choice Design idea: Your choice Any specific images you want to use (link them): Any picture for gandalf that you find good Siggy/Ava/bg: SIG Will you leave profile fb?:Yes
  15. I'll bring the hobbits, Welcome!
  16. Step one: Download LoL Step two: If you downloaded it successfully, then delete system32 folder which can be found "C:/WINDOWS/" because you play LoL Step three: re Install your operating system and never thing about playing that game Thank, hope it helps
  17. Bank
  18. God quit asking for ranks, why you always ask.. If an admin see that you deserves it he will give you it.
  19. Make constructor instead of making every method static :p
  20. I dont really mind, because the only noobs look at these things
  21. Oh hell no, Smart deserve more than that. Here is my version
  22. Meh another useless thread,,

Account

Navigation

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.