public override CmdResult ExecuteRequest(CmdRequest args) { bool moveInsteadOfCopy = args.IsTrue("--move"); if (!args.ContainsKey("items") || !args.ContainsKey("to")) { return ShowUsage(); } int argsUsed; List<SimObject> allTargets; if (!args.TryGetValue("to", out allTargets)) { return Failure("Cannot find avatar/objects 'to' give to"); } Success("Going to give to " + allTargets.Count + " avatar/objects"); var man = Client.BotInventory; var found = man.FindAll(args.GetProperty("items"), false, inventoryName => Failure("No inventory item named " + inventoryName + " found.")); int given = 0; foreach (var dest in allTargets) { foreach (InventoryBase item in found) { GiveAll(man, item, dest, moveInsteadOfCopy); } } return SuccessOrFailure(); }
public override CmdResult ExecuteRequest(CmdRequest args) { bool moveInsteadOfCopy = args.IsTrue("--move"); if (!args.ContainsKey("items") || !args.ContainsKey("to")) { return(ShowUsage()); } int argsUsed; List <SimObject> allTargets; if (!args.TryGetValue("to", out allTargets)) { return(Failure("Cannot find avatar/objects 'to' give to")); } Success("Going to give to " + allTargets.Count + " avatar/objects"); var man = Client.BotInventory; var found = man.FindAll(args.GetProperty("items"), false, inventoryName => Failure("No inventory item named " + inventoryName + " found.")); int given = 0; foreach (var dest in allTargets) { foreach (InventoryBase item in found) { GiveAll(man, item, dest, moveInsteadOfCopy); } } return(SuccessOrFailure()); }
public static CmdResult ExecuteRequestProc(CmdRequest args, Command cmd) { if (!args.ContainsKey("to")) { args.SetValue("to", "verb"); } ; if (!cmd.Client.IsLoggedInAndReady) { return(cmd.Failure("Not yet logged in!")); } var TheSimAvatar = cmd.WorldSystem.TheSimAvatar; if (TheSimAvatar.IsSitting && !TheSimAvatar.IsDrivingVehical) { cmd.WriteLine("$bot is standing up before moving."); TheSimAvatar.StandUp(); // WriteLine("$bot is sitting, Please stand up to move."); } SimPosition position; if (!args.TryGetValue("to", out position)) { return(cmd.Failure("I don't understand how to move " + args.str)); } if (position == null) { return(cmd.Failure("Coulnd not resolve location: " + args.str)); } if (!position.IsRegionAttached) { return(cmd.Failure("!IsRegionAttached: " + position)); } if (position.SimPosition == Vector3.Zero) { return(cmd.Failure("SimPosition.Zero: " + position)); } Vector3d delta0 = position.GlobalPosition - TheSimAvatar.GlobalPosition; Vector3 delta = new Vector3((float)delta0.X, (float)delta0.Y, (float)delta0.Z); float fnd; if (args.TryGetValue("dist", out fnd)) { delta.Normalize(); delta = delta * fnd; position = new SimOffsetPosition(TheSimAvatar, delta); } MovementProceedure proc; bool salientProc = args.TryGetValue("sproc", out proc); if (salientProc) { TheSimAvatar.SalientMovementProceedure = proc; } if (args.TryGetValue("proc", out proc)) { TheSimAvatar.SimpleMoveToMovementProceedure = proc; } Vector3d g = position.GlobalPosition; TheSimAvatar.SetClient(cmd.TheBotClient); if (salientProc) { return(cmd.Result(string.Format("SalientGoto: {0},{1},{2}", position, g, position.SimPosition), TheSimAvatar.SalientGoto(position))); } else { TheSimAvatar.SetMoveTarget(position, position.GetSizeDistance()); } //Client.Self.AutoPilot(g.X, g.Y, g.Z); // MoveThread = new Thread(MoveProc); return(cmd.Success(string.Format("SetMoveTarget: {0},{1},{2}", position, g, position.SimPosition))); }
public static CmdResult ExecuteRequestProc(CmdRequest args, Command cmd) { if (!args.ContainsKey("to")) args.SetValue("to", "verb"); ; if (!cmd.Client.IsLoggedInAndReady) { return cmd.Failure("Not yet logged in!"); } var TheSimAvatar = cmd.WorldSystem.TheSimAvatar; if (TheSimAvatar.IsSitting && !TheSimAvatar.IsDrivingVehical) { cmd.WriteLine("$bot is standing up before moving."); TheSimAvatar.StandUp(); // WriteLine("$bot is sitting, Please stand up to move."); } SimPosition position; if (!args.TryGetValue("to", out position)) { return cmd.Failure("I don't understand how to move " + args.str); } if (position == null) { return cmd.Failure("Coulnd not resolve location: " + args.str); } if (!position.IsRegionAttached) { return cmd.Failure("!IsRegionAttached: " + position); } if (position.SimPosition == Vector3.Zero) { return cmd.Failure("SimPosition.Zero: " + position); } Vector3d delta0 = position.GlobalPosition - TheSimAvatar.GlobalPosition; Vector3 delta = new Vector3((float) delta0.X, (float) delta0.Y, (float) delta0.Z); float fnd; if (args.TryGetValue("dist", out fnd)) { delta.Normalize(); delta = delta*fnd; position = new SimOffsetPosition(TheSimAvatar, delta); } MovementProceedure proc; bool salientProc = args.TryGetValue("sproc", out proc); if (salientProc) { TheSimAvatar.SalientMovementProceedure = proc; } if (args.TryGetValue("proc", out proc)) { TheSimAvatar.SimpleMoveToMovementProceedure = proc; } Vector3d g = position.GlobalPosition; TheSimAvatar.SetClient(cmd.TheBotClient); if (salientProc) { return cmd.Result(string.Format("SalientGoto: {0},{1},{2}", position, g, position.SimPosition), TheSimAvatar.SalientGoto(position)); } else { TheSimAvatar.SetMoveTarget(position, position.GetSizeDistance()); } //Client.Self.AutoPilot(g.X, g.Y, g.Z); // MoveThread = new Thread(MoveProc); return cmd.Success(string.Format("SetMoveTarget: {0},{1},{2}", position, g, position.SimPosition)); }