Jump to content

Bot ignoring complete condition


Pudge

Recommended Posts

Hello!

I don't quite understand if it's a bug or not ...

Sometimes when a bot makes a quest with a click on an object, for example, a portal click from city 1 to city 2, it sometimes ignores the "Is complete condition" and continues to run somewhere further.

For example:

Quest: PortalFromDalaranToExodar.

The code for this quest (only 1 line):

wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithGameObject(new Vector3(5699.33, 735.217, 641.767), 191007);
return true;

Is complete condition for this quest:

return !ObjectManager.Me.IsAlliance || Usefuls.MapZoneName == "The Exodar";

"Not required in quest log" set to true.

But, as soon as bot crosses the portal and finds himself in the Exodar - he continues to run along some coordinate! It seems this is the coordinate of Dalaran portal to Exodar, but at this moment the bot is "blind" and does not see that it is already in the Exodar!

I tried adding Thread.Sleep after the interact with portal code, but the bot still sometimes ignores Is complete condition ...

How can I fix this? Thanks for the answers, if someone understood me and knows what can be done.

Link to comment
Share on other sites

GoToTask is blocking, it will not stop walking unless you also pass a breaking condition to the "whileCondition" parameter.
Or use normal MovementManager.Go which is not blocking - but if you have a complete condition, it will just call MovementManager.Go over and over until the condition is fulfilled.

This is tick-based vs blocking.

Link to comment
Share on other sites

@pudge i do not know if you fix this problem, but i got it working by using this as a return complete condition.

return Usefuls.SubMapZoneName.Contains("The Vault of Lights");

if(GoToTask.ToPositionAndIntecractWithGameObject(new Vector3(5699.33, 735.217, 641.767), 191007))
                {
					Thread.Sleep(5000);
                }
				return true;

tested, works gread.

 

Transport to Exodar from Dalaran.xml

Edited by TheSmokie
Link to comment
Share on other sites

A few days ago before reading this thread, I added this:

wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithGameObject(new Vector3(-1880.28, 5357.53, -12.4281), 183321);
MovementManager.StopMove();
Thread.Sleep(new System.Random().Next(1000, 3000));
robotManager.Products.Products.InPause = true;
Thread.Sleep(new System.Random().Next(1000, 3000));
robotManager.Products.Products.InPause = false;
return true;

But it seems this shit still appears again with a little chance.

Thanks for replies! I will try your ways guys.
 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...