Difference between revisions of "Cycle Inventory Items (CMS)"
From The Official Visionaire Studio: Adventure Game Engine Wiki
Line 3: | Line 3: | ||
! style="text-align:left" | Name !! style="text-align:left" | Type !! style="text-align:left" | By | ! style="text-align:left" | Name !! style="text-align:left" | Type !! style="text-align:left" | By | ||
|- | |- | ||
− | | | + | | Replace Item Function || Definition || AFRLme |
|} | |} | ||
− | This script allows you to | + | This script allows you to replace one item with another while keeping the items position in the inventory. This script is especially useful for when you are replacing a manipulated item such as an empty bucket that has just been filled with water. By default Visionaire Studio would add the new item to the end of the inventory. |
== Instructions == | == Instructions == | ||
1. Add the [[#Main_Script|main script]] to the Visionaire Studio Script Editor & set the script as a definition script.<br/> | 1. Add the [[#Main_Script|main script]] to the Visionaire Studio Script Editor & set the script as a definition script.<br/> | ||
− | 2. | + | 2. To use this function you have to include both the names of the item you want to replace, & the item that that you will be replacing it with; item names are case & character sensitive. |
− | |||
<syntaxhighlight> | <syntaxhighlight> | ||
− | + | replaceItem("empty_bucket", "bucket_of_water") | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 27: | Line 18: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
--[[ | --[[ | ||
− | + | Replace item function [v1] (31/05/2014) | |
Written by AFRLme [Lee Clarke] | Written by AFRLme [Lee Clarke] | ||
-- + -- | -- + -- | ||
Line 37: | Line 28: | ||
--]] | --]] | ||
− | -- * | + | -- * function for swapping 2 items while keeping the position of the current item * -- |
− | + | function replaceItem( init, repl ) | |
− | + | itm = {} -- creates an empty table | |
− | + | itm["_temporary_"] = "" -- set the table as temporary (we don't want it to store any data in the save files) | |
− | + | itm["gItm"] = game:getLinks(VGameItems) -- get all game items & store them in a table | |
− | + | itm["cItm"] = game:getLink(VGameCurrentCharacter):getLinks(VCharacterItems) -- get all character items & store them in a table | |
− | + | itm["rItm"] = nil | |
− | + | -- + -- | |
− | + | for i = 1, #(itm.gItm) do -- run a check to see if replacement item exists in game item table & if so, store item link in variable | |
− | + | if itm.gItm[i]:getName() == repl then itm["rItm"] = getObject("Game.GameItems[" .. repl .. "]") break end | |
− | -- | + | end |
− | + | -- + -- | |
− | + | for j = 1, #(itm.cItm) do -- if initial item exists and rItm is not empty then replace init item with replacement item | |
− | + | if itm.cItm[j]:getName() == init and itm.rItm ~= nil then itm.cItm[j] = itm.rItm break end | |
− | |||
− | |||
− | if | ||
− | |||
end | end | ||
+ | -- + -- | ||
+ | if itm.rItm ~= nil then game:getLink(VGameCurrentCharacter):setValue(VCharacterItems, itm.cItm) end -- update character items | ||
end | end | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 18:25, 31 May 2014
Name | Type | By |
---|---|---|
Replace Item Function | Definition | AFRLme |
This script allows you to replace one item with another while keeping the items position in the inventory. This script is especially useful for when you are replacing a manipulated item such as an empty bucket that has just been filled with water. By default Visionaire Studio would add the new item to the end of the inventory.
Instructions
1. Add the main script to the Visionaire Studio Script Editor & set the script as a definition script.
2. To use this function you have to include both the names of the item you want to replace, & the item that that you will be replacing it with; item names are case & character sensitive.
replaceItem("empty_bucket", "bucket_of_water")
Main Script
--[[
Replace item function [v1] (31/05/2014)
Written by AFRLme [Lee Clarke]
-- + --
alternatingfrequencies@hotmail.com | skype @ AFRLme
-- + --
This script is donation optional. In game credit is non-negotiable.
You are free to: ¹ use it in your game(s). ² modify the script.
Do not remove - or edit - this comment block.
--]]
-- * function for swapping 2 items while keeping the position of the current item * --
function replaceItem( init, repl )
itm = {} -- creates an empty table
itm["_temporary_"] = "" -- set the table as temporary (we don't want it to store any data in the save files)
itm["gItm"] = game:getLinks(VGameItems) -- get all game items & store them in a table
itm["cItm"] = game:getLink(VGameCurrentCharacter):getLinks(VCharacterItems) -- get all character items & store them in a table
itm["rItm"] = nil
-- + --
for i = 1, #(itm.gItm) do -- run a check to see if replacement item exists in game item table & if so, store item link in variable
if itm.gItm[i]:getName() == repl then itm["rItm"] = getObject("Game.GameItems[" .. repl .. "]") break end
end
-- + --
for j = 1, #(itm.cItm) do -- if initial item exists and rItm is not empty then replace init item with replacement item
if itm.cItm[j]:getName() == init and itm.rItm ~= nil then itm.cItm[j] = itm.rItm break end
end
-- + --
if itm.rItm ~= nil then game:getLink(VGameCurrentCharacter):setValue(VCharacterItems, itm.cItm) end -- update character items
end