Difference between revisions of "Prevent Video and Cutscene Skipping (h2)"

From The Official Visionaire Studio: Adventure Game Engine Wiki
m
m
Line 18: Line 18:
 
2. Next you need to create a '''definition script''' containing a '''registerEventHandler''' for '''keyEvents''' - if you don't already have one. ''Quick note: you are only allowed one registerEventHandler type per game - the only exception to this rule is the mainLoop handler''.
 
2. Next you need to create a '''definition script''' containing a '''registerEventHandler''' for '''keyEvents''' - if you don't already have one. ''Quick note: you are only allowed one registerEventHandler type per game - the only exception to this rule is the mainLoop handler''.
  
Here is an example (taken from the registerEventHandler examples) of the key event handler...
+
Here is a quick example of the key event handler...
 
<syntaxhighlight>
 
<syntaxhighlight>
 +
-- the function that is used to handle key events
 
function keyboardHandler(eventType, character, keycode, modifiers)
 
function keyboardHandler(eventType, character, keycode, modifiers)
   if eventType==eEvtKeyUp then
+
   if eventType==eEvtKeyUp then -- on key released
    print('key up: ' .. keycode)
+
  print("key released: " .. character) -- prints released key name
    -- test for '0' with character parameter
+
   elseif eventType==eEvtKeyDown then -- key down/hold (will loop code below while held)
    if character == '0' then print('0 released') end
+
     print("key pressed: " .. character) -- print pressed key name
    -- another option to test '0' key
+
   elseif eventType==eEvtKeyTextInput then -- special characters (language characters, quotation marks etc - key down/pressed only)
    if keycode == 48 then print('0 released') end
+
     print("input: " .. character) -- print special character name
   elseif eventType==eEvtKeyDown then
 
     print('key down: ' .. keycode)
 
   elseif eventType==eEvtKeyTextInput then
 
    -- this will also show more 'complex' unicode characters when multiple keys are used to generate a single character (e.g. Chinese characters)
 
     print('input: ' .. character)
 
 
   end
 
   end
  if keycode == eKeyEscape then
+
   return false
    -- event will not be handled by engine. this means that also cutscenes can't be skipped with Escape key
 
    return true
 
  end
 
   return false -- key event will also be handled by engine
 
 
end
 
end
 
   
 
   
registerEventHandler("keyEvent", "keyboardHandler")
+
registerEventHandler("keyEvent", "keyboardHandler") -- the line that creates the keyEvent listener
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 52: Line 44:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
function keyboardHandler(eventType, character, keycode, modifiers)
 
function keyboardHandler(eventType, character, keycode, modifiers)
  if Conditions["cond_skip_cv"].ConditionValue == false and keycode == eKeyEscape then return true end
+
if Conditions["cond_skip_cv"].ConditionValue == false and keycode == eKeyEscape then return true end
  return false
+
return false
 
end
 
end
 
   
 
   

Revision as of 13:56, 2 November 2014

Name By
Prevent Skipping of Videos/Cutscenes AFRLme


This tutorial shows you how to prevent the player from being able to skip videos &/or cutscenes. Visionaire Studio 4.1+ is required for this to work.


Tutorial

Preventing skipping of videos &/or cutscenes is actually very simple. All you need is 1 condition & an event handler that listens out for the ESC key. So let's begin...

1. You should start off by creating a condition somewhere & naming it cond_skip_cv & set it to false by default if you want to prevent players from being allowed to skip videos on game start; else set condition to true.

2. Next you need to create a definition script containing a registerEventHandler for keyEvents - if you don't already have one. Quick note: you are only allowed one registerEventHandler type per game - the only exception to this rule is the mainLoop handler.

Here is a quick example of the key event handler...

-- the function that is used to handle key events
function keyboardHandler(eventType, character, keycode, modifiers)
  if eventType==eEvtKeyUp then -- on key released
   print("key released: " .. character) -- prints released key name
  elseif eventType==eEvtKeyDown then -- key down/hold (will loop code below while held)
    print("key pressed: " .. character) -- print pressed key name
  elseif eventType==eEvtKeyTextInput then -- special characters (language characters, quotation marks etc - key down/pressed only)
    print("input: " .. character) -- print special character name
  end
  return false
end
 
registerEventHandler("keyEvent", "keyboardHandler") -- the line that creates the keyEvent listener

3. You need to add this line to your keyEvent handler...

if Conditions["cond_skip_cv"].ConditionValue == false and keycode == eKeyEscape then return true end

...It tells the keyEvent handler to ignore the escape key if condition cond_skip_cv returns false.

So what you might end up with is something like...

function keyboardHandler(eventType, character, keycode, modifiers)
 if Conditions["cond_skip_cv"].ConditionValue == false and keycode == eKeyEscape then return true end
 return false
end
 
registerEventHandler("keyEvent", "keyboardHandler")

4. To turn on/off video/cutcene skipping: all you have to do is toggle the cond_skip_cv condition. Creating a setting for this in your options menu &/or adding this as a setting to the config.ini is entirely up to you.


Resources

Name Description
- There are no resources available, sorry.