Jump to content

Conditional Additional C# code


Recommended Posts

Is there an "Additional C# Code" the will make the bot wait if your pet has the effect "Feed Pet Effect?" I have the bot feeding my pet finally, but it won't wait until for the buff's duration. I am using an addon to feed the Pet automatically. 

Link to comment
Share on other sites

Hello, try code like (not tested): 

    static Main()
    {
        robotManager.Events.FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState += delegate (Engine engine, State state, CancelEventArgs cancelable)
        {
            if (!string.IsNullOrWhiteSpace(state.DisplayName) && 
                state.DisplayName == "Regeneration" && 
                ObjectManager.Pet.IsValid &&
                ObjectManager.Pet.IsAlive &&
                ObjectManager.Pet.HaveBuff("Feed Pet Effect") &&
                !state.NeedToRun)
            {
                while (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause &&
                        !Conditions.IsAttackedAndCannotIgnore &&
                        ObjectManager.Pet.IsValid &&
                        ObjectManager.Pet.IsAlive &&
                        ObjectManager.Pet.HaveBuff("Feed Pet Effect"))
                {
                    Thread.Sleep(800);
                }
            }
        };
    }

 

Link to comment
Share on other sites

@Droidz

Is this how I would combine these two codes together? Or is that something that can't be done this way? 

static Main()
    {
        wManager.Events.FightEvents.OnFightLoop += (unit, cancelable) => {
            if (unit.IsValid && ObjectManager.Target.IsTargetingMyPet && ObjectManager.Target.GetDistance <= 12)
            {
                wManager.Wow.Helpers.Move.Backward(Move.MoveAction.PressKey, 2000);
            }                                                                                        
{
        robotManager.Events.FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState += delegate (Engine engine, State state, CancelEventArgs cancelable)
        {
            if (!string.IsNullOrWhiteSpace(state.DisplayName) && 
                state.DisplayName == "Regeneration" && 
                ObjectManager.Pet.IsValid &&
                ObjectManager.Pet.IsAlive &&
                ObjectManager.Pet.HaveBuff("Feed Pet Effect") &&
                !state.NeedToRun)
            {
                while (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause &&
                        !Conditions.IsAttackedAndCannotIgnore &&
                        ObjectManager.Pet.IsValid &&
                        ObjectManager.Pet.IsAlive &&
                        ObjectManager.Pet.HaveBuff("Feed Pet Effect"))
                {
                    Thread.Sleep(800);
                }
            };
}

 

Link to comment
Share on other sites

    static Main()
    {
        wManager.Events.FightEvents.OnFightLoop += (unit, cancelable) =>
        {
            if (unit.IsValid && ObjectManager.Target.IsTargetingMyPet && ObjectManager.Target.GetDistance <= 12)
            {
                wManager.Wow.Helpers.Move.Backward(Move.MoveAction.PressKey, 2000);
            }
        };

        robotManager.Events.FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState +=
            delegate (Engine engine, State state, CancelEventArgs cancelable)
            {
                if (!string.IsNullOrWhiteSpace(state.DisplayName) &&
                    state.DisplayName == "Regeneration" &&
                    ObjectManager.Pet.IsValid &&
                    ObjectManager.Pet.IsAlive &&
                    ObjectManager.Pet.HaveBuff("Feed Pet Effect") &&
                    !state.NeedToRun)
                {
                    while (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause &&
                           !Conditions.IsAttackedAndCannotIgnore &&
                           ObjectManager.Pet.IsValid &&
                           ObjectManager.Pet.IsAlive &&
                           ObjectManager.Pet.HaveBuff("Feed Pet Effect"))
                    {
                        Thread.Sleep(800);
                    }
                }
            };
    }

 

Link to comment
Share on other sites

So like this? I think I am understanding this a bit more know. I only know very little about #C from grade school like 12 years ago

 

static Main()
{
  wManager.Events.FightEvents.OnFightLoop += (unit, cancelable) =>
        {
            var me = wManager.Wow.ObjectManager.ObjectManager.Me;
            if (wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause &&
                unit.IsValid &&
                !me.IsCast &&
                unit.IsGoodInteractDistance) // put here your conditions to running backwards
            {
                var p = robotManager.Helpful.Math.GetPosition2DOfAngleAndDistance(me.Position, robotManager.Helpful.Math.GetAngle(unit.Position, me.Position), wManager.Wow.Helpers.CustomClass.GetRange - unit.GetDistance - 12);
                var z = wManager.Wow.Helpers.PathFinder.GetZPosition(p);
                if (z != 0)
                {
                    p.Z = z;
                    wManager.Wow.Bot.Tasks.GoToTask.ToPosition(p, 3.5f, true, context => (wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause));
                }
            }
        };
};

        robotManager.Events.FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState +=
            delegate (Engine engine, State state, CancelEventArgs cancelable)
            {
                if (!string.IsNullOrWhiteSpace(state.DisplayName) &&
                    state.DisplayName == "Regeneration" &&
                    ObjectManager.Pet.IsValid &&
                    ObjectManager.Pet.IsAlive &&
                    ObjectManager.Pet.HaveBuff("Feed Pet Effect") &&
                    !state.NeedToRun)
                {
                    while (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause &&
                           !Conditions.IsAttackedAndCannotIgnore &&
                           ObjectManager.Pet.IsValid &&
                           ObjectManager.Pet.IsAlive &&
                           ObjectManager.Pet.HaveBuff("Feed Pet Effect"))
                    {
                        Thread.Sleep(800);
                    }
                }
            };
    }

 

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