Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Skip cutscene mode

This script introduce a mode where the cutscene type commands(show message, move
event, etc, show picture, anymation, sounds, etc) dont function so only the
logical and nor graphical options work(battle, changue equip, items, etc).

In this way you can use this feature to skip any cutscene using a election or using
a key for this option.

Note that you can also use this to test better and very quick your games.

Code:
#==============================================================================

# Skip Cutscenes Mode

# By gerkrt/gerrtunk(main), GreenBanana, wecoc, pacman(some ideas or suggestions), 

# sandgolem(some of his script code here)

# Version: 1.1

# License: MIT, credits

# Date: 11/08/2011

# IMPORTANT NOTE: to acces the more actualitzed or corrected version of this

# script check here: [url=http://usuarios.multimania.es/kisap/english_list.html]http://usuarios.multimania.es/kisap/english_list.html[/url]

#==============================================================================

 

=begin

 

------INTRODUCTION------

 

This script introduce a mode where the cutscene type commands(show message, move

event, etc, show picture, anymation, sounds, etc) dont function so only the 

logical and nor graphical options work(battle, changue equip, items, etc).

 

In this way you can use this feature to skip any cutscene using a election or using

a key for this option.

 

Note that you can also use this to test better and very quick your games.

 

-----INSTRUCTIONS---------

 

You have two ways of doing this. First you can call this script to active or 

desactivate the cutscene mode:

 

$game_system.skip_cutscene_mode = true 

  ---> this activate it

  

$game_system.skip_cutscene_mode = false

  ---> desactivate

 

You can also use a key to active or desactive it in the game maps, you configure

the key in:

Skip_key = Input::A

 

To changue it you have to use the information you configure using f1 ingame, 

and changuing the A letter to the you want to use.

 

Note that you can configure a sound for the map option. For default it uses your

database cancel se, but you can use any other se. If you dont want anyone, just

put = false.

 

Finally, note that the mode active/inactive is saved when you save the game and

isnt reseted.

 

-----DEFINING WHAT IS A CUTSCENCE-----

 

You can also make that this mode only works when you want. To make that this mode

works it have to be active this option with a script call:

 

$game_system.is_cutscene = true (you can make = false like the other)

 

Using this you can call this script at the start and the end of a event cutscene,

activing and desactivating it, so it only works there. Note that also the key

changuing dont work if that isnt active.

 

This option is permanent too.

 

-----DEBUG MODE-----

 

You can autoactivate the is_scene atribute in the game when debuging it with

the rpgmaker so you can test the project better. You just dont need to active

that option.

 

If you dont want to use this just set to false:  Use_debug_mode = false

 

-----COMPATIBILITY AND DESACTIVATING THE CUTSCENE KEY OPTION-------

 

This script is incompatible with any script that changues the interpreter in the

way it executes commands.

 

But you can make it compatible with scripts that changue the map too much(normally

it have to work). To do that put Modify_scene_map = false, but you will lose

the key in map feature.

 

=end

 

module Wep

  Use_debug_mode = true

  Skip_key = Input::A

  Skip_SE = '003-System03'

  SKM_Modify_scene_map = true

end

 

 

#==============================================================================

# ** Interpreter 

#------------------------------------------------------------------------------

#  This interpreter runs event commands. This class is used within the

#  Game_System class and the Game_Event class.

#==============================================================================

 

class Interpreter

  alias wep_scm_execcom_int execute_command

  #--------------------------------------------------------------------------

  # * Event Command Execution

  # Now it returns all the graphical options when cutscene mode is active to skip

  #--------------------------------------------------------------------------

  def execute_command

    # If last to arrive for list of event commands

    if @index >= @list.size - 1

      # End event

      command_end

      # Continue

      return true

    end

    # Make event command parameters available for reference via @parameters

    @parameters = @list[@index].parameters

    # Branch by command code

    case @list[@index].code

    when 101  # Show Text

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_101

    when 102  # Show Choices

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_102

    when 402  # When [**]

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_402

    when 403  # When Cancel

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_403

    when 103  # Input Number

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_103

    when 104  # Change Text Options

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_104

    when 105  # Button Input Processing

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_105

    when 106  # Wait

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_106

    when 111  # Conditional Branch

      return command_111

    when 411  # Else

      return command_411

    when 112  # Loop

      return command_112

    when 413  # Repeat Above

      return command_413

    when 113  # Break Loop

      return command_113

    when 115  # Exit Event Processing

      return command_115

    when 116  # Erase Event

      return command_116

    when 117  # Call Common Event

      return command_117

    when 118  # Label

      return command_118

    when 119  # Jump to Label

      return command_119

    when 121  # Control Switches

      return command_121

    when 122  # Control Variables

      return command_122

    when 123  # Control Self Switch

      return command_123

    when 124  # Control Timer

      return command_124

    when 125  # Change Gold

      return command_125

    when 126  # Change Items

      return command_126

    when 127  # Change Weapons

      return command_127

    when 128  # Change Armor

      return command_128

    when 129  # Change Party Member

      return command_129

    when 131  # Change Windowskin

      return command_131

    when 132  # Change Battle BGM

      return command_132

    when 133  # Change Battle End ME

      return command_133

    when 134  # Change Save Access

      return command_134

    when 135  # Change Menu Access

      return command_135

    when 136  # Change Encounter

      return command_136

    when 201  # Transfer Player

      return command_201

    when 202  # Set Event Location

      return command_202

    when 203  # Scroll Map

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_203

    when 204  # Change Map Settings

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_204

    when 205  # Change Fog Color Tone

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_205

    when 206  # Change Fog Opacity

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_206

    when 207  # Show Animation

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_207

    when 208  # Change Transparent Flag

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_208

    when 209  # Set Move Route

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_209

    when 210  # Wait for Move's Completion

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_210

    when 221  # Prepare for Transition

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_221

    when 222  # Execute Transition

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_222

    when 223  # Change Screen Color Tone

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_223

    when 224  # Screen Flash

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_224

    when 225  # Screen Shake

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_225

    when 231  # Show Picture

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_231

    when 232  # Move Picture

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_232

    when 233  # Rotate Picture

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_233

    when 234  # Change Picture Color Tone

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_234

    when 235  # Erase Picture

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_235

    when 236  # Set Weather Effects

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_236

    when 241  # Play BGM

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_241

    when 242  # Fade Out BGM

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_242

    when 245  # Play BGS

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_245

    when 246  # Fade Out BGS

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_246

    when 247  # Memorize BGM/BGS

      return command_247

    when 248  # Restore BGM/BGS

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_248

    when 249  # Play ME

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_249

    when 250  # Play SE

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_250

    when 251  # Stop SE

            return if $game_system.skip_cutscene_mode and $game_system.is_cutscene ; return if Wep::Use_debug_mode and $DEBUG and $game_system.skip_cutscene_mode

      return command_251

    when 301  # Battle Processing

      return command_301

    when 601  # If Win

      return command_601

    when 602  # If Escape

      return command_602

    when 603  # If Lose

      return command_603

    when 302  # Shop Processing

      return command_302

    when 303  # Name Input Processing

      return command_303

    when 311  # Change HP

      return command_311

    when 312  # Change SP

      return command_312

    when 313  # Change State

      return command_313

    when 314  # Recover All

      return command_314

    when 315  # Change EXP

      return command_315

    when 316  # Change Level

      return command_316

    when 317  # Change Parameters

      return command_317

    when 318  # Change Skills

      return command_318

    when 319  # Change Equipment

      return command_319

    when 320  # Change Actor Name

      return command_320

    when 321  # Change Actor Class

      return command_321

    when 322  # Change Actor Graphic

      return command_322

    when 331  # Change Enemy HP

      return command_331

    when 332  # Change Enemy SP

      return command_332

    when 333  # Change Enemy State

      return command_333

    when 334  # Enemy Recover All

      return command_334

    when 335  # Enemy Appearance

      return command_335

    when 336  # Enemy Transform

      return command_336

    when 337  # Show Battle Animation

      return command_337

    when 338  # Deal Damage

      return command_338

    when 339  # Force Action

      return command_339

    when 340  # Abort Battle

      return command_340

    when 351  # Call Menu Screen

      return command_351

    when 352  # Call Save Screen

      return command_352

    when 353  # Game Over

      return command_353

    when 354  # Return to Title Screen

      return command_354

    when 355  # Script

      return command_355

    else      # Other

      return true

    end

    wep_scm_execcom_int

  end

end

 

#==============================================================================

# ** Game System

#==============================================================================

 

class Game_System

  

  attr_accessor :skip_cutscene_mode

  attr_accessor :is_cutscene

  alias gs_init_wep_skm initialize 

  

  def initialize

    @skip_cutscene_mode = false

    @is_cutscene = false

    gs_init_wep_skm

  end

  

end

 

#==============================================================================

# ** Scene Map

#==============================================================================

 

# Compatibility check

if Wep::SKM_Modify_scene_map

 

class Scene_Map

  alias wep_cutsceneskip_update update

  def update

    

    wep_cutsceneskip_update

    # Skip cutscene

    if $game_system.is_cutscene and Input.trigger?(Wep::Skip_key)

      

      # Use SE

      if Wep::Skip_SE

        #$game_system.se_play(Wep::Skip_SE)

        Audio.se_play("Audio/SE/" + Wep::Skip_SE, 100, 0)

      end

      

      # Operate mode

      if $game_system.skip_cutscene_mode 

        $game_system.skip_cutscene_mode = false

      else

        $game_system.skip_cutscene_mode = true

      end

      

    # Debug mode and its active     

    elsif Wep::Use_debug_mode and $DEBUG and Input.trigger?(Wep::Skip_key)

      # Use SE

      if Wep::Skip_SE

        #$game_system.se_play(Wep::Skip_SE)

        Audio.se_play("Audio/SE/" + Wep::Skip_SE, 100, 0)

      end

      

      # Operate mode

      if $game_system.skip_cutscene_mode 

        $game_system.skip_cutscene_mode = false

      else

        $game_system.skip_cutscene_mode = true

      end

      

    end

  end

end

 

end

 

 

I will listen to any suggerence, bug, etc.
 
This is very interesting and a nice way of doing it - haven't seen it before, and would've never thought about it... Now, I can't test it, so I just trust that it works for now :D but I think it's an amazing feature.
As usual, I'd brag a bit about the coding side and the bunch of commentary on the top, however because I just got up, I'll leave you with the compliment :thumb:
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top