Difference between revisions of "Global Command Checker (CMS)"
(→Instructions) |
|||
Line 16: | Line 16: | ||
local t = {"close", "examine", "give", "open", "pick_up", "pull", "push", "talk", "use"} | local t = {"close", "examine", "give", "open", "pick_up", "pull", "push", "talk", "use"} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 3a. Inside of the '''condition''' tab of your your command interface, create a condition for each command you have created; the names should reflect the names given to the interface buttons & those of the table.<br/> | |
− | + | 3b. Add "_cond" prefix to the end of each of the conditions you just created; like so... | |
<pre>use_cond | <pre>use_cond | ||
talk_cond | talk_cond | ||
etc...</pre> | etc...</pre> | ||
− | + | 4. On mouse over for each object, item & character, create an ''execute a script'' action containing... | |
<syntaxhighlight> | <syntaxhighlight> | ||
checkObjCmd() | checkObjCmd() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 5. On mouse out for each object, character & item, create an ''execute a script'' action containing... | |
<syntaxhighlight> | <syntaxhighlight> | ||
resetCmdCond() | resetCmdCond() | ||
− | </syntaxhighlight> | + | </syntaxhighlight> |
== Main Script == | == Main Script == |
Revision as of 18:39, 17 March 2014
Name | Type | By |
---|---|---|
Global Command Checker | Definition | AFRLme |
This script allows you to check which commands can be executed on each object, item or character. This script was made with the coin interface in mind.
* The content below is a temporary placeholder - the current version of the main script has not yet been tested! *
Instructions
1. Add the main script to the Visionaire Studio Script Editor & set the script as a definition script.
2. Replace the strings inside of the t table with the name of your commands; the order is not important, but the names are case sensitive.
local t = {"close", "examine", "give", "open", "pick_up", "pull", "push", "talk", "use"}
3a. Inside of the condition tab of your your command interface, create a condition for each command you have created; the names should reflect the names given to the interface buttons & those of the table.
3b. Add "_cond" prefix to the end of each of the conditions you just created; like so...
use_cond talk_cond etc...
4. On mouse over for each object, item & character, create an execute a script action containing...
checkObjCmd()
5. On mouse out for each object, character & item, create an execute a script action containing...
resetCmdCond()
Main Script
--[[
Global Command Checker [v6] (17/03/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.
--]]
-- * local variables * --
local cmd -- empty variables...
-- * tables * --
local t = {"close", "examine", "give", "open", "pick_up", "pull", "push", "talk", "use"} -- add command/condition names here (should both have same name)
-- * let's create the function which will determine what type of object is currently underneath the mouse cursor * --
function checkObjCmd()
cmd = game:getLink(VGameSavedObject) -- store the object underneath the cursor
-- * --
if cmd:getId().tableId == eCharacters then cmd = cmd:getLinks(VCharacterActions) else cmd = cmd:getLinks(VObjectActions) end
for i=1, table.maxn(cmd) do getCmdCond(i) end -- for each command listed in the table check if condition exists...
end
-- * let's create the function which determines if command equals one of the stored conditions & sets condition accordingly * --
function getCmdCond(val)
for i=1, table.maxn(t) do
if cmd[val]:getName() == "'" .. t[i] .. "' executed" or cmd[val]:getName() == "'" .. t[i] .. "' executed (immediate)" then getObject("Conditions[" .. t[i] .. "_cond]"):setValue(VConditionValue, true) end
end
end
-- * let's create the condition for on mouse out which checks which conditions are true & resets them back to false * --
function resetCmdCond()
for i=1, table.maxn(t) do
if getObject("Conditions[" .. t[i] .."_cond]"):getBool(VConditionValue) then getObject("Conditions[" .. t[i] .. "_cond]"):setValue(VConditionValue, false) end
end
end