Inventory
Methods to interact with the inventory.
Inventory.IsOpen
function TRSInventory.IsOpen(): Boolean;
Returns true if the inventory gametab is open, false if it’s not.
Example
WriteLn Inventory.IsOpen();
Inventory.Open
function TRSInventory.Open(): Boolean;
Attempts to open the inventory, returns true if it succeeds.
Example
WriteLn Inventory.Open();
Inventory.GetSlotBoxes
function TRSInventory.GetSlotBoxes(): TBoxArray;
Mainly used internally by TRSInventory methods. This function is used to return a TBoxArray of the inventory slots.
Example
Debug(Inventory.GetSlotBoxes());
Inventory.GetSlotBox
function TRSInventory.GetSlotBox(): TBox;
Mainly used internally by TRSInventory methods. This function is used to return a TBox of the specified inventory slot.
Example
Debug(Inventory.GetSlotBox(5));
Inventory.PointToSlot
function TRSInventory.PointToSlot(P: TPoint): Int32;
Returns the inventory slot index which contains the TPoint P. Returns -1 if the point does not fall in any slots.
Example
var P: TPoint;
var Slot: Int32;
P := Inventory.GetSlotBox(15).Middle; // Example point
Slot := Inventory.PointToSlot(P);
WriteLn(Slot); // 15
Inventory.HoverSlot
function TRSInventory.HoverSlot(Slot: Int32): Boolean;
Moves the mouse over the slot. Slot is an Integer between 0 and 27.
Example
if Inventory.HoverSlot(1) then
WriteLn('Mouse is now over slot #1');
Inventory.ClickSlot
function TRSInventory.ClickSlot(Slot: Int32; Option: String = ''): Boolean;
Moves the mouse and clicks on the slot. Slot is an Integer between 0 and 27.
If option is empty the slot is left clicked. Else a right click is performed and the option is selected from the choose option menu.
Example
if Inventory.ClickSlot(1) then
WriteLn('Left clicked slot #1');
if Inventory.ClickSlot(1, 'Drop') then
WriteLn('Right clicked and selected "Drop" on slot #1', 'Drop');
Inventory.IsSlotSelected
function TRSInventory.IsSlotSelected(Slot: Int32): Boolean;
Returns True if the slot is selected (white outline).
Example
if Inventory.IsSlotSelected(1) then
WriteLn('Slot 1 is selected!');
Inventory.GetSelectedSlot
function TRSInventory.GetSelectedSlot: Int32;
Returns the index of the selected slot (white outline). -1 is returned if no slot is selected.
Example
WriteLn(Inventory.GetSelectedSlot());
Inventory.SetSelectedSlot
function TRSInventory.SetSelectedSlot(Slot: Int32): Boolean;
Set the slot as selected (white outline). Slot can be -1 to unselect the currently selected slot.
Example
WriteLn(Inventory.GetSelectedSlot());
Inventory.Use
function TRSInventory.Use(Slot, OtherSlot: Int32): Boolean;
Selects Slot and uses with OtherSlot.
Example
Inventory.Use(1, 5); // Use item in slot 1 on Item in slot 5
Inventory.RandomPattern
function TRSInventory.RandomPattern(): TIntegerArray;
Returns a random inventory pattern.
Example
Inventory.ShiftDrop(Inventory.RandomPattern());
Inventory.ErrorPattern
function TRSInventory.ErrorPattern(Pattern: TIntegerArray=DROP_PATTERN_REGULAR; ErrorChance:Int32=5): TIntegerArray;
Returns the passed in pattern slightly modified.
Example
Inventory.ShiftDrop(Iventory.ErrorPattern(Inventory.RandomPattern()));
Inventory.ShiftDrop
function TRSInventory.ShiftDrop(Slots: TIntegerArray): Boolean;
Shift drops the inventory items in the pattern specified.
Example
Inventory.ShiftDrop(DROP_PATTERN_REGULAR);
Inventory.Count
function TRSInventory.Count(): Int32;
Counts how many items are in the inventory right now.
Example
WriteLn Inventory.Count();
Inventory.IsFull
function TRSInventory.IsFull(): Boolean;
Returns true if the inventory is full.
Example
WriteLn Inventory.IsFull();
Inventory.WaitCount
function TRSInventory.WaitCount(Count: Int32; WaitTime: Int32; Interval: Int32 = -1): Boolean;
Wait WaitTime until the Inventory.Count() matches Count.
Example
Inventory.WaitCount(28, 5000); //Wait up to 5 seconds to have 28 items in the inventory.
Inventory.RandomSlotNearby
function TRSInventory.RandomSlotNearby(Slot: Int32; Slots: TIntegerArray): Int32;
Randomly returns one of the Slots weighted towards Slot by distance.
Example
var Slot: Int32;
Slot := Inventory.RandomSlotNearby(0, [0..27]);
WriteLn('This slot is likely nearby slot 0');
WriteLn(Slot);
Inventory.FindItems
function TRSInventory.FindItems(Items: TRSItemArray; out Slots: TIntegerArray): Boolean;
Attempts to find the items passed in Items. The function returns true if any item is found and the slots of the found items will be returned in Slots.
Example
Inventory.FindItem
function TRSInventory.FindItem(Item: TRSItem; out Slots: TIntegerArray): Boolean;
function TRSInventory.FindItem(item: TRSItem; out slot: Int32): Boolean; overload;
Attempts to find the item passed in Item. The function returns true if the item was found can be used to return a single slot or all slots containing the item.
Example
Inventory.ContainsAny
function TRSInventory.ContainsAny(items: TRSItemArray): Boolean;
Returns true if the inventory contains any of the items passed in items. It’s the same as TRSInventory.FindItems() but without requiring a Slots parameter.
Example
WriteLn Inventory.ContainsAny(['Shark', 'Lobster']);
Inventory.ContainsItem
function TRSInventory.ContainsItem(item: TRSItem): Boolean;
Returns true if the inventory contains the item passed in item. Same as TRSInventory.FindItem() but without requiring Slots or slot parameter.
Example
WriteLn Inventory.ContainsItem('Shark');
Inventory.ContainsAll
function TRSInventory.ContainsAll(items: TRSItemArray): Boolean;
Returns true if the inventory contains all items passed in items.
Example
WriteLn Inventory.ContainsAll('Shark');
Inventory.CountItem
function TRSInventory.CountItem(Item: TRSItem): Int32;
Returns the amount of Item in the inventory. Keep in mind this does not count a stack number, but every single item that occupies an inventory slot.
Example
WriteLn Inventory.CountItem('Shark');
Inventory.CountItemStack
function TRSInventory.CountItemStack(Item: TRSItem): Int32;
Returns the stack amount of Item in the inventory.
Example
WriteLn Inventory.CountItemStack('Bronze arrows'); //will print the stack amount
WriteLn Inventory.CountItemStack('Shark'); //will print 0 because sharks are not stackable.
Inventory.CountStack
function TRSInventory.CountStack(Slot: Int32): Int32;
Returns the stack amount found in the given inventory slot.
Example
WriteLn Inventory.CountStack(0); //will print the stack amount of inventory slot 0
Inventory.HoverItem
function TRSInventory.HoverItem(Item: TRSItem): Boolean;
Hover Item in the inventory.
Example
if Inventory.HoverItem('Bronze arrows') then
ChooseOption.Select('Drop');
Inventory.ClickItem
function TRSInventory.ClickItem(Item: TRSItem; Option: String = ''): Boolean;
Clicks Item in the inventory. If Option is specified that option will be selected with right click if it exists.
Example
WriteLn Inventory.ClickItem('Attack potion(3)');
WriteLn Inventory.ClickItem('Ashes', 'Drop');
Inventory.Use
function TRSInventory.Use(Item, OtherItem: TRSItem): Boolean; overload;
Use one item on another
Example
WriteLn Inventory.Use('Knife', 'Oak logs');
Inventory.ShiftDrop
function TRSInventory.ShiftDrop(Items: TStringArray; Pattern: TIntegerArray): Boolean;
Shift drops items following the desired pattern.
Example
// Shift drop maple & willow logs in the snake pattern
Inventory.ShiftDrop(['Maple logs', 'Willow logs'], DROP_PATTERN_SNAKE);