Leaderboard
Popular Content
Showing content with the highest reputation on 08/05/15 in all areas
- 
	5 points
- 
	3 points
- 
	2 points
- 
	I mean.... You were a level 3 mining clay in free to play...... what were you expecting lol.2 points
- 
	Its just your luck. Ive ran 9 accounts now for about 1 week, 0 bans, diff IP's. Making 400k~ an hour. 12 hours a day. When weath was on holiday, i ran 20 accounts for all 14 days. Suicide. Made some unreal profit2 points
- 
	Java -jar osbot.jar is the command. Be sure the jar file is renamed osbot.jar and 8n the root directory.2 points
- 
	2 points
- 
	Finally; my quest cape! For those of you who would like to know how I achieved the requirements for this cape, the account is 100% handmade by myself so there was no botting involved. Current combat level = 99, total level = 1442 And finally, my achievement cape:1 point
- 
	Yeah show off some cool features, not just tea thieving ;)1 point
- 
	1. Should i start small, make a few Mill, then expand - Depends how it goes 2. Should i just use 1 script or use a few? - Depends on method, multiple is good. 3. Should i get a partner or ride Solo? - Partner is always easier 4. Is 200k~ Per hour decent per account? - Pretty good 5. How should i go about it to ensure my accs dont get banned immediately. - Do checks on ips ect.. 6. Best company to use for a VPS. - 7. Best company to get Un-flagged Proxies from? -1 point
- 
	Great script, I had no issues at all! Here is a 3 hr proggy: http://gyazo.com/2e613e140a6ec72f9ed68f68a98688b61 point
- 
	1 point
- 
	1 point
- 
	also doens't re-enter the house after pause. I am using stealth injection mode, varrock tele tabs with demon butler. The problem reoccurs everytime the bot logs out, it wont re enter house and the butler is wandering around again when you re enter the house. if you fix this, i think its a flawless script and definitly worth its money.1 point
- 
	1 point
- 
	1 point
- 
	my pure is 75 att 95 str 80 mage was banned this morning using perfect magic all stats were botted was expecting a ban sicne i suicided 1-90 str and all my mage and attack levels * for all who wonder how to get this far with an account u MUST have mirror mode an have the account created for 2 weeks on a clean ip. ive been banned an trial and error methods so much but no botted wednesday and thursday an suiciding every day besides those days has worked wonders * for all who are wondering my account was only given a 2 day ban so i have decided to take my stats an run and just play legit on this account from now on.1 point
- 
	1 point
- 
	1 point
- 
	wew nice aha nice proggy i dont think ive lasted that long before (aye up). everyone getting 99's and i aint D: not fair lmao GLGL1 point
- 
	1 point
- 
	You can get 99 with no loss, even make 100gp per potion last I checked. However you have to make (unf) then add ingredients. Do your research :P this method you need 30M+ to avoid stop/starting. If you don't want xp, you can just make unf potions for $$$ I'm pretty sure it's upward of 200Khr. But no xp.1 point
- 
	I took about a 6 month break. Came back and was using a combination of your crawler bot and your experiment bot.1 point
- 
	What does this have to do with this thread?I suggest creating your own thread for this, or better yet, read the tutorials (I have a tutorial on creating a GUI for settings)1 point
- 
	1 point
- 
	1 point
- 
	1 point
- 
	On my road to 99 again all the way from 1 this time, let's see if I can do it again. ^_^ Progress so far -1 point
- 
	1 point
- 
	Been looking for one of these. Need this script just for the botting nostalgia haha1 point
- 
	Get ready for a long post, buddy. It depends. The easiest way to handle this would be to hardcode the settings into the DefaultAPI and pass that around as you've mentioned, more preferably creating a Settings type to decompose the DefaultAPI: class MySettings { private int logId; public int getLogId() { return logId; } public void setLogId(int id) { logId = id; } } class DefaultAPI extends API { private MySettings settings; public void setSettings(MySettings settings) { this.settings = settings; } public MySettings settings() { return settings; } } You could then create an instance of MySettings whenever the user clicks the "start" button on your GUI, passing it to the API. The code above does not account for (im)mutability; it does what you mention, but it's decomposed for easy maintenence. It allows you to adjust the settings at just about anytime, and you can modify the settings in different ways. So now comes the encapsulation, which strongly depends on how you want this to function. If the settings are handled at the start of your script, and should not be modified afterwards First, remove the ability to modify the settings property in DefaultAPI. You can do this by creating the API when you create the user clicks the "start" button to start the script. The idea is that the GUI handles the "arguments" of the script (similar to how the VM has VM arguments and command-line programs have command-line arguments): class GUI { private Object lock = new Object(); //used for waiting public DefaultAPI create() { GUI gui = new GUI(); gui.setVisible(true); //halt thread until user clicks "start" button try { synchronized(lock) { lock.wait(); } } catch(InterruptedException e) { //... } MySettings settings = ...; DefaultAPI api = new DefaultAPI(settings); return api; } private ActionListener listener = event -> { synchronized(lock) { lock.notify(); } }; } class DefaultAPI { private MySettings settings; public DefaultAPI(MySettings settings) { this.settings = settings; } public MySettings settings() { return settings; } //can no longer switch instance of Settings } class MyScript extends Script { void onStart() { DefaultAPI api = GUI.create(); //pass api to nodes } } So once you've passed the API the settings, it can not be modified by passing the API a new MySettings instance. Although, nodes can still adjust the settings through the setter methods of MySettings. For situations like this, where we want to be able to optionally set values on creation, but prevent them from being modified after creation, we would use the builder pattern: class MySettings { private int logId; private MySettings(Builder builder) { logId = builder.logId; } public int getLogId() { return logId; } //no mutators; cannot adjust settings after creating public static final class Builder { private int logId; public Builder setLogId(int id) { logId = id; return this; } //other builder methods go here... public MySettings build() { return new MySettings(this); } } } When you create the API in GUI.create(), simply use the builder: MySettings settings = new MySettings.Builder() .setLogId(/* grab from component */) .build(); DefaultAPI api = new DefaultAPI(settings); In this situation, a builder is an overkill; you could simply pass the logId to the constructor. But as the amount of settings options increase, so will the amount of constructor arguments. If you have 10 settings, all which are of type int, it could easily confuse the developer, which is why a builder is preferred. Not sure why theres no support for this in the API already. If I were you guys, I'd request more support for things like this (GUI, script settings). Just to clear the air, it is prefered to use static getter/setters rather than accessing a static field directly. You can read more on my "Use Getter Methods, Not Public Fields" thread - the idea is to hide implementation details, allowing you to change how you store a property without breaking code that relies on it. As for using static getters/setters for this, it would make it a LOT easier. Although, when it comes to unit testing, difficulties arise (hard to isolate code that relies on global state). It could also make graphing your code a mess, with edges that fly all over the place. It's best to keep things as encapsulated as possible. Rather than accessing something globally (accessing a dependency globally), pass in the dependency through a method/constructor. This is called dependency injection, and makes code crazy easy to unit test. Don't do class MyClass { public void doSomething() { int answer = OtherClass.number + 5; } } Do class MyClass { public void doSomething(int number) { int answer = number + 5; } } Passing in the number when you call the method. Sorry for the long post, I like to be fluent.1 point
- 
	There isn't anything wrong with the script. blast furnace has a pretty high bann rate in general.. This due how easy it is to make a fresh account and the profit you can make with only 30 smithing. I know a lot of people suicide an 1 fresh account for +- 48 hours then collect all gains for profits Khaleesi1 point
- 
	1 point
- 
	I've noticed recently that localWalker#walk won't actually always take you to the position that you want to walk to, but rather will go to one in the nearby area. This can cause bugs, for example if you define an area that is the inside of a certain building, and then you call localWalker#walk and pass it this area, then you might end up walking to one of the squares outside of the building because of this inaccuracy. It occurs because the default walking event has a distance threshold of 2, so any square within 2 squares of the one you pass to the function is considered a valid walk target. If you need walking that is accurate to the square, then you can change this threshold to 0. Position targetPosition = new Position(3400,3200,0); WalkingEvent w = new WalkingEvent(targetPosition); w.setMiniMapDistanceThreshold(0); w.setMinDistanceThreshold(0); script.execute(w); This will always walk to the exact square you give. By using custom events like this, you can also control whether the event blocks. So if you need asynchronous walking (which can be useful) then you can do this before you execute it: w.setAsync();1 point
 
		 
       
       
       
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	