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.

OSBot 2 - What features do you want to see?

Featured Replies

Add a class called EmoteTab to the API

Here's an example of how I'm handling it to make it easier for them..

package com.gmc.extreme;import org.osbot.script.*;import org.osbot.script.rs2.ui.*;import org.osbot.script.rs2.model.*;import org.osbot.script.mouse.*;import java.awt.*;public class Emotes {			public static final int EMOTE_TAB = 35;	public static final MouseDestination SCROLL_UP = new RectangleDestination(new Rectangle(722, 208, 8, 8));	public static final MouseDestination SCROLL_DOWN = new RectangleDestination(new Rectangle(722, 450, 8, 8));		public static void activateEmote(Script script, String emoteName) throws InterruptedException {		script.selectInterfaceOption(548, EMOTE_TAB, "Emotes");		script.sleep(600 + script.random(800));		int emoteId = getEmoteId(script, emoteName);		if(emoteId == 0) {			script.log("Could not find matching emote for name: " + emoteName);			script.sleep(5000);			return;		}		while(!isVisible(script, emoteId))			scrollToEmote(script, emoteId);		clickEmote(script, emoteId);	}	public static int getEmoteId(Script script, String emoteName) throws InterruptedException {		for(int i = 38; i < 75; i ++) {			if(script.client.getInterface(464).getChild(i).getMessage().equals(emoteName))				return i;		}		return 0;	}	public static boolean isVisible(Script script, int emoteId) throws InterruptedException {		if(script.client.getInterface(464).getChild(emoteId).getPosition().getY() >= 211 && script.client.getInterface(464).getChild(emoteId).getPosition().getY() <= 417)			return true;		return false;	}		public static void clickEmote(Script script, int emoteId) throws InterruptedException {		MouseDestination closeInterface = new RectangleDestination(new Rectangle((int)script.client.getInterface(464).getChild(emoteId).getPosition().getX(), (int)script.client.getInterface(464).getChild(emoteId).getPosition().getY(), script.client.getInterface(464).getChild(emoteId).getWidth(), script.client.getInterface(464).getChild(emoteId).getHeight()));		while(!script.client.moveMouse(closeInterface, true)) {}		script.sleep(400 + script.random(1200));		script.client.clickMouse(false);		}		public static void scrollToEmote(Script script, int emoteId) throws InterruptedException {		if(isVisible(script, emoteId))			return;		int currentSlotVisible = 38;		for(int i = 38; i < 75; i ++) {			if(isVisible(script, i))				currentSlotVisible = i;		}		script.sleep(1000);		if(emoteId < currentSlotVisible) {			while(!script.client.moveMouse(SCROLL_UP, true)) {}			script.sleep(600 + script.random(400));		} else {			while(!script.client.moveMouse(SCROLL_DOWN, true)) {}			script.sleep(600 + script.random(400));		}		while(!isVisible(script, emoteId))			script.client.pressMouse();		script.sleep(400);		script.client.releaseMouse();	}	}

Make constructor instead of making every method static :p

Recently Browsing 0

  • No registered users viewing this page.

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.