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.

KMJT

Members
  • Joined

  • Last visited

Everything posted by KMJT

  1. KMJT replied to Booch's topic in Archive
    I like it
  2. KMJT replied to a post in a topic in Scripting Help
    final int[] TIN_IDS = {1234, 1234, 1234, 1234};
  3. Hello. I lost sdn scripter rank and it was replaced with vip (even though I haven't paid for vip). I also lost access to sdn scripter section. Is this a bug?
  4. I'm trusted, I have 100% feedback.
  5. KMJT replied to digdig18's topic in Scripting Help
    I think you are confused with what the width and height actually represent. Its been awhile since I used the method so I may be wrong but I think width and height represent the maximum displacement (in pixels) from your x and y coordinate parameters. So if you want to do move to an exact spot with no randomization whatsoever, I think you would do one of the following: client.moveMouse(new RectangleDestination(xCord, yCord, 0, 0)); client.moveMouse(new RectangleDestination(xCord, yCord, 1, 1)); And if you want to move your mouse to a position on the screen not necessarily at an exact point, but within a certain randomized screen area from your specified coordinates, you can do something like: client.moveMouse(new RectangleDestination(xCord, yCord, 20, 25)); I wish they would have straight forward methods like: moveMouse(xCord, yCord); clickMouse(xCord, yCord); Its been awhile since i've used click and move methods so I may be completely wrong lol.
  6. What do you mean? Just looking through the osbot2 api I Can see the following methods: To move boolean moveMouse(MouseDestination destination) Moves the mouse to the specified destination. boolean moveMouse(MouseDestination destination, boolean drag) Moves the mouse to the specified destination. To click (among many others) boolean click(MouseDestination destination) Moves the mouse to the specified destination and performs a left click on the destination. boolean click(MouseDestination destination, boolean rightClick) Moves the mouse to the specified destination and performs a left or a right click as specified on the destination.
  7. I would be wary of it was through PP.
  8. Particularly happy about these :P java.lang.String getSelectedItemName() Returns the name of the item selected. boolean isItemSelected() Returns whether an item in your inventory is selected.
  9. Say I charge $5.99 for my script, is there any way to grant some people access to it (to the sdn version, not by giving them a local version) for free? Or are they required to pay in order to use it? I guess it sounds like I am trying to sell the script off site to avoid the fee aha, thats not why i'm asking. Also, is it possible for me to get the sdn version of my script? I haven't checked my client in days so for all I know I was already given it. One more thing.. how would I see how many people are using my sdn script? Thanks
  10. Lol why are you in a program that you don't enjoy studying :P
  11. I may be wrong but from what I was told using your method although more efficient doesn't it eventually have to be updated? Personally I would rather sacrifice a bit of CPU then have to worry about updating something in the future Which is why they should just hook it in the API >.< How? The client.getMenu() or w/e the code is does not verify true uptext. It is hover uptext which does not guarantee that an item is selected. If you mean grabbing colours from the actual up text area, you can, although you would have to have a colour range since the up text colour is not constant. By that I mean if you are grabbing the rgb values of a direct point on the world "Use", a few seconds later that rgb value could be slightly off, i'm guessing because of background change. I haven't really tested the rgb value range in the uptext so for all I know it is more efficient. I'll test the rgb range later tonight.
  12. Probably not the most efficient but better than nothing. It is pretty straight forward. Whatever item you want to add this method to put the item in the very first inventory slot to debug the points (3 x and 3 y coordinate values). If you debug your coordinate values from any spot other than the very first inventory slot, the method will not work. The coordinate points that you are debugging will be of the white outline (when an item is selected). Make sure that these colors match exactly the rgb values (255,255,255) which is the white outline around the item. When choosing your confirm points try to spread the points out and choose points that you think are unique (for example if there is a point that is bent inwards into the item, that would be a good point to choose since it is unlikely that any other item in the game shares that distinct feature). I put in 3 confirm points but you can easily edit the method to add more/less confirm points. The more confirm points there are, the more accurate the method will be. Although imo anything over 3 confirm points is overkill if you are choosing points that are spread apart and unique. public int onLoop() throws InterruptedException { //test example if(itemSelected(568,221, 580,237, 590,227)) log("ROPE UPTEXT"); else if(itemSelected(571,235, 573,242, 585,223)) log("KNIFE UPTEXT"); else log("no uptext"); return 50; } boolean itemSelected(int highlightedX1, int highlightedY1, int highlightedX2, int highlightedY2, int highlightedX3, int highlightedY3) { Color highlightColor = new Color(255,255,255); for(int rows=0, y1=highlightedY1, y2=highlightedY2, y3=highlightedY3; rows<7; rows++) { for(int columns=0, x1=highlightedX1, x2=highlightedX2, x3=highlightedX3; columns<4; columns++) { if(client.getColorPicker().isColorAt(x1,y1,highlightColor) && client.getColorPicker().isColorAt(x2,y2,highlightColor) && client.getColorPicker().isColorAt(x3,y3,highlightColor)) return true; x1+=42; x2+=42; x3+=42; } y1+=36; y2+=36; y3+=36; } return false; }
  13. Ok cool i'll check it out thanks
  14. What free program do you use to obfuscate?
  15. As in putting the .class files out to the public? Would rather not do that.
  16. If I release a script on the sdn for free for testing purposes, can I later switch it to paid? If so what happens to all the people that currently have been using the free version? Are they unable to use it now? Also, if it is a quest script, what do I do about the 6 hour proggy requirement?
  17. KMJT replied to Alek's topic in Archive
    No complaints here then
  18. KMJT replied to Alek's topic in Archive
    Will the new rank "script writer" get free vip?
  19. Refer to my thread here: http://osbot.org/forum/topic/42524-clientgetbankisopen-true-returning-too-early/ I think you are having problem because the bank isOpen() method is returning true, but it is not yet visible, so it is impossible to interact with it. Try checking the actual bank interface: //pre-condition: Bank booth is on screen public void openBankBooth(int timeout) throws InterruptedException { while(client.getInterface(12) == null) { Thread.sleep(5); Entity bankBooth = closestObjectForName("Bank booth"); if(bankBooth != null) { if(bankBooth.interact("Bank")) { long markTime = System.currentTimeMillis(); while((client.getInterface(12) == null) && ((System.currentTimeMillis()-markTime) < timeout)) Thread.sleep(5); } } } } That is the current method I use. I also suggest you use dynamic sleeps instead of static sleeps to improve the efficiency of your script. Here is what I personally use to withdraw a charge item (array): //pre-condition: Bank is open public void withdrawChargeItem(int[] itemID, int timeout) throws InterruptedException { boolean done = false; while(!done) { for(int i = 0; i < itemID.length; i++) { if(client.getInventory().contains(itemID[i])) return; } for(int i = 0; i < itemID.length; i++) { if(client.getBank().contains(itemID[i])) { if(client.getBank().withdraw1(itemID[i])) { long markTime = System.currentTimeMillis(); while((!client.getInventory().contains(itemID[i])) && ((System.currentTimeMillis()-markTime) < timeout)) Thread.sleep(5); break; } } } } }
  20. KMJT replied to RichyRich's topic in Archive
    Pretty sure this forum has an add to ignore feature.
  21. Didn't one of their leaders have a doubling scamming vid out? lol

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.