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 11/8/2016 at 4: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)

Expand  

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

  On 1/10/2017 at 2:18 PM, Fableonian said:

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

Expand  
// 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

  On 1/10/2017 at 3:14 PM, Droidz said:

You can replace PressKey... by

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

 

Expand  

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
}

 

  On 1/11/2017 at 8:55 AM, 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
}

 

Expand  

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