Everything posted by Botre
-
Becoming a Script Writer
Some nice progress my friend! Good luck & have fun
-
Botre Pest Control: Prioritization | Prayer | Special Attacks | Autocasting
- Botre Pest Control: Prioritization | Prayer | Special Attacks | Autocasting
Botre Pest Control Features: Implemented: Auto-detect best settings. Advanced settings customization options. Smart target prioritization. All boats. Classic potions. Powerups. Classic praying. Special attacks. Autocasting. Gate management. In development: Combat prayer flicking. Banking. Blowpipe recharging. Ammo management. Barricade repairing.- Botre NMZ: Overloads | Absorptions | Prayer | Special Attacks | Powerups
Botre NMZ Features: Implemented: Auto-detect best settings. Advanced settings customization options. Overload potions. Absorption potions. Classic potions. Powerups. Classic praying. Rapid health prayer flicking. Dwarven rock cake. Special attacks. Extensive customization options for Rumble mode. In development: Combat prayer flicking. Banking. Dream coffer management. Dream re-entry. Point spending. Blowpipe recharging. Ammo management.- FeelsBadMan
- Premium Script Giveaway!
holy fuckerino this thread though- Premium Script Giveaway!
Hello world- [Snippet] Event Decorators: time out & break condition decorations
Example: // Event will break after 10 seconds. execute(EventDecorator.withTimeout(new WalkingEvent(leArea), 10)); // Event will break when player is animating (a bit random but ok..) execute(EventDecorator.withBreakCondition(new InteractionEvent(goblin, "Attack"), () -> myPlayer().isAnimating())); Code: package org.botre.osbot.event; import java.util.function.BooleanSupplier; import org.dreamstream.moka.main.time.FetchingTimer; import org.dreamstream.moka.main.time.Timer; import org.osbot.rs07.event.Event; public final class EventDecorator { private EventDecorator() { } public static final Event withBreakCondition(Event event, BooleanSupplier breakCondition) { return new Event() { @Override public void onStart() { try { super.onStart(); } catch (InterruptedException e) { e.printStackTrace(); } event.setAsync(); execute(event); } @Override public int execute() throws InterruptedException { boolean failed = breakCondition.getAsBoolean(); if(failed) { event.setFailed(); setFailed(); } return 100; } @Override public boolean hasFailed() { boolean failed = breakCondition.getAsBoolean(); if(failed) { event.setFailed(); setFailed(); } return failed || event.hasFailed(); } @Override public boolean hasFinished() { return event.hasFinished(); } }; } public static final Event withTimeout(Event event, int timeoutSeconds) throws IllegalArgumentException { if(timeoutSeconds < 0) throw new IllegalArgumentException(); Timer timer = FetchingTimer.milliseconds(); return withBreakCondition(event, () -> { return timer.getElapsedSeconds() > timeoutSeconds; }); } }- [300+fb]Dieze's Account Shop! - Out of stock!
Feel free to PM me the prices for each of the current accounts- [Snippet] Swing Carousel Panel
Example: CarouselPanel carousel = new CarouselPanel(); carousel.addComponent(new JLabel(new ImageIcon(ImageIO.read(new URL("http://i.imgur.com/0yd3HFb.png"))))); carousel.addComponent(new JLabel(new ImageIcon(ImageIO.read(new URL("http://i.imgur.com/2YDrKSy.png"))))); carousel.addComponent(new JLabel(new ImageIcon(ImageIO.read(new URL("http://i.imgur.com/e9RmCeC.png"))))); frame.add(carousel, BorderLayout.CENTER); Snippet: package org.botre.swing.custom; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Component; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.Timer; public class CarouselPanel extends JPanel { private static final long serialVersionUID = 1L; private int count = 0; private int index = 0; private JPanel content = new JPanel(new CardLayout()); private JButton navLeft, navRight; private Timer timer = new Timer(1000, null); public CarouselPanel(int scrollseconds) { setLayout(new BorderLayout()); navLeft = new JButton("<"); navRight = new JButton(">"); navLeft.addActionListener(l -> { CardLayout cl = (CardLayout)(content.getLayout()); index = index - 1; index = index >= 0 ? index : count - 1; cl.show(content, Integer.toString(index)); timer.restart(); }); navRight.addActionListener(l -> { CardLayout cl = (CardLayout)(content.getLayout()); index = index + 1; index = index < count ? index : 0; cl.show(content, Integer.toString(index)); timer.restart(); }); add(navLeft, BorderLayout.WEST); add(navRight, BorderLayout.EAST); add(content, BorderLayout.CENTER); navLeft.setVisible(count > 1); navRight.setVisible(count > 1); if(scrollseconds > 0) { timer = new Timer(scrollseconds * 1000, null); timer.addActionListener(l -> { navRight.doClick(); }); timer.setRepeats(true); timer.start(); } } public CarouselPanel() { this(-1); } public void addComponent(Component component) { content.add(component, Integer.toString(count)); count++; navLeft.setVisible(count > 1); navRight.setVisible(count > 1); } }- Looking for several accounts:
Couldn't care less about the defence level Send me a PM with more details and prices- Looking for several accounts:
Looking for the following features. If you have an account for sale with all or any or just one of them, feel free to contact me with your price The more features your account supplies the more I'd be willing to pay ofcourse. Able to self-host NMZ Unlocked rock cake from NMZ 40+ ranged 40+ magic 130+ combined attack & strength Access to Experiments. Access to Yaks. Unlocked the herblore skill. House with lectern and butler. 0 offences only. Cheers!- autoclicking? how to? bans?
1. Depends, 2-day are more common I think but I've seen Macro Majors for alching. 2. The odds of you getting reported would be decreased but you're safe nowhere :p. 3. There's no safety threshold, risk increases as you go along :p- [Snippet] CSleep, Syntactic Sugar for ConditionalSleep
Quick snippet that allows you to pass lambda expressions in order to evaluate ConditionalSleep. Syntactic sugar: CSleep.create(2400, 200, () -> !myPlayer().getPosition().equals(cache)).sleep(); vs. new ConditionalSleep(2400,200) {@Override public boolean condition() throws InterruptedException { return !myPlayer().getPosition().equals(cache); }}.sleep(); Snippet: package org.botre; import java.util.function.Function; import org.osbot.rs07.utility.ConditionalSleep; public final class CSleep { private CSleep() { } public static ConditionalSleep create(int maximumMs, int deviationMs, BooleanSupplier condition) { return new ConditionalSleep(maximumMs, deviationMs) { @Override public boolean condition() throws InterruptedException { return condition.getAsBoolean(); } }; } }- [Snippet] Ore & Smithing Bar data
Needed this data for the Superheat component of my Magic script, figured maybe someone else could benefit from it too :p The data makes writing a smelter a matter of minutes though:- [Snippet] Ore & Smithing Bar data
Example: public static void main(String[] args) { Map<Ore, Integer> o = SmithingBar.ADAMANTITE.getOres(); System.out.println("In order to make an adamantite bar I need: "); for (Ore ore : o.keySet()) { System.out.println("\t" + o.get(ore) + " " + ore); } System.out.println("... and " +SmithingBar.ADAMANTITE.getRequiredSmithingLevel() + " smithing."); } Ore enum: public enum Ore { COPPER("Copper ore"), TIN("Tin ore"), BLURITE("Blurite ore"), IRON("Iron ore"), SILVER("Silver ore"), COAL("Coal ore"), GOLD("Gold ore"), MITHRIL("Mithril ore"), ADAMANTITE("Adamantite ore"), RUNITE("Runite ore"); private String name; private Ore(String name) { this.name = name; } public String getName() { return name; } @Override public String toString() { return getName(); } } SmithingBar enum: package org.botre.data; import java.util.Collections; import java.util.EnumMap; import java.util.Map; public enum SmithingBar { BRONZE("Bronze bar", 1), BLURITE("Blurite bar", 8), IRON("Iron bar", 15), SILVER("Silver bar", 20), STEEL("Steel bar", 30), GOLD("Gold bar", 40), MITHRIL("Mithril bar", 50), ADAMANTITE("Adamantite bar", 70), RUNITE("Runite bar", 85); private static final Map<SmithingBar, Map<Ore, Integer>> ORE_RECIPES = Collections.unmodifiableMap(initOres()); private String name; private int requiredSmithingLevel; private SmithingBar(String name, int requiredSmithingLevel) { this.name = name; } public String getName() { return name; } public int getRequiredSmithingLevel() { return requiredSmithingLevel; } public Map<Ore, Integer> getOres() { return ORE_RECIPES.get(this); } @Override public String toString() { return getName(); } private static Map<SmithingBar, Map<Ore, Integer>> initOres() { Map<SmithingBar, Map<Ore, Integer>> map = new EnumMap<>(SmithingBar.class); for (SmithingBar bar : values()) { Map<Ore, Integer> ores = new EnumMap<>(Ore.class); switch (bar) { case BRONZE: ores.put(Ore.COPPER, 1); ores.put(Ore.TIN, 1); break; case BLURITE: ores.put(Ore.BLURITE, 1); break; case IRON: ores.put(Ore.IRON, 1); break; case SILVER: ores.put(Ore.SILVER, 1); break; case STEEL: ores.put(Ore.IRON, 1); ores.put(Ore.COAL, 2); break; case GOLD: ores.put(Ore.GOLD, 1); break; case MITHRIL: ores.put(Ore.MITHRIL, 1); ores.put(Ore.COAL, 4); break; case ADAMANTITE: ores.put(Ore.ADAMANTITE, 1); ores.put(Ore.COAL, 6); break; case RUNITE: ores.put(Ore.RUNITE, 1); ores.put(Ore.COAL, 8); break; } map.put(bar, ores); } return map; } }- how to get rid of premium scripts?
You brought the whole entitlement issue up, though it seems you don't quite understand what it actually means. @OP: Contact the scripter to fix your script, ask maldesto to remove the scripts from your account, or just learn to live with the few extra script icons- how to get rid of premium scripts?
That's a contract between OSBot and the scripter, not the scripter and its customers. All it does is entitle OSBot to punish a scripter should they refuse to fix their scripts. If the scripter refuses the punishment you don't get your script, so there's zero guarantee hence the absence of any sort of "entitlement". As a user you are, as per the TOS, not entitled to anything. However, users can ofcourse contact the administrator in order to: a: notify the administrator of the broken product so they can pressure the script writer if need be. b: give a refund, entirely at their discretion. Maldesto tends to be very reasonable about these cases. But seems like we're going on a tangent here :p- how to get rid of premium scripts?
http://osbot.org/tos.html We hold the right at any time, and without prior notice, to cease to supply any of our products or services provided by us and we will be in no way liable to you in any way if we decide to stop such supply. We hold the right at any time, and without prior notice, to stop any access to any of the products and services provided by us and used by you... More like 0% Do your research.- Favourite Actors/ Actresses?
I love me some Daniel Day Lewis and Dicaprio and the other obvious great ones. My favorite people on TV rn: Drama: Bobby Cannavale Comedy: Charlie Day- Looking for END GAME Main - untradeables/quests required
Not sure if you're allowed to post here considering your postcount. (your price is a bit on the low side for what you're buying)- 666 hail satan
- Challenge Accepted
What becomes a meme, becomes unforgettable. #AcerdIncest2016- Why are Blu-ray for Anime so fucking expensive
The reason they are so expensive is because that's the price the majority of people who actually buy anime DVDs (hardcore fans, collectors, etc...) are willing to pay for them. Since illegal downloading became so mainstream, the '18 - 29 year old without money demographic' pretty much kicked itself out of the traditional DVD target market :p Yeah some people will x) TV / streaming licensing & milking collectors / hardcore fans = their entire business model :p Quick conclusion: Physical media in entertainment has become more of a vanity item than an actual way to purchase the content they store, it's the reason why cassette and vinyl sales outperform cd's in physical music sales and why expensive "ultimate collector" edition dvds are so prevalent. Since the internet made media content virtually worthless, content producers had to adapt, some of them struggle with it, others do a brilliant job at it.- Botre AIO Magic Preview (Free Beta SoonTM)
1997 bro - Botre Pest Control: Prioritization | Prayer | Special Attacks | Autocasting