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);
}
}
};
}