Preserved forum archive. This topic stores the original first post and locally mirrored RPG Maker Web attachments when available. It is posted by the BMMPlay archive account, not by the original creator.
Original Source
- Original title: Mobius's "The Story So Far" Script
- Original author: MobiusXVI
- Original date: December 26, 2013
- Source thread: https://forums.rpgmakerweb.com/threads/mobiuss-the-story-so-far-script.21464/
- Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSS Scripts (RMXP)
Summary
The Story So Far by MobiusXVI Release Notes
Archived First Post
The Story So Far
by
MobiusXVI
by
MobiusXVI
Release Notes
Dec 2013 - v. 1.0 Initial Release
Mar 2023 - v. 1.1 Fixed a bug where it would ask the user if they wanted to watch the story even if it didn't exist
Introduction
The purpose of this script is to allow you to remind the player about what has happened in the story whenever they load their game. I hope you enjoy it!
Features
- Very little scripting needed to make script work, since it uses maps for cutscenes.
- Can have as many or few chapters as you want
- Allows player to skip watching the cutscene and load directly into game (especially useful when reloading a game due to death)
Screenshots
None.
How to Use
- Place this script below the defaults but above main. If you have other scripts that modify saving/loading, put this one below them.
- What this script does is check a game variable of your choosing to determine the current "chapter". Then it loads a map that you specify to let you play out a cutscene of your own design to recap the story. So you'll need to complete the configuration section below to do this.
- You can do whatever you want on the cutscene maps, including going to additional maps if need be. Whenever you finish with your cutscene, all you have to do is put the following script call in an event and the game will then load and allow the player to keep going: "Mobius_Story_So_Far.finish_cutscene" (without quotes)
- The additional configuration needed is listed in the script under "Configuration"
Demo
http://www.mediafire.com/download/alsku2kn3c2ke0d/Story So Far Demo.zip
Script
Code:
#===============================================================================
# The Story So Far
# Author: Mobius XVI
# Version: 1.1
# Date: 02 MAR 2023
#===============================================================================
#
# Introduction:
#
# The purpose of this script is to allow you to remind the player about what
# has happened in the story whenever they load their game.
#
# Instructions:
#
# - Place this script below the defaults but above main. If you have other
# scripts that modify saving/loading, put this one below them.
# - What this script does is check a game variable of your choosing to
# determine the current "chapter". Then it loads a map that you specify to
# let you play out a cutscene of your own design to recap the story.
# So you'll need to complete the configuration section below to do this.
# - You can do whatever you want on the cutscene maps, including going to
# additional maps if need be. Whenever you finish with your cutscene, all
# you have to do is put the following script call in an event and the game
# will then load and allow the player to keep going.
# "Mobius_Story_So_Far.finish_cutscene" (without quotes)
#
# Features:
#
# - Very little scripting needed to make script work, since it uses maps for
# cutscenes.
# - Can have as many or few chapters as you want
# - Allows player to skip watching the cutscene and load directly into game
# (especially useful when reloading a game due to death)
#
# Issues/Bugs/Possible Bugs:
#
# - There may be incompatibility issues with any script that heavily modifies
# the saving/loading of the game. Placing this script below them should
# alleviate most problems
#
# Credits/Thanks:
# - Mobius XVI, author
# - Monkeysnow55, for requesting it
#
# License
# - Copyright 2023 Mobius XVI
# - This script is licensed under the MIT license.
# The full license is availble here:
# https://opensource.org/license/mit/
# Further, if you decide to use this script in a commercial product,
# I'd ask that you let me know via a forum post or a PM. Thanks.
#
#===============================================================================
# CONFIGURATION
#===============================================================================
module Mobius_Story_So_Far
CHAPTER_VARIABLE = 0
# Define the game variable that will be used to determine what chapter
# the player is on.
CUTSCENE_MAPS = [[5, 0, 0], # Chapter 0
[1, 9, 21], # Chapter 1
[15, 30, 0], # Chapter 2
# ...
#[MAP_ID, STARTING_X, STARTING_Y], # CHAPTER X
# ...
] # Array end - DON'T DELETE!
# This is an array of arrays. The inner arrays have three entries. The first
# is the Map_ID for whatever map you want to use for the cutscene. The second
# and third entries are for the player's x and y coordinates respectively.
# The inner arrays are all indexed, so whichever one comes first is used
# when the chapter variable is 0, the second array is used when the chapter
# variable is 1, and so on. Make sure all inner arrays are separated by commas
end
#===============================================================================
# ** Story So Far - EDIT BELOW THIS LINE AT OWN RISK
#===============================================================================
class Game_Temp
attr_accessor :cutscene_filename # filename to load after cutscene
end
class Scene_Load
# alias old loading method
alias mobius_ssf_on_decision on_decision
# new loading method
def on_decision(filename)
# If file doesn't exist
unless FileTest.exist?(filename)
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Read save data
file = File.open(filename, "rb")
read_save_data(file)
file.close
# Get chapter info
chapter_variable = Mobius_Story_So_Far::CHAPTER_VARIABLE
chapter = $game_variables[chapter_variable]
# Get cutscene info
@cutscene_info_array = Mobius_Story_So_Far::CUTSCENE_MAPS[chapter]
if @cutscene_info_array == nil or @cutscene_info_array.length < 3
# If there's no info, then load the save as normal
# Play load SE
$game_system.se_play($data_system.load_se)
# Load savefile as normal
mobius_ssf_on_decision(filename)
return
end
# If there is a cutscene, ask the player if they want to see it
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Set help text
@help_text = "Do you want to watch the story so far?"
@help_window.set_text(@help_text)
# Create choice window
@choice_window = Window_Command.new(120, ["Yes", "No"])
@choice_window.active = true
# Center choice window
@choice_window.x = 640 / 2 - @choice_window.width / 2
@choice_window.y = 480 / 2 - @choice_window.height / 2
@choice_window.z = 200
# Wait for input
end
# Load into cutscene
def load_into_cutscene(filename)
# Play load SE
$game_system.se_play($data_system.load_se)
# Remeber filename
$game_temp.cutscene_filename = filename
# Set cutscene info
cutscene_map_id = @cutscene_info_array[0]
cutscene_x = @cutscene_info_array[1]
cutscene_y = @cutscene_info_array[2]
# Stop BGM
Audio.bgm_stop
# Load cutscene map
# Set up new map
$game_map.setup(cutscene_map_id)
# Move player to initial position
$game_player.moveto(cutscene_x, cutscene_y)
# Refresh player
$game_player.refresh
# Straighten player
$game_player.straighten
# Run automatic change for BGM and BGS set with map
$game_map.autoplay
# Update map (run parallel process event)
$game_map.update
# Switch to map screen
$scene = Scene_Map.new
end
end
class Scene_File
# alias old update method
alias mobius_ssf_update update
def update
# If choice window is up don't do other updating
if @choice_window != nil and @choice_window.active
# Update command window
@choice_window.update
# If C button was pressed
if Input.trigger?(Input::C)
# Branch by command window cursor position
case @choice_window.index
when 0 # Yes
# Load into cutscene
load_into_cutscene(make_filename(@file_index))
when 1 # No
# Call old loading method
mobius_ssf_on_decision(make_filename(@file_index))
end
@choice_window.dispose
end
return
else # If no choice window, perform normal updating
mobius_ssf_update
end
end
end
module Mobius_Story_So_Far
def Mobius_Story_So_Far.finish_cutscene
# Prevent Screen Changes
Graphics.freeze
# Recall old filename
filename = $game_temp.cutscene_filename
# Create Load screen
$scene = Scene_Load.new
# Load savefile using original method
$scene.mobius_ssf_on_decision(filename)
end
end
FAQ
None yet.
Credit and Thanks
Special thanks to Monkeysnow55 for requesting this script.
Author's Notes
Copyright 2023 Mobius XVI
This script is licensed under the MIT license
The full license is available here: https://opensource.org/license/mit/
Further, if you decide to use this script in a commercial product, I'd ask that you let me know via a post here or a PM. Thanks.
Features Mentioned
- Very little scripting needed to make script work, since it uses maps for cutscenes.
- Can have as many or few chapters as you want
- Allows player to skip watching the cutscene and load directly into game (especially useful when reloading a game due to death)
Downloads / Referenced Files
Log in to download
Log in, then follow the RPG Maker Developers Group to see these download links.
Log in to downloadLicense / Terms Note
# Credits/Thanks: # - Mobius XVI, author # - Monkeysnow55, for requesting it #
Creator Claims / Removal
If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.
Replies (0)
No replies yet.
0
replies
1
view
Topic Summary
Loading summary...