August 31, 20169 yr Hello, i started looking at the classes/method list with a decompiler like DroidZ recomend in this post, To find if there was a way to go on a specific position and interact with npc without using the pathfinder and, i haven't find anything (maybe i'm just blind). Does something like, MovementManager.GoAndInteractWithNpc(Path, 33759, 2, true); exist ? It could be useful for taking quest when the pathfinder dosen't work correctly or just to follow a path and interact with npc in a scenario (or something like that). If nothing like that has been created, do you know a way to interact with an npc without moving ? Something like: wManager.wow.task.NPC.InteractWithNpc(33759, 3, false); (with gossip options or not ~) I realise now that it's a bit hard to explain in english, tell me if anything is not understandable
September 1, 20169 yr you can't go to somewhere and interact with the npc without pathfinder :/ with this you can move without pathfinder: MovementManager.MoveTo(new Vector3(123, 321, 1)); or wManager.Wow.Helpers.TraceLine.TraceLineGo(new Vector3(123, 321, 1)); Right now i can't even find how to interact with NPC outside of pathfinder... Back to sleep
September 1, 20169 yr Hello, Not tested, but like this: int entryIdNpc = 123456; var path = new List<Vector3>(); // your path MovementManager.Go(path); while (MovementManager.InMovement && Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore) { // Wait follow path Thread.Sleep(100); } MovementManager.StopMove(); if (path[path.Count - 1].DistanceTo(ObjectManager.Me.Position) < 10) { // easy way: GoToTask.ToPositionAndIntecractWithNpc(path[path.Count - 1], entryIdNpc); // no easy: /*var u = ObjectManager.GetNearestWoWUnit(ObjectManager.GetWoWUnitByEntry(entryIdNpc)); if (u.IsValid) { // can need to go to but I'll not implement it Interact.InteractGameObject(u.GetBaseAddress); }*/ }
September 2, 20169 yr Author So, i took a break and i'm back ! On 01/09/2016 at 4:50 PM, Droidz said: Hello, Not tested, but like this: int entryIdNpc = 123456; var path = new List<Vector3>(); // your path MovementManager.Go(path); while (MovementManager.InMovement && Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore) { // Wait follow path Thread.Sleep(100); } MovementManager.StopMove(); if (path[path.Count - 1].DistanceTo(ObjectManager.Me.Position) < 10) { // easy way: GoToTask.ToPositionAndIntecractWithNpc(path[path.Count - 1], entryIdNpc); // no easy: /*var u = ObjectManager.GetNearestWoWUnit(ObjectManager.GetWoWUnitByEntry(entryIdNpc)); if (u.IsValid) { // can need to go to but I'll not implement it Interact.InteractGameObject(u.GetBaseAddress); }*/ } Well, it's not what i was expected but since it work i have to tell that you are a genius ! For futur user, i just add the wManager.Wow.Bot.Tasks. Here is the one i used: int entryIdNpc = 33759; var path = new List<Vector3>() { new Vector3(8451.504f, 1074.231f, 554.4833f, "None"), new Vector3(8449.256f, 1067.841f, 554.4672f, "None"), new Vector3(8447.452f, 1061.072f, 554.3987f, "None"), }; //path MovementManager.Go(path); while (MovementManager.InMovement && Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore) { // Wait follow path Thread.Sleep(100); } MovementManager.StopMove(); if (path[path.Count - 1].DistanceTo(ObjectManager.Me.Position) < 10) { // easy way: wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(path[path.Count - 1], entryIdNpc); } If somebody is interested, here is a quick quest file that show differences between the pathfinder method and the droidz one. I realy suggest you to take a look at it because the way the bot react is realy interesting (Btw: the bot will go to the silver turnament on this NPC so, don't be too far Pathfinder vs DroidZ.xml Let the quester do all until the end message open up
Create an account or sign in to comment