Jump to content

How can I Interrupt a webwalk?


Paradox68

Recommended Posts

Once the webwalk is called, that's all the bot will focus on until the task is complete, but it doesn't handle al-kharid gate and I need a way to interrupt it mid event and interact with the gate:

		if (!getArea(location).contains(myPlayer())) {

			getWalking().webWalk(getArea(location).getRandomPosition());
			RS2Object gate = getObjects().closest("Gate");
			if (gate != null) {
				if (gate.hasAction("Pay-toll(10gp)")) {
					gate.interact("Pay-toll(10gp)");
				}
			}
                }

I also tried placing the gate interaction before the walk event but obviously that still doesn't work.

Edited by Paradox68
Link to comment
Share on other sites

I don't know a lick of this API, as I'm a scripter from a different botting site.

 

However after glancing at the API, I'm assuming you use the setBreakCondition method in the WebWalkEvent class.

 

In this way you specify a condition for the walking event to break for.

Edited by Final Calibur
  • Like 3
Link to comment
Share on other sites

Walk via making a WebWalkEvent object, and use the method setBreakCondition(Condition breakCondition), then execute the event.

You need to make a Condition object that has the condition where you want the event to terminate.

Example:

Condition condition = new Condition() {
    @Override
    public boolean evaluate() {
        return getBank().isOpen(); 
    }
};
Edited by Chicken Wing
Link to comment
Share on other sites

I know i'm dumb but I'm still learning. Can you tell me why this won't work?

http://pastebin.com/DgwrniXk

 

The reasons this doesn't work are too many to list.

 

Don't create your own webwalker, use the one osbot has made for you.

		INodeRouteFinder nodeFinder = INodeRouteFinder.createSimple();

		WebWalkEvent evt = new WebWalkEvent(nodeFinder, position);
		evt.setBreakCondition(new Condition() {

			@Override
			public boolean evaluate() {
				return getObjects().closest("Gate") != null;
			}
		});
                execute(evt);

In addition to this however, you also need to check that you're on the wrong side of the gate. Otherwise it's gonna keep breaking and going thru the gate even after passing it.

Edited by FrostBug
  • Like 1
Link to comment
Share on other sites

The reasons this doesn't work are too many to list.

 

Don't create your own webwalker, use the one osbot has made for you.

		INodeRouteFinder nodeFinder = INodeRouteFinder.createSimple();

		WebWalkEvent evt = new WebWalkEvent(nodeFinder, position);
		evt.setBreakCondition(new Condition() {

			@Override
			public boolean evaluate() {
				return getObjects().closest("Gate") != null;
			}
		});
                execute(evt);

In addition to this however, you also need to check that you're on the wrong side of the gate. Otherwise it's gonna keep breaking and going thru the gate even after passing it.

 

 

mIhZEzR.gif

Link to comment
Share on other sites

On the real though don't make a WWE use the osbot one.

If you confused about anything the bug said lmk I'll try my best to explain it. But follow the bugs suggestion please

 

 

I am a little confused. Do you think you could spare a minute on Teamviewer to let me know what creating your own WebWalkEvent consists of?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...