Jump to content

Recommended Posts

I know of the http://wrobot.eu/files/file/303-move-during-combat/ plugin but looking for something more specific? I was wondering if there's a piece of code I can run to make my character strafe if fighting a certain NPC or if I get a certain debuff? Or maybe even just on a timer to move every X seconds X feet/meters? Basically, there's a specific fight where a debuff I'm standing in kills me, all I have to do is move.

 

Also, is there a way to run the Easy Quests Editor without it being tied to WRobot? Like how the fight class editor is; I can have that open and not have WRobot running.

Hello, like this:

 wManager.Events.FightEvents.OnFightLoop += (unit, cancelable) =>
        {
            var me = wManager.Wow.ObjectManager.ObjectManager.Me;
            var target = wManager.Wow.ObjectManager.ObjectManager.Target;
            if (me.IsAlive && target.IsAlive && !me.IsCast && me.HaveBuff("Buff name"))
            {
                wManager.Wow.Helpers.Keybindings.PressKeybindings(wManager.Wow.Enums.Keybindings.STRAFELEFT, 1000 * 3); // strage left during 3 secondes
            }
        };

(run this code only one time by wrobot session)

  • 2 months later...
On 8-11-2016 at 5:56 PM, Droidz said:

Hello, like this:


 wManager.Events.FightEvents.OnFightLoop += (unit, cancelable) =>
        {
            var me = wManager.Wow.ObjectManager.ObjectManager.Me;
            var target = wManager.Wow.ObjectManager.ObjectManager.Target;
            if (me.IsAlive && target.IsAlive && !me.IsCast && me.HaveBuff("Buff name"))
            {
                wManager.Wow.Helpers.Keybindings.PressKeybindings(wManager.Wow.Enums.Keybindings.STRAFELEFT, 1000 * 3); // strage left during 3 secondes
            }
        };

(run this code only one time by wrobot session)

How to let this code run once and how to let it move to a position xyz?

1 hour ago, Fableonian said:

How to let this code run once and how to let it move to a position xyz?

// Position we want to move to
Vector3 position = new Vector3(1, 1, 1);

// Move to the given position
MovementManager.Go(PathFinder.FindPath(position), false);

// Wait
while (MovementManager.InMovement && Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && ObjectManager.Me.HaveBuff(new Spell("NameOfTheSpell").Ids)
{
  // Wait follow path
  Thread.Sleep(100);
}

This is an example for the movement to a specified position. Hope it helps.

Edit: Aw droidz was faster :D

4 hours ago, Droidz said:

You can replace PressKey... by


wManager.Wow.Helpers.MovementManager.MoveTo(1, 2, 3);

 

It seems that it wants to work, but i think problem is now that since the condition is in combat that char wants to move and fight at the same time so you get a shakescreen.

Got it working now

This is how my code looks like.

 

wManager.Events.FightEvents.OnFightLoop += (unit, cancelable) =>
        {
           var pos = 1;
            var me = wManager.Wow.ObjectManager.ObjectManager.Me;
            var target = wManager.Wow.ObjectManager.ObjectManager.Target;
            if (me.IsAlive && target.IsAlive && pos == 1)
            {
Vector3 position = new Vector3(3073.848f, -3116.693f, 294.0692f);

// Move to the given position
MovementManager.Go(PathFinder.FindPath(position), false);

// Wait
while (MovementManager.InMovement && Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause)
{
  // Wait follow path
  Thread.Sleep(3000);
pos = 0;
}
            }
        };

Char runs in position and when in position it kept on trying to keep that position while in combat.

So to let it run once i added an extra var to it called 'pos' which i set to 1

After the 3sec he gets in position i change it to 0 so the if condition returns false.

You also could use this code:
 

// Wait
while (MovementManager.InMovement && Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && ObjectManager.Me.Position.DistanceTo(position) > 1)
{
  // Wait follow path                                                                                                                                         
  Thread.Sleep(100);
}

// Still moving?
if (MovementManager.InMovement)
{
  // Stop
  MovementManager.StopMove();
}

Edit: Oh nvm the problem is that you are using an event.

You could also could check if you are still at the right position with:
 

// Do we need to move?
if(ObjectManager.Me.Position.DistanceTo(position) > 1)
{
  // Move
}

 

11 hours ago, iMod said:

You also could use this code:
 


// Wait
while (MovementManager.InMovement && Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && ObjectManager.Me.Position.DistanceTo(position) > 1)
{
  // Wait follow path                                                                                                                                         
  Thread.Sleep(100);
}

// Still moving?
if (MovementManager.InMovement)
{
  // Stop
  MovementManager.StopMove();
}

Edit: Oh nvm the problem is that you are using an event.

You could also could check if you are still at the right position with:
 


// Do we need to move?
if(ObjectManager.Me.Position.DistanceTo(position) > 1)
{
  // Move
}

 

Is it possible to add an condition for a specific mob or boss

if (me.IsAlive && target.IsAlive && !me.IsCast && me.HaveBuff("Buff name"))

i want to add in this line a condition to only execute if fighting target (id) or (name)

  • 11 months later...

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...