Difference between revisions of "Dynamic Action Names for Dragged Items (CMS)"

From The Official Visionaire Studio: Adventure Game Engine Wiki
(Created page with "<syntaxhighlight> --[[ Global action name for dragged items (v1) [17/02/2014] Written by AFRLme -- + -- alternatingfrequencies@hotmail.com | skype @ AFRLme --]] -- * local va...")
 
Line 1: Line 1:
 +
{| class="wikitable" style="width:100%"
 +
|-
 +
! style="text-align:left" | Name !! style="text-align:left" | Type !! style="text-align:left" | By
 +
|-
 +
| Organize Inventory Items Alphabetically || Definition || AFRLme
 +
|}
 +
 +
This script allows you to organize your inventory items alphabetically in either ascending or descending order.
 +
 +
== Instructions ==
 +
1. Add the [[#Main_Script|main script]] to the Visionaire Studio Script Editor & set the script as a definition script.<br/>
 +
2. To organize the inventory items by ascending order, you should create an ''execute a script'' action containing:
 +
<syntaxhighlight>
 +
arrangeItems(true)
 +
</syntaxhighlight>
 +
3. To organize the inventory items by descending order, you should create an ''execute a script'' action containing:
 +
<syntaxhighlight>
 +
arrangeItems(false)
 +
</syntaxhighlight>
 +
 +
== Main Script ==
 
<syntaxhighlight>
 
<syntaxhighlight>
 
--[[
 
--[[
Global action name for dragged items (v1) [17/02/2014]
+
Dynamic action names for dragged items (v2) [20/02/2014]
 
Written by AFRLme
 
Written by AFRLme
 
-- + --
 
-- + --
Line 38: Line 59:
 
   for i = 1, table.maxn(new) do table.insert(old, new[i]:getStr(VTextLanguageText))  end -- insert string names of table above
 
   for i = 1, table.maxn(new) do table.insert(old, new[i]:getStr(VTextLanguageText))  end -- insert string names of table above
 
   -- + --
 
   -- + --
   for i = 1, table.maxn(new) do if new[i]:getLink(VTextLanguageLanguage):getName() == lang then new[i]:setValue(VTextLanguageText, iw[lang][val] .. item .. cj[lang][val] .. old[i]) end end -- update object name with action text (initial word, item, conjunction word, object)
+
   for i = 1, table.maxn(new) do if new[i]:getLink(VTextLanguageLanguage):getName() == lang then new[i]:setValue(VTextLanguageText, iw[lang][val] .. item .. cj[lang][val] .. old[i]) end end -- update object name with action text (initial word, item, conjunction word, target)
 
  end   
 
  end   
 
end
 
end
Line 47: Line 68:
 
end
 
end
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
{{i18n|Dynamic_Action_Names_for_Dragged_Items_(CMS)}}

Revision as of 20:08, 20 February 2014

Name Type By
Organize Inventory Items Alphabetically Definition AFRLme

This script allows you to organize your inventory items alphabetically in either ascending or descending order.

Instructions

1. Add the main script to the Visionaire Studio Script Editor & set the script as a definition script.
2. To organize the inventory items by ascending order, you should create an execute a script action containing:

arrangeItems(true)

3. To organize the inventory items by descending order, you should create an execute a script action containing:

arrangeItems(false)

Main Script

--[[
Dynamic action names for dragged items (v2) [20/02/2014]
Written by AFRLme
-- + --
alternatingfrequencies@hotmail.com | skype @ AFRLme
--]]

-- * local variables * --
local item, txt, current, lang, old, new, iw, cj, val  -- empty variables

-- * tables * --
old = {} -- table which will contain original item names
new = {} -- table which will contain updated names
iw = {} -- initial word table
iw["English"] = {"Use ", "Give ", "Show ", "Combine "}
iw["French"] = {"Usage ", "Donner ", "Montrer ", "Combiner "}
iw["German"] = {"Benutzen ", "Geben ", "Zeigen ", "Kombinieren "}
iw["Spanish"] = {"Usar ", "Dar ", "Mostrar ", "Combinar "}
cj = {} -- conjunction word
cj["English"] = {" on ", " to ", " to ", " with "}
cj["French"] = {" en ", " à ", " à ", " avec "}
cj["German"] = {" auf ", " zu ", " zu ", " mit "}
cj["Spanish"] = {" en ", " a ", " a ", " con "}

-- * function for udating object name with action text * --
function itemActionName()
 item = game:getLink(VGameUsedItem) -- get currently held item
 current = game:getLink(VGameCurrentObject) -- get current object (under cursor)
 lang = game:getLink(VGameStandardLanguage):getName() -- get current game language
 val = getObject("Values[conjunction_class]"):getInt(VValueInt) -- get conjunction class value
 -- + --
 if not item:isEmpty() then -- if held item exists then...
  txt = item:getLink(VObjectName):getLinks(VTextAll) -- get all texts for the held item
  for i = 1, table.maxn(txt) do if txt[i]:getLink(VTextLanguageLanguage):getName() == lang then item = txt[i]:getStr(VTextLanguageText) end end -- store item name
  -- + --
  new = current:getLink(VObjectName):getLinks(VTextAll) -- get all texts for the object under cursor
  for i = 1, table.maxn(new) do table.insert(old, new[i]:getStr(VTextLanguageText))  end -- insert string names of table above
  -- + --
  for i = 1, table.maxn(new) do if new[i]:getLink(VTextLanguageLanguage):getName() == lang then new[i]:setValue(VTextLanguageText, iw[lang][val] .. item .. cj[lang][val] .. old[i]) end end -- update object name with action text (initial word, item, conjunction word, target)
 end  
end

-- * function for resetting object name back to original name * --
function resetItemActionName()
  for i = 1, table.maxn(new) do new[i]:setValue(VTextLanguageText, old[i]) end -- reset all text (for each language) back to original text...
end