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

From The Official Visionaire Studio: Adventure Game Engine Wiki
m (Text replacement - "{{toc}}" to "")
 
(3 intermediate revisions by one other user not shown)
Line 7: Line 7:
  
  
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.
+
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. (currently only works for cutscenes).
  
  
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
 
   
 
   
 
registerEventHandler("keyEvent", "keyboardHandler")
 
registerEventHandler("keyEvent", "keyboardHandler")
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
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.
  
  
Line 65: Line 59:
 
! style="text-align:left" | Name !! style="text-align:left" | Description
 
! style="text-align:left" | Name !! style="text-align:left" | Description
 
|-
 
|-
| - || There are no resources available, sorry.
+
| class="cent" | - || There are no resources available, sorry.
 
|}
 
|}
{{i18nPrevent_Video_and_Cutscene_Skipping_(h2)}}{{toc}}
+
{{i18n|Prevent_Video_and_Cutscene_Skipping_(h2)}}

Latest revision as of 01:52, 4 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. (currently only works for cutscenes).


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.