Difference between revisions of "Dynamic Action Names for Dragged Items (CMS)"
From The Official Visionaire Studio: Adventure Game Engine Wiki
Line 10: | Line 10: | ||
== 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. Add/Remove language tables to/from the ''main script''; as required.< | + | 2. Add/Remove language tables to/from the ''main script''; as required.<br/> |
− | 3. Edit the string values inside of the language tables; as required. | + | 3. Edit the string values inside of the language tables; as required.<br/> |
− | 4. Create a new ''Value'' called '''conjunction_class'''. | + | 4. Create a new ''Value'' called '''conjunction_class'''.<br/> |
5. On mouse enter for each object/character/item, set '''conjunction_class''' value; as required. | 5. On mouse enter for each object/character/item, set '''conjunction_class''' value; as required. | ||
Revision as of 20:12, 20 February 2014
Name | Type | By |
---|---|---|
Dynamic Action Names for Dragged Items | Definition | AFRLme |
This script allows you to create dynamic action words to place before & after the item name. For example: "Give money to Barkeep" or "Combine glass with whiskey", etc...
Instructions
1. Add the main script to the Visionaire Studio Script Editor & set the script as a definition script.
2. Add/Remove language tables to/from the main script; as required.
3. Edit the string values inside of the language tables; as required.
4. Create a new Value called conjunction_class.
5. On mouse enter for each object/character/item, set conjunction_class value; as required.
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