SRL Archive - RS3 Script Requests

Wine of zamorak grabber


ihave3heads

2011-11-07 16:06:23

Yo can someone make a wine of zamorak grabber

thatd be great

wouldnt need special features just tele to fally and repeat

BenLand100

2011-11-07 16:25:50

But you have three heads. That's even better than two!

kingarabian

2011-11-07 16:35:24

I have one made. Gets about 259k gp/hr.
I plan to release it as part of the msi in december …

YoHoJo

2011-11-07 16:35:48

Oh yeeeaaah good idea! These should be nice to auto now that other bots are broken… someone should get to it! :D

Kave

2011-11-07 16:38:06

Think a few people here have been monitoring their progress on G.E ;)

PatDuffy

2011-11-07 16:51:40

I might slide this script into my plans

PerryP

2011-11-15 23:21:32

Have started on one just to get back into scripting, can't promise anything when it comes to quality or beauty but i think i can have a working version up at latest the 30th.

quazzymodem

2011-12-07 22:23:15

Bump,

Hello all, take a look at the price of zammy wine. I would really like to see this script made, I was thinking it should be very easy with objectDTM's. I have a working everything except walking version. If anyone wants to complete it for public release let me know.

hamster31

2011-12-11 21:26:19

hmm interesting…i might take that on…lol unfortunately im working on a summoning script right now :) but maybe a personal script would be nice ;)

Swagger

2011-12-11 22:00:59

Good idea for the most part. The high prices would balance out the low world population/wine reproduction.
Just thought I would post this:
http://services.runescape.com/m=itemdb_rs/g=runescape/results.ws
Can get quickly to the Wine of Zamorak from there

quazzymodem

2011-12-11 23:59:12

Well I did some digging around and this was the most complete/non reflection based script that I could find. It obviously needs quite a bit of work but seems like a good start if anyone wanted to take on this project.

I take no credit for the following code:

program ZammyWineGrabber;

// ProResearch's Zammy Wine Grabber
// Start Your Players in the Zammy Hut

{.include SRL/SRL.scar}

var
x, y: Integer;

Const
DirrectionR = 'S'; //Which way to run if in fight.
HowManyLoads = 10; //
MySRLID = ''; // optional.
MySRLPassword = '';

procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);

Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := ''; //3 letters of your username
Players[0].Active := True;

end;

procedure AntiBannage;
begin
case random(16) of
0: GameTab(5);
1: BoredHuman;
2: GameTab(4);
3: GameTab(1);
4: GameTab(2);
5: RandomMovement
6: BoredHuman;
7: PickUpMouse;
8: RandomRClick;
9: BoredHuman;
10: GameTab(1);
11: RandomMovement;
12: GameTab(5);
13: GameTab(6);
14: BoredHuman;
15: GameTab(7);
end;
end;

Procedure WalkToBank;
begin
MakeCompass('N')
HighestAngle;
MakeCompass('N')
Mouse(681,125,3,3,true);
FFlag(0);
Mouse(646,148,3,3,true);
FFlag(0);
Mouse(646,148,3,3,true);
FFlag(0);
Mouse(646,148,3,3,true);
FFlag(0);
//////////RadialWalk or DTM From here/////
end;


begin
ActivateClient;
SetupSRL;
SRLID := MySRlID;
SRLPassword := MySRLPassword;
wait(100);
DeclarePlayers;
if (not (loggedIn)) then
//begin no need for this if only 1 command
LoginPlayer;
//end;
repeat
FindNormalRandoms;
AntiBannage;
MouseSpeed:=12;
Gametab(7);
MMouse(690,288,3,3);
Wait(1000+random(500));
Mouse(690,288,3,3,true);
if FindObj(x, y, 'ine of zamorak', 8750479, 5) then
begin
getmousepos(x, y);
mouse(x, y, 2, 2, true);
FindNormalRandoms;
AntiBannage;
Wait(5000);
FindNormalRandoms;
AntiBannage;
Wait(5000);
FindNormalRandoms;
AntiBannage;
Wait(8000);
FindNormalRandoms;
end;
if (not (loggedin)) then TerminateScript;
until (InvFull);
WalkToBank;
Logout;
end.

key

2011-12-13 13:32:43

Well, if someone releases this script his a beast!

PerryP

2011-12-14 17:38:50

haven't really gotten time lately so the script still lies there close to finished, if I haven't got a running version up by Christmas i can put the code up for anyone that want to fix the last parts themselves…

key

2011-12-15 06:11:39

From: kingarabian
I have one made. Gets about 259k gp/hr.
I plan to release it as part of the msi in december …


Oooooooo can't wait!
It's almost middle December now, how's going :D?

demoniste

2011-12-16 00:06:43

I'm working on 1 too… Yesterday it works flawless for 3 hours.
I need to add few failsafe, antiban , "cosmetics" before release it.

euphemism

2011-12-16 00:09:26

I am also making one; looks like we will have a few sitting around.

quazzymodem

2011-12-16 01:41:36

Competition is great, it will make for three really awesome scripts and 3 even better scripters :)

GLaDOS

2012-01-07 17:17:10

IS THIS SCRIPT DONE?

I can't find a link anywhere, plz plz plz finish/post it.

This would be the ultimate money maker,

+250k/hr GP
+10k Mage Xp/Hr

And those are absolute minimum values for a working script.

If it's done, could u e-mail it to me plz?

Er1k

2012-01-07 20:12:01

From: GLaDOS
IS THIS SCRIPT DONE?

I can't find a link anywhere, plz plz plz finish/post it.

This would be the ultimate money maker,

+250k/hr GP
+10k Mage Xp/Hr

And those are absolute minimum values for a working script.

If it's done, could u e-mail it to me plz? I would give you 1M in-game for it.


1. You're clearly leeching.
2. I looked into this before, 250k gp/h means around 120+ wines per hour, which means around 5 loads done per hour. That means the script has to almost always beat other players to accomplish your minimum values. I had a working wine grabbing procedure, but I gave up after being beaten to the wine too often due to my ping (180ms+) It's just not worth doing for me and I have better money making methods
3. You're trying to pay for a script, which I think is not allowed :)

quazzymodem

2012-01-07 23:46:23

yeah a few people have said they were planning a release of this in december, and yet there is still nothing, this is a very nice method of money making and shouldn't be too hard to script, whats posted above should work with SPS walking.

I normally found that you did not have to compete with others to get the wine as long as you wern't in a very popular world (but they do have a faster respawn rate so even then your profit doesnt dip too low.

PatDuffy

2012-01-07 23:50:09

From: quazzymodem
yeah a few people have said they were planning a release of this in december, and yet there is still nothing, this is a very nice method of money making and shouldn't be too hard to script, whats posted above should work with SPS walking.

I normally found that you did not have to compete with others to get the wine as long as you wern't in a very popular world (but they do have a faster respawn rate so even then your profit doesnt dip too low.


Actually, I was developing one but stopped because walking there with SPS was a pain in the rear as it kept failing. I was too lazy to make a DTM path or use ObjectDTM's at the time, and now I have too many bigger projects I want to work on to go back to it.

Er1k

2012-01-08 01:08:15

From: PatDuffy
Actually, I was developing one but stopped because walking there with SPS was a pain in the rear as it kept failing. I was too lazy to make a DTM path or use ObjectDTM's at the time, and now I have too many bigger projects I want to work on to go back to it.


The walking through the goblin village is very buggy even if you do it legit. The character often gets stuck and takes a few tries to walk pass that bottleneck.

I stopped developing the script after I come to the conclusion that it's not worth the efforts to deal with that and the legits

yammouni

2012-02-21 23:20:02

i found this script that worked on rs bot, is there any way to make it compatible to simba ?


/* Script By Henry11200 */
/* Walking by Garrett */
/* Save as HenrysWineGrabber.java */

import org.rsbot.bot.Bot;
import org.rsbot.bot.input.Mouse;
import org.rsbot.event.events.ServerMessageEvent;
import org.rsbot.event.listeners.PaintListener;
import org.rsbot.event.listeners.ServerMessageListener;
import org.rsbot.script.*;
import org.rsbot.script.Bank;
import org.rsbot.script.wrappers.*;

import java.awt.*;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

@ScriptManifest(authors = { "Henry11200" }, category = "Magic", name = "Henry's Wine Grabber", version = 0.1, description = "Start script and set settings in GUI")
public class HenrysWineGrabber extends Script implements PaintListener, ServerMessageListener {

private final ScriptManifest properties = getClass().getAnnotation(ScriptManifest.class);

public RSTile[] To1 = {new RSTile(2946, 3368), new RSTile(2946, 3374), new RSTile(2952, 3379), new RSTile(2959, 3383),
new RSTile(2966, 3388), new RSTile(2966, 3396), new RSTile(2966, 3402), new RSTile(2966, 3408),
new RSTile(2961, 3414), new RSTile(2956, 3419), new RSTile(2952, 3425), new RSTile(2948, 3432),
new RSTile(2948, 3438), new RSTile(2949, 3444), new RSTile(2949, 3448), new RSTile(2949, 3454),
new RSTile(2949, 3461), new RSTile(2949, 3467), new RSTile(2949, 3473), new RSTile(2946, 3480),
new RSTile(2946, 3486), new RSTile(2946, 3492), new RSTile(2939, 3496), new RSTile(2938, 3502),
new RSTile(2941, 3507), new RSTile(2941, 3513), new RSTile(2942, 3517)};

RSTile[] To2 = {new RSTile(2945, 3369), new RSTile(2949, 3376), new RSTile(2957, 3383), new RSTile(2966, 3389),
new RSTile(2966, 3396), new RSTile(2965, 3402), new RSTile(2963, 3407), new RSTile(2960, 3413),
new RSTile(2957, 3417), new RSTile(2954, 3422), new RSTile(2952, 3428), new RSTile(2948, 3434),
new RSTile(2947, 3440), new RSTile(2947, 3447), new RSTile(2945, 3454), new RSTile(2945, 3461),
new RSTile(2944, 3467), new RSTile(2944, 3474), new RSTile(2944, 3481), new RSTile(2944, 3489),
new RSTile(2942, 3496), new RSTile(2941, 3502), new RSTile(2941, 3509), new RSTile(2942, 3516),
new RSTile(2934, 3515)};

RSTile[] Run = {new RSTile(2934, 3516), new RSTile(2941, 3510), new RSTile(2941, 3501), new RSTile(2942, 3494)};

public RSTile InSide = new RSTile(2932,3515);
final RSTile BankTile = new RSTile(2945,3368);

final TheWalker theWalker = new TheWalker();

final int[] Not = {563,555};
public int count = 0;

public boolean Spell = false;
final int Wine = 245;
int Table = 595;
public int mx = -1;
public int my = -1;
final int Law = 563;
final int Water = 555;
public long startTime = System.currentTimeMillis();
public int startEXP;
public int startLvl;
String status = "Starting Up";
String antib = "OFF";
String ttt = "OFF";

public void onRepaint(Graphics g) {
long millis = System.currentTimeMillis() - startTime;
long hours = millis / (1000 * 60 * 60);
millis -= hours * (1000 * 60 * 60);
long minutes = millis / (1000 * 60);
millis -= minutes * (1000 * 60);
long seconds = millis / 1000;
Mouse m = Bot.getClient().getMouse();
//Settings
g.setColor( new Color(70, 234, 40, 150));
g.fillRect(459, 322, 60, 16);
g.setColor(new Color(0, 0, 0));
g.drawRect(459, 322, 60, 16);
g.setColor( new Color(70, 234, 40, 200));
g.drawRect(460, 323, 58, 14);
g.setColor( new Color(70, 234, 40, 100));
g.fillRect(459, 322, 60, 8);
g.setColor(new Color(255, 255, 255));
g.drawString("Settings", 464,334);
//About
g.setColor( new Color(70, 234, 40, 150));
g.fillRect(398, 322, 60, 16);
g.setColor(new Color(0, 0, 0));
g.drawRect(398, 322, 60, 16);
g.setColor( new Color(70, 234, 40, 200));
g.drawRect(399, 323, 58, 14);
g.setColor( new Color(70, 234, 40, 100));
g.fillRect(398, 322, 60, 8);
g.setColor(new Color(255, 255, 255));
g.drawString("About", 402,334);
//Status
g.setColor( new Color(70, 234, 40, 150));
g.fillRect(337, 322, 60, 16);
g.setColor(new Color(0, 0, 0));
g.drawRect(337, 322, 60, 16);
g.setColor( new Color(70, 234, 40, 200));
g.drawRect(338, 323, 58, 14);
g.setColor( new Color(70, 234, 40, 100));
g.fillRect(337, 322, 60, 8);
g.setColor(new Color(255, 255, 255));
g.drawString("Status", 341,334);
//Time Ran
g.setColor( new Color(70, 234, 40, 150));
g.fillRect(226, 322, 110, 16);
g.setColor(new Color(0, 0, 0));
g.drawRect(226, 322, 110, 16);
g.setColor( new Color(70, 234, 40, 200));
g.drawRect(227, 323, 108, 14);
g.setColor( new Color(70, 234, 40, 100));
g.fillRect(226, 322, 110, 8);
g.setColor(new Color(255, 255, 255));
g.drawString(
hours
+"h "
+minutes
+"min"
+seconds
+"sec", 234,334);
if(m.x >= 337 && m.x < 397 && m.y >= 321 && m.y < 337) {
g.setColor( new Color(70, 234, 40, 150));
g.fillRect(337, 175, 182, 147);
g.setColor(new Color(0, 0, 0));
g.drawRect(337, 175, 182, 147);
g.setColor(new Color(255, 255, 255));
g.drawString("Lvl's gained "+ (startLvl - skills.getCurrentSkillLevel(STAT_MAGIC)), 360,197);
g.setColor(new Color(255, 255, 255, 255));
g.drawString("EXP gained "+ (skills.getCurrentSkillExp(STAT_MAGIC) - startEXP), 360,230);
g.setColor(new Color(255, 255, 255));
g.drawString("Status: "+status, 360,263);
g.setColor(new Color(255, 255, 255));
g.drawString("Wine Grabbed: "+count, 360,296);
}
if(m.x >= 397 && m.x < 459 && m.y >= 321 && m.y < 337) {
g.setColor( new Color(70, 234, 40, 150));
g.fillRect(337, 175, 182, 147);
g.setColor(new Color(0, 0, 0));
g.drawRect(337, 175, 182, 147);
g.setColor(new Color(255, 255, 255));
g.drawString("Henry's Wine Grabber v"+ properties.version(), 365,197);
g.setColor(new Color(255, 255, 255));
g.drawString("Made by Henry11200 ", 375,263);
}
if(m.x >= 459 && m.x < 519 && m.y >= 321 && m.y < 337) {
if(Tele) {ttt = "ON";}
if(!Tele) {ttt = "OFF";}
g.setColor( new Color(70, 234, 40, 150));
g.fillRect(337, 175, 182, 147);
g.setColor(new Color(0, 0, 0));
g.drawRect(337, 175, 182, 147);
g.setColor(new Color(255, 255, 255));
g.drawString("Teleporting is "+ttt, 360,230);
if(antiban == true) {antib = "ON";}
if(antiban == false) {antib = "OFF";}
g.drawString("Antiban is " +antib, 360,263);
}
}

public boolean onStart(final Map<String, String> args) {
startEXP = skills.getCurrentSkillExp(STAT_MAGIC);
startLvl = skills.getCurrentSkillLevel(STAT_MAGIC);

new GUI();
while (!guidone) {
status = "GUI settings";
wait(1000);
}
no = Integer.valueOf(noo);
setCameraAltitude(true);
return true;
}

public static boolean guidone = false;
public static boolean antiban;
public static boolean Tele = false;
public static int no;
public static String noo;

@SuppressWarnings("serial")
class GUI extends JFrame implements ActionListener {

private JLabel descLabel = new JLabel("Start in falafor bank or at the Zamorak church.");
private JLabel descLabel1 = new JLabel("Have law runes in your inventory, air staff equiped");
private JLabel descLabel2 = new JLabel("and if you want to teleport some water runes.");
private JLabel descLabel3 = new JLabel("It can withdraw law runes and water runes.");
private JLabel descLabel4 = new JLabel("Have them in your bank where scipt can see them.");
private JLabel DL = new JLabel("How many runes you want to withdraw when out. 0 means all.");
private JButton startScript = new JButton("Start script");
private JPanel mainPanel = new JPanel();
private JTabbedPane tabs = new JTabbedPane();
private JCheckBox antibanBox = new JCheckBox("Use antiban");
private JCheckBox teleBox = new JCheckBox("Use Teleport");
private JTextField Many = new JTextField(5);;

public GUI() {
super(properties.name() + " v" + properties.version() + " - By Henry11200");

mainPanel.setLayout(new FlowLayout());

startScript.setActionCommand("start");
startScript.addActionListener(this);

mainPanel.add(descLabel);
mainPanel.add(descLabel1);
mainPanel.add(descLabel2);
mainPanel.add(descLabel3);
mainPanel.add(descLabel4);
mainPanel.add(DL);
mainPanel.add(Many);
Many.setText("0");
mainPanel.add(antibanBox);
mainPanel.add(teleBox);
mainPanel.add(startScript);
tabs.addTab("Settings", mainPanel);

add(tabs);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(350, 220));
pack();
setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("start")) {
HenrysWineGrabber.antiban = antibanBox.isSelected();
HenrysWineGrabber.Tele = teleBox.isSelected();
HenrysWineGrabber.guidone = true;
HenrysWineGrabber.noo = Many.getText();
dispose();
return;
}
}
}


public RSTile[] To(){
int randNo = random(0,2);
if(randNo == 0){
return To1;
}
if(randNo == 1){
return To2;
}
return To1;
}
public void ClickSpell(){
castSpell(44);
Spell = true;
}
public void GrabWine(){
if(!Spell){
ClickSpell();
}
if(Spell){
while(!WineCheck()){
status = "Waiting for Wine";
if(antiban) antiBan();
wait(random(200,400));
if(!Bot.getClient().isSpellSelected()){
return;
}
if(getMyPlayer().isInCombat()){
runAway();
return;
}
}
if(WineCheck()){
if(ClickedWine()){
while(getMyPlayer().getAnimation() != -1){
wait(random(200,500));
}
count++;
Spell = false;
}
}
}
}
/* Old Function, too slow */
public boolean GetWine(){
if(WineCheck()){
ClickSpell();
wait(random(200,500));
}
if(Spell){
if(WineCheck()){
if(ClickedWine()){
while(getMyPlayer().getAnimation() != -1){
wait(random(200,500));
}
Spell = false;
return true;
}
}
}
if(!Spell){
ClickSpell();
GetWine();
return true;
}
wait(random(200,500));
return false;
}
/* end old */
public boolean ClickedWine(){
status = "Grabbing Wine";
if(!Bot.getClient().isSpellSelected()){
ClickSpell();
wait(random(200,500));
}
RSItemTile WWW = getGroundItemByID(Wine);
if (WWW != null) {
RSTile tile = getGroundItemByID(Wine);
RSObject wine = getObjectAt(tile);
try {
if(WineCheck()){
mx = wine.getLocation().getScreenLocation().x + random(1,3);
my = wine.getLocation().getScreenLocation().y - random(9,11);
moveMouse(mx, my);
wait(random(50,150));
clickMouse(true);
}
else{return false;}
}catch(Exception e) {}
return true;
}
return false;
}
public boolean WineCheck(){
RSItemTile WWW = getGroundItemByID(Wine);
if (WWW != null) {
return true;
}
return false;
}
public boolean atLocation(){
if(distanceTo(InSide) < 4){
return true;
}
return false;
}
public boolean Walk(RSTile[] path) {
if(!getMyPlayer().isMoving() || distanceTo(getDestination()) <= 5)
return theWalker.walkTo(path, true);
return false;
}

public void BankIt(){
status = "Getting to bank";
if(Tele && getInventoryCountID(Water) > 0 && distanceTo(new RSTile(2965,3380)) > 26){
castSpell(46);
while(getMyPlayer().getAnimation() != -1){
wait(random(200,500));
}
wait(random(800,1500));
}
if(Walk(reversePath(To()))){
wait(random(100,300));
while(distanceTo(BankTile) < 5){
if(bank.open()){
status = "Banking";
wait(random(100,300));
bank.depositAllExcept(Not);
wait(random(100,300));
if(getInventoryCountID(Law) < 28){
bank.withdraw(Law,no);
wait(random(100,300));
}
if(getInventoryCountID(Water) < 1 && Tele){
bank.withdraw(Water,no);
wait(random(100,300));
}
bank.close();
return;
}
}
}
}
public void runAway(){
status = "Running from Mages";
setRun(true);
wait(random(300,500));
Walk(Run);
wait(random(300,900));
Walk(reversePath(Run));
wait(random(300,900));
}
public int loop() {
if(canContinue()){
clickContinue();
}
if(getInventoryCountID(Water) < 1 && Tele && atLocation()){
stopScript();
}
if(getInventoryCountID(Law) < 1 && atLocation()){
stopScript();
}
if(getMyPlayer().isInCombat()){
runAway();
return random(100,400);
}
if(isInventoryFull()){
BankIt();
return random(100,400);
}
if(!atLocation() && !isInventoryFull()){
if(Walk(To())){
walkTileMM(InSide);
return random(100,400);
}
}
GrabWine();
/* Old Method stuff
if(!WineCheck() && atLocation() && !isInventoryFull() && !Reloaded){
antiBan();
return random(300,600);
}
if(WineCheck() && atLocation() && !isInventoryFull() && !Reloaded)
{
if(!GetWine()){
return 1;
}
return random(200,300);
}*/
return random(200,300);
}
public void serverMessageRecieved(final ServerMessageEvent e) {
final String messageEvent = e.getMessage();
if (messageEvent.contains("oo late")) {
count–;
}
}
public int antiBan() {
final int ranNo = random(0, 55);
int angle;
switch (ranNo) {
case 3:
moveMouse(random(0, 700), random(0, 500));
return random(200, 400);
case 4:
moveMouse(random(0, 450), random(0, 400));
return random(200, 400);
}
return random(200, 450);
}
public int getInventoryCountID(final int… itemIDs) {
int total = 0;

for (final RSItem item : getInventoryItems()) {
if (item == null) {
continue;
}

for (final int ID : itemIDs) {
if (item.getID() == ID) {
total += item.getStackSize();
}
}
}

return total;
}
@Override
public void onFinish() {
}
public int speed = 10;
public void getMouseSpeed(final int speed) {
this.speed = speed;
getMouseSpeed();
}

protected int getMouseSpeed() {
return speed;
}

public class TheWalker {

Methods methods = new Methods();
Thread walker = null;
RSTile[] path = null;

public void drawMap(final Graphics g) {
if (walker != null && walker.isAlive()) {
Point myTile = tileToMinimap(getMyPlayer().getLocation());
Point center = new Point(myTile.x + 2, myTile.y + 2);
g.drawOval(center.x - 70, center.y - 70, 140, 140);
if (path == null) return;
for (int i = 0; i < path.length; i++) {
final RSTile tile = path;
final Point p = tileToMinimap(tile);
if (p.x != -1 && p.y != -1) {
g.setColor(Color.BLACK);
g.fillRect(p.x + 1, p.y + 1, 3, 3);
if (i > 0) {
final Point p1 = tileToMinimap(path);
g.setColor(Color.ORANGE);
if (p1.x != -1 && p1.y != -1)
g.drawLine(p.x + 2, p.y + 2, p1.x + 2, p1.y + 2);
}
}
}
Point tile = tileToMinimap(nextTile(path));
g.setColor(Color.RED);
if (tile.x != -1 && tile.y != -1) {
g.fillRect(tile.x + 1, tile.y + 1, 3, 3);
}
g.setColor(Color.BLACK);
}
}

public boolean walkTo(final RSTile[] path, final boolean waitUntilDest) {
Walker walkto = new Walker(path, 3, 10000);
walker = new Thread(walkto);
walker.start();
waitToMove(random(800, 1200));
if (waitUntilDest) {
while (walker.isAlive()) {
methods.wait(random(300, 600));
}
return walkto.done;
} else return true;
}

public Point tileToMM(RSTile tile) {
return new Point(tileToMinimap(tile).x + 2, tileToMinimap(tile).y + 2);
}

public boolean tileOnMM(RSTile tile) {
return pointOnMM(tileToMM(tile));
}

public boolean pointOnMM(Point point) {
Point myTile = tileToMM(getMyPlayer().getLocation());
Point center = new Point(myTile.x, myTile.y);
return (center.distance(point) < 70) ? true : false;
}

public RSTile getClosestTileOnMap(final RSTile tile) {
if (isLoggedIn() && !tileOnMM(tile)) {
try {
final RSTile loc = getMyPlayer().getLocation();
final RSTile walk = new RSTile((loc.getX() + tile.getX()) / 2, (loc.getY() + tile.getY()) / 2);
return tileOnMM(walk) ? walk : getClosestTileOnMap(walk);
} catch (final Exception e) { }
}
return tile;
}

public RSTile nextTile(RSTile[] path) {
for (int i = path.length - 1; i >= 0; i–) {
if (tileOnMM(path)) {
return path;
}
}
return getClosestTileOnMap(path[0]);
}

public class Walker implements Runnable {

RSTile tile = null;
boolean done = false;
boolean stop = false;
int movementTimer = 10000;
int distanceTo = 3;

Walker(final RSTile[] userpath) {
this.tile = userpath[userpath.length - 1];
path = userpath;
}

Walker(final RSTile[] userpath, final int distanceTo, final int movementTimer) {
this.tile = userpath[userpath.length - 1];
this.movementTimer = movementTimer;
this.distanceTo = distanceTo;
path = userpath;
}

public void run() {
long timer = System.currentTimeMillis();
RSTile lastTile = getMyPlayer().getLocation();
int randomReturn = random(5, 8);
while (distanceTo(tile) > distanceTo && !stop) {
if (!getMyPlayer().isMoving() || getDestination() == null || distanceTo(getDestination()) < randomReturn) {
RSTile nextTile = nextTile(path);
if (getDestination() != null && distanceBetween(getDestination(), nextTile) <= distanceTo) {
continue;
}
getMouseSpeed(random(6 , 8 ));
walkTileMM(nextTile);
getMouseSpeed(random(8 , 10 ));
waitToMove(random(800, 1200));
randomReturn = random(5, 8);
}
final RSTile myLoc = getMyPlayer().getLocation();
if (myLoc != lastTile) {
if (distanceBetween(myLoc, lastTile) > 30) {
stop = true;
}
timer = System.currentTimeMillis();
lastTile = myLoc;
}
if (System.currentTimeMillis() - timer > movementTimer) {
stop = true;
}
methods.wait(random(20, 40));
}
if (distanceTo(tile) <= distanceTo) {
done = true;
}
}

}

}
}

Getdropped

2012-02-21 23:54:05

i got one so far i still beat other obvious bots… but i need to add panic tele when being attacked other than that works great. however mines not going to go public too much gold farm ;)

werder

2012-02-22 09:17:00

lol

yeah it would be very good script

quazzymodem

2012-02-22 19:40:37

there are like 2 of them released on this forum…

Getdropped

2012-02-22 21:07:11

Only one public script and it is becoming out of date (not my private one though) ;) the prices crashed when he first released finally going back up