diff --git a/Core/Commands/Movement/AutoPilot.cs b/Core/Commands/Movement/AutoPilot.cs new file mode 100644 index 0000000..d491b01 --- /dev/null +++ b/Core/Commands/Movement/AutoPilot.cs @@ -0,0 +1,57 @@ +using System; +using OpenMetaverse; +using BetterSecondBotShared.Static; +using System.Runtime.CompilerServices; +using System.Threading; + +namespace BSB.Commands.Movement +{ + public class AutoPilot : CoreCommand_1arg + { + public override string[] ArgTypes { get { return new[] { "Vector" }; } } + public override string[] ArgHints { get { return new[] { "<0,0,0>" }; } } + public override string Helpfile { get { return "Make the bot auto pilot to
Example AutoPilot|||<124,55,22>"; } } + public override bool CallFunction(string[] args) + { + if (base.CallFunction(args) == true) + { + if (Vector3.TryParse(args[0], out Vector3 pos) == true) + { + if (helpers.inrange(pos.X, 0, 255) == true) + { + if (helpers.inrange(pos.Y, 0, 255) == true) + { + if (helpers.inrange(pos.Z, 0, 5000) == true) + { + bot.GetClient.Self.Movement.TurnToward(pos, true); + Thread.Sleep(500); + uint Globalx, Globaly; + Utils.LongToUInts(bot.GetClient.Network.CurrentSim.Handle, out Globalx, out Globaly); + bot.GetClient.Self.AutoPilot((ulong)(Globalx + pos.X), (ulong)(Globaly + pos.Y), pos.Z); + return true; + } + else + { + return Failed("Z cord is out of range"); + } + } + else + { + return Failed("Y cord is out of range"); + } + } + else + { + return Failed("X cord is out of range"); + } + } + else + { + return Failed("Unable to process vector"); + } + } + return false; + } + } + +} diff --git a/Core/Commands/Movement/AutoPilotLocal.cs b/Core/Commands/Movement/AutoPilotLocal.cs deleted file mode 100644 index 02e5cca..0000000 --- a/Core/Commands/Movement/AutoPilotLocal.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using OpenMetaverse; -using BetterSecondBotShared.Static; -using System.Runtime.CompilerServices; -using System.Threading; - -namespace BSB.Commands.Movement -{ - public class AutoPilotLocal : CoreCommand_1arg - { - public override string[] ArgTypes { get { return new[] { "Mixed","Number","number" }; } } - public override string[] ArgHints { get { return new[] { "Vector [OR] 0 to 255", "0 to 255","0 to 5000" }; } } - public override string Helpfile { get { return "Make the bot auto pilot to X,Y,Z
Example AutoPilotLocal|||<124,55,22>"; } } - public override bool CallFunction(string[] args) - { - if (base.CallFunction(args) == true) - { - bool ok = false; - int x = 0; - int y = 0; - float z = 0; - if (args.Length == 3) - { - if (int.TryParse(args[0], out x) == true) - { - if (int.TryParse(args[1], out y) == true) - { - if (float.TryParse(args[2], out z) == true) - { - ok = true; - } - else - { - return Failed("Unable to process Z cord"); - } - } - else - { - return Failed("Unable to process Y cord"); - } - } - else - { - return Failed("Unable to process X cord"); - } - } - else if (args.Length == 1) - { - if (Vector3.TryParse(args[0], out Vector3 pos) == true) - { - x = (int)Math.Round(pos.X); - y = (int)Math.Round(pos.Y); - z = pos.Z; - ok = true; - } - else - { - return Failed("Unable to process vector"); - } - } - if (ok == true) - { - if (helpers.inrange(x, 0, 255) == true) - { - if (helpers.inrange(y, 0, 255) == true) - { - if (helpers.inrange(z, 0, 5000) == true) - { - bot.GetClient.Self.Movement.TurnToward(new Vector3(x,y,z), true); - Thread.Sleep(500); - bot.GetClient.Self.AutoPilotLocal(x, y, z); - return true; - } - else - { - return Failed("Z cord is out of range"); - } - } - else - { - return Failed("Y cord is out of range"); - } - } - else - { - return Failed("X cord is out of range"); - } - } - else - { - return Failed("Unknown issue"); - } - } - return false; - } - } - -}