public static void MoveItem(object item, object destination, int amount = -1) { int itemSerial = AliasCommands.ResolveSerial(item); if (itemSerial == 0) { UOC.SystemMessage(Strings.Invalid_or_unknown_object_id); return; } Item itemObj = Engine.Items.GetItem(itemSerial); if (itemObj == null) { UOC.SystemMessage(Strings.Invalid_or_unknown_object_id); return; } if (amount == -1) { amount = itemObj.Count; } int containerSerial = AliasCommands.ResolveSerial(destination); if (containerSerial == 0) { //TODO UOC.SystemMessage(Strings.Invalid_or_unknown_object_id); return; } UOC.DragDropAsync(itemSerial, amount, containerSerial).Wait(); }
public static void Feed(object obj, int graphic, int amount = 1, int hue = -1) { int serial = AliasCommands.ResolveSerial(obj); if (serial == 0) { UOC.SystemMessage(Strings.Invalid_or_unknown_object_id); return; } if (Engine.Player?.Backpack == null) { UOC.SystemMessage(Strings.Error__Cannot_find_player_backpack); return; } Item foodItem = Engine.Player.Backpack?.Container.SelectEntity(i => i.ID == graphic && (hue == -1 || i.Hue == hue)); if (foodItem == null) { UOC.SystemMessage(Strings.Cannot_find_item___); return; } UOC.DragDropAsync(foodItem.Serial, amount, serial).Wait(); }
public static void ClearHands(string hand = "both") { hand = hand.ToLower(); List <Layer> unequipLayers = new List <Layer>(); switch (hand) { case "left": unequipLayers.Add(Layer.OneHanded); break; case "right": unequipLayers.Add(Layer.TwoHanded); break; case "both": unequipLayers.Add(Layer.OneHanded); unequipLayers.Add(Layer.TwoHanded); break; default: throw new ArgumentOutOfRangeException(nameof(hand)); } PlayerMobile player = Engine.Player; List <int> serials = unequipLayers.Select(unequipLayer => Engine.Player.GetLayer(unequipLayer)) .Where(serial => serial != 0).ToList(); foreach (int serial in serials) { UOC.DragDropAsync(serial, 1, player.Backpack?.Serial ?? 0).Wait(); Thread.Sleep(Options.CurrentOptions.ActionDelayMS); } }