Everything posted by Butters
-
Premium Scripts?
Probably cause he's talking about SDN scripts and not private scripts. And as you mentioned, doing scripts for SDN is a great way to "increase your value". Though honestly, even if you "stamp" your private scripts from templates, anything a lil more advanced and not costing at least a 100$ is a joke. Though, as you mentioned, until you enjoy it - no biggie. For example people asked me to make private scripts with muling and what not for 10-20m, well sorry for being greedy then
-
Drawing tiles around entities
Thanks, had a hunch it won't be easy. Tried getSizeX() and getSizeY() (both deprecated) on npcs earlier but they returned wrong values.
-
Premium Scripts?
@The Undefeated @HeyImJamie You both are correct. If you write a script properly, it shouldn't really need much maintenance apart from slight content changes. If you want to expand it - that's a different case. Now it depends greatly if you're developing it as a hobby or as a way to make money. In my opinion, script prices are rather low, so unless you want to make some nice $ probably impossible to do with 1-2 scripts. Probably no one here is trying to make a living from developing scripts (check software developer salaries). It's probably a hobby to some extent. Regarding customers - naturally they have the right to be pissed if the script they paid for for an agreed price doesn't work. Especially due to some minor bugs/changes like one extra option in tutorial island dialogue. Takes a maximum of 30 minutes to check, code, test and push. If you got bored developing a certain script (it's a hobby) and it eventually requires a ton of maintenance (due to content changes and not cause it didn't work to begin with) I do understand the scrripter not giving a f for a few bucks. Pretty hard to balance out being ethical and "being a slave"
-
Drawing tiles around entities
Howdy ho, Was wondering how you guys draw fancy stuff around entities, say monsters? Atm using something as simple as g2.draw(npc.getPosition().getPolygon(getBot()); Naturally, this draws a square of 1x1 around the entity. Say the entity takes up two grids. Anyway to find that out and draw it? Thanks
-
WTF are these reactions?!
Need someone with a doctorate in memes to explain
-
I have a question about account creation and IPS concerning bans
First of all, nowadays botting isn't that profitable. Bans are crazy and most item prices are low. Secondly, at least in my experience, chain banning isn't really a big thing. Might be wrong though.
-
carrying in league of legend for OSRS
Lol sorry but laughed my ass off when saw the topic
-
Botting and scripting to max
Always fun to do this. Best of luck
-
Quick simple question
You need to launch OSBot at least once in order for it to create the folders. Probably done that. The folders are in your home directory, e.g. C:\Users\TheHooter\OSBot\Scripts /home/TheHooter/Osbot/Scripts for Mac/Linux
-
Checking Combat Style
configs.get(43) Here you go my friend. Each config value means something different. I do believie that 0 - Attack 1 - Strength 3 - Defence Might be wrong, once you check those feel free to post the correct values
-
getClosest() returning weird results
Who knows really? Though if it's just simple fishing, the problem is in implementation
-
getClosest() returning weird results
What's really wrong with isAnimating(), or to be exact isMoving()? A good check to do in order not to click around too much, Would do it more or less like this and not worry about stuff (untested). Finds closest spot and interacts with it. Would be good to add additional check to be sure that the fishing spot is good, like if it has the required action, is reachable and etc public void fish() { NPC fishingSpot = getNpcs().closest("Fishing spot"); // Or whatever it is called. Don't use ids if (fishingSpot != null) { fishingSpot.interact("Bait"); new ConditionalSleep(5000, 250) { @Override public boolean condition() throws InterruptedException { return !myPlayer().isMoving() && myPlayer().isAnimating(); } }; getMouse().moveOutsideScreen(); } }
-
What music do you listen to while you code?
Prog rock or blues rock basically
-
Grabbing a ton of prices for items
Thank you guys for the replies. I ended up using JSON minimal https://eclipsesource.com/blogs/2013/04/18/minimal-json-parser-for-java/ At least the writers claim that it has better performance than others. Example code if someones interested private final static String RSBUDDY_URL = "https://rsbuddy.com/exchange/summary.json"; public static HashMap<String, Integer> getPriceMap(List<String> items) { HashMap<String, Integer> priceMap = new HashMap<>(); try { URL url = new URL(RSBUDDY_URL); BufferedReader jsonFile = new BufferedReader(new InputStreamReader(url.openStream())); JsonObject priceJSON = JsonObject.readFrom(jsonFile.readLine()); Iterator<Member> iterator = priceJSON.iterator(); while (iterator.hasNext()) { JsonObject itemJSON = priceJSON.get(iterator.next().getName()).asObject(); String itemName = itemJSON.get("name").asString(); if (items.contains(itemName)) { priceMap.put(itemName, itemJSON.get("buy_average").asInt()); } } } catch (Exception e) { log("Failed to grab item prices!"); } return priceMap; } Usage List<String> itemList = Arrays.asList("Rune platebody", "Bronze axe", "Gold bar", "Air rune", "Fire rune", "Amulet of strength"); getPriceMap(itemList); P.S. total count of RS buddy item data is 3412. Are there really only that many items in osrs?
-
Grabbing a ton of prices for items
Thanks, already am
-
Grabbing a ton of prices for items
Ah so RSBuddy likes to change property indexes, but not property names? If that's true then great. Thanks
-
Grabbing a ton of prices for items
Thanks! Didn't know about this. Couple of questions though: 1) What do you mean by "JSON is dynamic"? Is the structure bound to change? 2) Any provider which searches by item names and not ids? 3) Are RSbuddy prices accurate? Saw somewhere said that they're not. Nah always want to have the latest price, though if not, still a lot of checking.
-
Grabbing a ton of prices for items
Was wondering if there's a good way to load a ton of item prices from websites in a speedy manner. Actually dunno if it's even possible without just checking the website whenever absolutely needed. Hosting my own price database and refreshing it every now and then really isn't a decent option unless there's no other way. (say DB crashes) Naturally, caching isn't an option here, cause prices change. Say I want to load a 100 item prices on script start. Atm using something like final URL url = new URL("http://2007.runescape.wikia.com/wiki/Exchange:" + item.replaceAll(" ", "_")); BufferedReader file = new BufferedReader(new InputStreamReader(url.openStream())); // Parsing stuff It takes more than a minute to load a ton of items, and probably would take longer on slow connections. I remember when I used Perfect Fighter (script on SDN) it looked like it did price grabbing for loot rather quickly, though didn't test with a ton of items. So, being naive here, but any reliable ways to do this and fast?
-
Regarding Clipping planes and tiles
@Lemons thanks a lot! Checking your Quantum API atm to see how it's done form A to Z and honestly, I'm getting wet just by reading your code. Awesome.
-
does anyone know how to fix this problem
Payment issues, proxy went down? OSBot really doesn't use anything fancy for proxies (at least that i know of). If OSBot doesn't load when using proxies - proxy issue and end of story
-
does anyone know how to fix this problem
Tested this time and time again and only one conclusion: Your proxy is bad or badly setup Either it's too slow to use or you're not authorized to use it (ip or login/pass)
-
Config error osbot client inject mode
Check on your provider dashboard. Should have a FAQ how to setup correctly and use
-
Config error osbot client inject mode
1) You didn't authorize you machine ip for the proxy (the one your using OSBot on) or did't provide correct login/pass for proxy if required. 2) Your proxy is veyr slow or just plain bad
-
Regarding Clipping planes and tiles
Dunno if this is in the right section, but posting in regards of a bunch of noob questions and general information. So I was snooping around and found this thread Khaleesi posted a nice solution for the given problem static final int UNWALKABLE = 256 | 0x200000 | 0x40000; public static boolean isWalkable(int flag) { return (flag & (UNWALKABLE)) == 0; } XClippingPlane[] clippingPlanes = script.client.accessor.getClippingPlanes(); int[][] map = clippingPlanes[script.myPlayer().getZ()].getTileFlags(); for(int i = 0; i < map.length;i++){ for(int j = 0; j < map[i].length; j++){ if(isWalkable(map[i][j])) //store in list? } } I tried playing around with this, but didn't succeed in the end. My extremely nooby questions would be (spare the flame ): 1) What the hell are these clipping planes and how can I use the given information for my benefit? 2) What are tile/clipping plane flags? 3) What are tiles exactly in OSRS (in depth). A NxN size polygon of points? 4) In the given code above there's a comment "//store in list?". First thing that comes to mind is to store each tile POSITION and there you have - you know where you can walk and where you can't. Didn't suceed in this. 5) How does a tile map to a position exactly?
-
A way to disable builtin camera turning on interact
As Explv said, you need to use InteractionEvent "directly" and not the "slimmed down" version which is the interact method. InteractionEvent interactionEvent = new InteractionEvent(entity, action); interactionEvent.setOperateCamera(false); execute(interactionEvent); RS2Object.interact() uses the same thing, just with some default parameters. I think it's mentioned in the API what those default values are.