Cycle Inventory Items (CMS)

From The Official Visionaire Studio: Adventure Game Engine Wiki
Revision as of 15:15, 12 February 2014 by AFRLme (talk) (Created page with "{| class="wikitable" style="width:100%" |- ! style="text-align:left" | Name !! style="text-align:left" | Type !! style="text-align:left" | By |- | Cycle Inventory Items || Def...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Name Type By
Cycle Inventory Items Definition AFRLme

This script allows you to cycle through the items in your inventory system.

Main Script

--[[
Cycle inventory items by ascending or descending order (v2) [12/02/2014]
Written by AFRLme
-- + --
alternatingfrequencies@hotmail.com | skype @ AFRLme
--]]

-- * local variables * --
local char, items, item, amt -- empty variables
local slots = 0 -- define inventory slot amount here
local cycle = false -- false = only cycle inventory when item amount equals same as or more than inventory slots. true = always cycle

-- * function for changing cycle mode * --
function toggleCycleMode()
 if cycle then cycle = false else cycle = true end
end

-- * function for cycling through the inventory items * --
function cycleItems(asc)
 char = game:getLink(VGameCurrentCharacter) -- store current character
 items = char:getLinks(VCharacterItems) -- store inventory items into a table
 amt = table.maxn(items) -- get index number of last item
 if cycle or amt >= slots then
  if asc then item = items[amt]; table.remove(items, amt); table.insert(items, 1, item) else item = items[1]; table.remove(items, 1); table.insert(items, (table.maxn(items)+1), item) end
  char:setValue(VCharacterItems, items) -- update the inventory
 end
end

Instructions

1. Add the main script to the Visionaire Studio Script Editor & set the script as a definition script.
2. Edit the slots = 0 value inside of the script to the amount of inventory slots you added to your interface.
3. By default the script will only allow you to cycle the inventory items when the amount of items in the inventory equals the same or greater than the amount of inventory slots. You can toggle between the default mode & always cycle by creating an execute a script action containing:

toggleCycleMode()

4. To cycle inventory items forward (ascending) you should create an execute a script action containing:

cycleItems(true)

5. To cycle inventory items backwards (descending) you should create an execute a script action containing:

cycleItems(false)