[RESOLVED][RMVX REQUEST] - Skip Title Screen if no Saves.

Started by arisenhorizen, December 03, 2009, 02:24:44 am

Previous topic - Next topic

arisenhorizen

December 03, 2009, 02:24:44 am Last Edit: December 04, 2009, 06:40:47 am by arisenhorizen
Hi,

I need a script whereby the game skips the title screen and proceed to a video or cutscene, kind of like a small introduction video.

HOWEVER, I want this introduction to only be present if there are no saves (meaning that the player starts the game for the first time).

* I'm not sure if this can be activated by selecting "Erase Event". If it can be done using "Erase Event", then ignore this part.


I do know that Woratana has this script, but I'm unable to even register to download the script. Even if I can access, I doubt there are no errors (simply because some changes might have been made in the RMXP script).

(http://74.125.153.132/search?q=cache:YfRmt9oQ7M8J:www.rpgrevolution.com/forums/%3Fshowtopic%3D8521+RPG+Maker+event+before+title+screen&cd=6&hl=en&ct=clnk) - This is a cached version (meaning screenshot) of that page.

And besides, most of the posts are already outdated so it would be useless to post on it and expect a reply.

Besides woratana's script, I have searched for it and have gotten the same script (but it's not quite the same as woratana's), but TypeError's and certain other errors keep popping up.

Having no experience in scripting, I need someone to help me create/get a script whereby there are no errors.

(P/S. The script I'm using is the basic default RMVX script, so if the Skip Title script is working in yours, it should work in mine too).

Sorry for the bad English.

Thank You in advance.

Jackolas

December 03, 2009, 03:29:12 am #1 Last Edit: December 03, 2009, 03:30:14 am by Jackolas
VX not installed atm.
can you post up the scene_title script?
should be an easy edit

arisenhorizen

December 03, 2009, 03:47:57 am #2 Last Edit: December 03, 2009, 03:51:14 am by arisenhorizen
You mean the default RMVX one, right?

#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs the title screen processing.
#==============================================================================

class Scene_Title < Scene_Base
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
   if $BTEST                         # If battle test
     battle_test                     # Start battle test
   else                              # If normal play
     super                           # Usual main processing
   end
 end
 #--------------------------------------------------------------------------
 # * Start processing
 #--------------------------------------------------------------------------
 def start
   super
   load_database                     # Load database
   create_game_objects               # Create game objects
   check_continue                    # Determine if continue is enabled
   create_title_graphic              # Create title graphic
   create_command_window             # Create command window
   play_title_music                  # Play title screen music
 end
 #--------------------------------------------------------------------------
 # * Execute Transition
 #--------------------------------------------------------------------------
 def perform_transition
   Graphics.transition(20)
 end
 #--------------------------------------------------------------------------
 # * Post-Start Processing
 #--------------------------------------------------------------------------
 def post_start
   super
   open_command_window
 end
 #--------------------------------------------------------------------------
 # * Pre-termination Processing
 #--------------------------------------------------------------------------
 def pre_terminate
   super
   close_command_window
 end
 #--------------------------------------------------------------------------
 # * Termination Processing
 #--------------------------------------------------------------------------
 def terminate
   super
   dispose_command_window
   snapshot_for_background
   dispose_title_graphic
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
   super
   @command_window.update
   if Input.trigger?(Input::C)
     case @command_window.index
     when 0    #New game
       command_new_game
     when 1    # Continue
       command_continue
     when 2    # Shutdown
       command_shutdown
     end
   end
 end
 #--------------------------------------------------------------------------
 # * Load Database
 #--------------------------------------------------------------------------
 def load_database
   $data_actors        = load_data("Data/Actors.rvdata")
   $data_classes       = load_data("Data/Classes.rvdata")
   $data_skills        = load_data("Data/Skills.rvdata")
   $data_items         = load_data("Data/Items.rvdata")
   $data_weapons       = load_data("Data/Weapons.rvdata")
   $data_armors        = load_data("Data/Armors.rvdata")
   $data_enemies       = load_data("Data/Enemies.rvdata")
   $data_troops        = load_data("Data/Troops.rvdata")
   $data_states        = load_data("Data/States.rvdata")
   $data_animations    = load_data("Data/Animations.rvdata")
   $data_common_events = load_data("Data/CommonEvents.rvdata")
   $data_system        = load_data("Data/System.rvdata")
   $data_areas         = load_data("Data/Areas.rvdata")
 end
 #--------------------------------------------------------------------------
 # * Load Battle Test Database
 #--------------------------------------------------------------------------
 def load_bt_database
   $data_actors        = load_data("Data/BT_Actors.rvdata")
   $data_classes       = load_data("Data/BT_Classes.rvdata")
   $data_skills        = load_data("Data/BT_Skills.rvdata")
   $data_items         = load_data("Data/BT_Items.rvdata")
   $data_weapons       = load_data("Data/BT_Weapons.rvdata")
   $data_armors        = load_data("Data/BT_Armors.rvdata")
   $data_enemies       = load_data("Data/BT_Enemies.rvdata")
   $data_troops        = load_data("Data/BT_Troops.rvdata")
   $data_states        = load_data("Data/BT_States.rvdata")
   $data_animations    = load_data("Data/BT_Animations.rvdata")
   $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
   $data_system        = load_data("Data/BT_System.rvdata")
 end
 #--------------------------------------------------------------------------
 # * Create Game Objects
 #--------------------------------------------------------------------------
 def create_game_objects
   $game_temp          = Game_Temp.new
   $game_message       = Game_Message.new
   $game_system        = Game_System.new
   $game_switches      = Game_Switches.new
   $game_variables     = Game_Variables.new
   $game_self_switches = Game_SelfSwitches.new
   $game_actors        = Game_Actors.new
   $game_party         = Game_Party.new
   $game_troop         = Game_Troop.new
   $game_map           = Game_Map.new
   $game_player        = Game_Player.new
 end
 #--------------------------------------------------------------------------
 # * Determine if Continue is Enabled
 #--------------------------------------------------------------------------
 def check_continue
   @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
 end
 #--------------------------------------------------------------------------
 # * Create Title Graphic
 #--------------------------------------------------------------------------
 def create_title_graphic
   @sprite = Sprite.new
   @sprite.bitmap = Cache.system("Title")
 end
 #--------------------------------------------------------------------------
 # * Dispose of Title Graphic
 #--------------------------------------------------------------------------
 def dispose_title_graphic
   @sprite.bitmap.dispose
   @sprite.dispose
 end
 #--------------------------------------------------------------------------
 # * Create Command Window
 #--------------------------------------------------------------------------
 def create_command_window
   s1 = Vocab::new_game
   s2 = Vocab::continue
   s3 = Vocab::shutdown
   @command_window = Window_Command.new(172, [s1, s2, s3])
   @command_window.x = (544 - @command_window.width) / 2
   @command_window.y = 288
   if @continue_enabled                    # If continue is enabled
     @command_window.index = 1             # Move cursor over command
   else                                    # If disabled
     @command_window.draw_item(1, false)   # Make command semi-transparent
   end
   @command_window.openness = 0
   @command_window.open
 end
 #--------------------------------------------------------------------------
 # * Dispose of Command Window
 #--------------------------------------------------------------------------
 def dispose_command_window
   @command_window.dispose
 end
 #--------------------------------------------------------------------------
 # * Open Command Window
 #--------------------------------------------------------------------------
 def open_command_window
   @command_window.open
   begin
     @command_window.update
     Graphics.update
   end until @command_window.openness == 255
 end
 #--------------------------------------------------------------------------
 # * Close Command Window
 #--------------------------------------------------------------------------
 def close_command_window
   @command_window.close
   begin
     @command_window.update
     Graphics.update
   end until @command_window.openness == 0
 end
 #--------------------------------------------------------------------------
 # * Play Title Screen Music
 #--------------------------------------------------------------------------
 def play_title_music
   $data_system.title_bgm.play
   RPG::BGS.stop
   RPG::ME.stop
 end
 #--------------------------------------------------------------------------
 # * Check Player Start Location Existence
 #--------------------------------------------------------------------------
 def confirm_player_location
   if $data_system.start_map_id == 0
     print "Player start location not set."
     exit
   end
 end
 #--------------------------------------------------------------------------
 # * Command: New Game
 #--------------------------------------------------------------------------
 def command_new_game
   confirm_player_location
   Sound.play_decision
   $game_party.setup_starting_members            # Initial party
   $game_map.setup($data_system.start_map_id)    # Initial map position
   $game_player.moveto($data_system.start_x, $data_system.start_y)
   $game_player.refresh
   $scene = Scene_Map.new
   RPG::BGM.fade(1500)
   close_command_window
   Graphics.fadeout(60)
   Graphics.wait(40)
   Graphics.frame_count = 0
   RPG::BGM.stop
   $game_map.autoplay
 end
 #--------------------------------------------------------------------------
 # * Command: Continue
 #--------------------------------------------------------------------------
 def command_continue
   if @continue_enabled
     Sound.play_decision
     $scene = Scene_File.new(false, true, false)
   else
     Sound.play_buzzer
   end
 end
 #--------------------------------------------------------------------------
 # * Command: Shutdown
 #--------------------------------------------------------------------------
 def command_shutdown
   Sound.play_decision
   RPG::BGM.fade(800)
   RPG::BGS.fade(800)
   RPG::ME.fade(800)
   $scene = nil
 end
 #--------------------------------------------------------------------------
 # * Battle Test
 #--------------------------------------------------------------------------
 def battle_test
   load_bt_database                  # Load battle test database
   create_game_objects               # Create game objects
   Graphics.frame_count = 0          # Initialize play time
   $game_party.setup_battle_test_members
   $game_troop.setup($data_system.test_troop_id)
   $game_troop.can_escape = true
   $game_system.battle_bgm.play
   snapshot_for_background
   $scene = Scene_Battle.new
 end
end

Jackolas

December 03, 2009, 04:01:51 am #3 Last Edit: December 03, 2009, 04:56:54 am by Jackolas
not a pro with VX.

but try this 1:
Spoiler: ShowHide
#==============================================================================
# ** Scene_Title EDIT
#------------------------------------------------------------------------------
#  This class performs the title screen processing.
#==============================================================================

class Scene_Title < Scene_Base
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
   if $BTEST                         # If battle test
     battle_test                     # Start battle test
   else                              # If normal play
     check_continue                  # check for savegames
     if not @continue_enabled        # if no savegames are found
       load_database                 # Load database
       create_game_objects           # Create game objects
       new_command_new_game              # Start game without start menu
     else                            # check normal game start
       super                         # Usual main processing
     end
   end
 end
 #--------------------------------------------------------------------------
 # * Command: New Game
 #--------------------------------------------------------------------------
 def new_command_new_game
   confirm_player_location
   $game_party.setup_starting_members            # Initial party
   $game_map.setup($data_system.start_map_id)    # Initial map position
   $game_player.moveto($data_system.start_x, $data_system.start_y)
   $game_player.refresh
   $scene = Scene_Map.new
   $game_map.autoplay
 end
end

just place in a new script above main and all your custom scripts

hope it works

edit: fixed bug

arisenhorizen

NoMethod Error.

undefined method 'start_map_001' for #<RPG::System:0x1a6e1c8>.


That pop out while testing the game.

I replaced "start_map_id" to "start_map_001". That's correct, right?

Jackolas

December 03, 2009, 04:31:11 am #5 Last Edit: December 03, 2009, 04:33:25 am by Jackolas
no.

it will just use the start location you have in the game...
no edits needed. (edit = crash)

the only thing this script is doing is skip the start menu.
its like you insta press start new game.

arisenhorizen

December 03, 2009, 04:34:24 am #6 Last Edit: December 03, 2009, 04:42:09 am by arisenhorizen
Thanks~! It worked.
:D

You're a lifeegame saver!   :-*

EDIT : Oh wait, the "Return to Title Screen" command isn't working. and... will the cutscene keep replaying everytime I start the game?

EDIT02 : Why is it that the "Return to Title Screen" command loops me back to my cutscene?

Jackolas

December 03, 2009, 04:47:51 am #7 Last Edit: December 03, 2009, 04:49:57 am by Jackolas
because you don't have a save game.
use an autosave/force save after the cutsene to fix it

if there is no save game it will skip the title screen. just they way you asked

arisenhorizen

I saved the game and restart it, but the whole screen went black.  :O.o:

Jackolas

December 03, 2009, 04:57:13 am #9 Last Edit: December 03, 2009, 04:58:35 am by Jackolas
edited the script. try again?

posted the fix in the script above*
(I said I'm not good in VX scripts :P )

arisenhorizen

December 03, 2009, 05:09:07 am #10 Last Edit: December 03, 2009, 05:18:01 am by arisenhorizen
Works noww~!

Thanks a whole lot!!! Now I can go on to making my game.  :evil:

Jackolas


arisenhorizen

lol, have a question. How do you make it forced save after the cutscene? And... after my cutscene video, I make it wrap to the Title Screen, but if I start a new game, the same cutscene appears again.

How can you make the starting point after I click "New Game" and the starting point in the cutscene different?

Jackolas

that requires a lot more and bigger script.

probably need an other way to do it.

give me some time, have an idea

arisenhorizen

Sure, take your time. thanks for offering to help.

I'll just proceed to other stuff first, just post the script here when you're finish.


Thanks.  :-*

Jackolas

December 03, 2009, 05:42:16 am #15 Last Edit: December 03, 2009, 06:12:02 am by Jackolas
Spoiler: ShowHide
#==============================================================================
# ** First time Scene_Title Skip
#
# Script by              Jackolas
# version number         V0.52
#------------------------------------------------------------------------------
#  This Changes the title screen processing to allow a cutscene.
#------------------------------------------------------------------------------
# Place above all custom scripts and main.
# Edit the Config to your Cutscene map
#==============================================================================

module titlescreen_edit
  #--------------------------------------------------------------------------
  # * Configuration Begin
  #--------------------------------------------------------------------------
  def map_id 
    return 1          # The map of the cutscene
  end
  def map_x
    return 1          # The x of the cutscene
  end
  def map_y           
    return 1          # The y of the cutscene
  end
  #--------------------------------------------------------------------------
  # * Configuration END
  #-------------------------------------------------------------------------- 
end

#==============================================================================
# ** Scene_Title EDIT
#------------------------------------------------------------------------------
#  This class performs the title screen processing.
#==============================================================================

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    if $BTEST                         # If battle test
      battle_test                     # Start battle test
    else                              # If normal play
      check_continue                  # check for savegames
      if not @continue_enabled        # if no savegames are found
        command_cutscene              # Start game without start menu
      else                            # check normal game start
        super                         # Usual main processing
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Command: New Game
  #--------------------------------------------------------------------------
  def command_cutscene
    load_database                                 # Load database
    create_game_objects                           # Create game objects
    $game_party.setup_starting_members            # Initial party
    $game_map.setup(titlescreen_edit.map_id)     # Initial map position
    $game_player.moveto(titlescreen_edit.map_x, titlescreen_edit.map_y)
    $game_player.refresh
    $scene = Scene_Map.new
    $game_map.autoplay
  end
end


lets hope, not able to test myself
still need to find a fix for the save

arisenhorizen

Line23, SyntaxError occured.  :wacko:

Do I need to change anything in the script?

Jackolas

December 03, 2009, 05:52:37 am #17 Last Edit: December 03, 2009, 05:54:46 am by Jackolas
me is bad in English, me made spelling error.  :^_^':

should be fixed now :P

also.. the only thing you need to change is the config part

arisenhorizen


Jackolas