RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Cozziekuns Custom Title Screen

0 Members and 1 Guest are viewing this topic.

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
Disclaimer: Just noticed that this is a (cleaner?) and more upgraded version of Woratana's Custom Title Screen Menu.
Note: My last post got killed by the time warp :( Never mind, it gave me time to work on a new version.

Cozziekuns' Custom Title Screen
Version: 1.0
Author: Cozziekuns
Date: May 20, 2010

Version History


  • <Version 1.0> 05.20.2010 - Original Release

Planned Future Versions

  • Suggest some!

Description


What do you get if you combine Yanfly's Main Menu Redux and a title screen? Something pretty awesome, that's for sure. This Custom Title Screen is supposed to make creating your own title commands easily, as well as ensuring as much compatibility as possible.

Features

  • Icons!
  • The ability to add commands with ease!
  • Infinite commands! (Starts lagging at around 300 commands though).

Screenshots



Instructions

See header.

Script


Code: [Select]
#===============================================================================
#
# Cozziekuns' Custom Title Screen
# Last Date Updated: 5/20/2010
#
# What do you get if you combine Yanfly's Main Menu Melody and a title screen?
# Something pretty awesome, that's for sure. This Custom Title Screen is
# supposed to make creating your own title commands easily, as well as ensuring
# as much compatibility as possible.
#
#===============================================================================
# Updates
# -----------------------------------------------------------------------------
# o 05/20/10 - Started Script.
#===============================================================================
# What's to come?
# -----------------------------------------------------------------------------
# o More compatability!
#===============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save. You can
# edit the modules as you wish.
#===============================================================================

$imported = {} if $imported == nil
$imported["CozCustomTitleScreen"] = true

module COZZIEKUNS
  module CTS
 
#-------------------------------------------------------------------------------
# * Basic Command Window Functions
#-------------------------------------------------------------------------------
 
  OPACITY = 255 # How opaque you want your window to be. 0 is invisible.
  COMMAND_X = 186 # Where you want the command window to be.
  COMMAND_Y = 288 # Where you want the command window to be.
  MAX_ROW_NUM = 3 # The maximum amount of commands in your command window.
  COMMAND_WINDOWSKIN = "Window" # The windowskin you want your window to be in.
  ICONS = true # If you want to use icons or not.
 
  ICON_INDEX ={
# Syntax: Vocab => Icon Number
   "New Game" => 141,
   "Continue" => 133,
   "Shutdown" => 176,
   "Game Over" => 112,
   "Battle!" => 10,
   "Tutorial" => 200,
   "Prologue" => 177
  }

#-------------------------------------------------------------------------------
# * Advanced Command Window Functions
#-------------------------------------------------------------------------------

#===============================================================================
# * Title Commands Instructions
# -----------------------------------------------------------------------------
# This Array lets you determine the order of your commands. For example, if we
# order of the commands in such a fashion:
#
# 0,
# 1,
# 10,
# 2,
#
# Would show up on the title screen as:
#
# New Game
# Continue
# Common Event 1
# Exit
#
# The following commands are reserved by default:
#
#   0: New Game
#   1: Continue
#   2: Shut Down
#  10: Common Event 1 (Named "Battle!" by default)
#  51: Transfer to Map 2 (Named "Tutorial" by default)
#  101: Transfer to Map 2, play Common Event 2 (Named "Prologue" by default)
#
# Note: 0 ~ 9 is reserved by the default commands.
#       10 ~ 50 is reserved by common events.
#       51 ~ 100 is reserved by transfer to commands.
#       100 ~ 150 is reserved by transfer + common event commands.
#       151 ~ 999 is reserved by scene commands.
#===============================================================================

  TITLE_COMMANDS =[
  0, # New Game
  1, # Continue
  10, # Common Event 1
  51, # Map 2
  101, # Map 2, Common Event 2
  151, # Gameover
  2, # Shut Down
]

#===============================================================================
# * Common Event Commands Instructions
# -----------------------------------------------------------------------------
# This hash lets you determine which common events you want to use. For example
# if we wanted to create a common event that shows up as "Game Over" on the
# title screen, and has a common event ID of 2, we would use...
#
# 10 => [2, "Game Over"]
#
# This would show up on the title screen as:
#
# Game Over
#
# and would transfer you to the map you want to start in. Just make sure you
# don't have the common events triggered by a switch, or else it won't work.
#
# You can have 40 common events, numbering from 10 - 50.
#===============================================================================

  COMMON_EVENTS ={
# Syntax: Event ID, Text
  10 => [1, "Battle!"]
}

#===============================================================================
# * Transfer To Command Instructions
# -----------------------------------------------------------------------------
# This hash lets you determine which maps you want your player to transfer to.
# For example, if we wanted to transfer our player to a map with an ID of 2,
# and we wanted to transfer him 3 tiles to the right and 3 tiles down, and make
# it show up as "Prolouge" on the title screen, we would use...
#
# 51 => [2, "Game Over"]
#
# This would show up on the title screen as:
#
# Game Over
#
# and would transfer you to the map you want to start in. Just make sure you
# don't have the common events triggered by a switch, or else it won't work.
#
# You can have 49 transfer events, numbering from 51 - 100.
#===============================================================================

  TRANSFER_TO ={
# Syntax: Map ID, Map X, Map Y, Text
  51 => [2, 1, 1, "Tutorial"]
}

#===============================================================================
# * Transfer + Common Event Instructions
# -----------------------------------------------------------------------------
# This hash lets you determine which maps you want your player to transfer to,
# and if you want a common event to play after the player transfers to that map.
# For example, if we wanted to transfer our player to a map with an ID of 3,
# and we wanted to transfer him 3 tiles to the right and 3 tiles down, play a
# common event with the ID of 2, and make it show up as "Epilogue" on the title
# screen, we would use...
#
# 101 => [2, 3, 3, 3, "Epilogue"]
#
# This would show up on the title screen as:
#
# Game Over
#
# and would transfer you to the map you want to start in. Just make sure you
# don't have the common events triggered by a switch, or else it won't work.
#
# You can have 49 transfer + common events, numbering from 101 - 150.
#===============================================================================

  COMMON_EVENT_TRANSFER_TO ={
# Syntax: Event ID, Map ID, Map X, Map Y, Text
  101 => [2, 2, 1, 1, "Prologue"]
}

#===============================================================================
# * Scene Command Instructions
# -----------------------------------------------------------------------------
# This hash lets you determine which scene you want to go to. This could be
# particuarly useful if you had a scene select screen or something. For example,
# if we wanted to transfer our scene to $Scene_Shop, and we wanted it to show up
# as "Shop" in the title screen, we would use...
#
# 151 => ["Scene_Shop", "Shop"]
#
# This would show up on the title screen as:
#
# Shop
#
# and would transfer you to the shop screen.
#
#===============================================================================

  SCENE_COMMANDS ={
# Syntax: Scene, Text
  151 => ["Scene_Gameover", "Game Over"]
}
end
end

#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
# The instance of this class is referenced by $game_temp.
#==============================================================================

class Game_Temp
  attr_accessor :title_command_index
 
  alias coz_initialize initialize
  def initialize
    coz_initialize
    @title_command_index = []
  end
end

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

class Scene_Title < Scene_Base
 
  #--------------------------------------------------------------------------
  # * Command List
  #--------------------------------------------------------------------------
  def create_command_list
    commands = []
    @ex_cmds = {}
    index_list = {}
    COZZIEKUNS::CTS::TITLE_COMMANDS.each_with_index { |c, i|
      case c
      when 0 # New Game
        index_list[:new_game] = commands.size
        commands.push(Vocab::new_game)
       
      when 1 # Continue
        index_list[:continue] = commands.size
        commands.push(Vocab::continue)
       
      when 2 # Shutdown
        index_list[:shutdown] = commands.size
        commands.push(Vocab::shutdown)
     
      when 10..50 # Common Events
        next unless COZZIEKUNS::CTS::COMMON_EVENTS.include?(c)
        @common_event = COZZIEKUNS::CTS::COMMON_EVENTS[c]
        index_list[c] = commands.size
        @ex_cmds[c] = commands.size
        commands.push(@common_event[1])
      when 51..100 # Transfer to Maps
        next unless COZZIEKUNS::CTS::TRANSFER_TO.include?(c)
        @map_transfer = COZZIEKUNS::CTS::TRANSFER_TO[c]
        index_list[c] = commands.size
        @ex_cmds[c] = commands.size
        commands.push(@map_transfer[3])
      when 101..150
        next unless COZZIEKUNS::CTS::COMMON_EVENT_TRANSFER_TO.include?(c)
        @common_event_map_transfer = COZZIEKUNS::CTS::COMMON_EVENT_TRANSFER_TO[c]
        index_list[c] = commands.size
        @ex_cmds[c] = commands.size
        commands.push(@common_event_map_transfer[4])
      when 151..999
        next unless COZZIEKUNS::CTS::SCENE_COMMANDS.include?(c)
        @scene_commands = COZZIEKUNS::CTS::SCENE_COMMANDS[c]
        index_list[c] = commands.size
        @ex_cmds[c] = commands.size
        commands.push(@scene_commands[1])
      end
    }
    $game_temp.title_command_index = index_list
    return commands
  end

  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    @command_window.update
   
    if Input.trigger?(Input::C)
      index = @command_window.index
      case index
      when $game_temp.title_command_index[:new_game]
        command_new_game
      when $game_temp.title_command_index[:continue]
        command_continue
      when $game_temp.title_command_index[:shutdown]
        command_shutdown
      else
        for key in @ex_cmds
          if @ex_cmds[key[0]] == index
            return_check = false
            found_key = key[0]
            break
          end
        end
       
        if found_key >= 10 and found_key <= 50 # Plays a common event
          @common_event = COZZIEKUNS::CTS::COMMON_EVENTS[found_key]
          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
          $game_temp.common_event_id = @common_event[0]
          $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
         
        elsif found_key >= 51 and found_key <= 100 # Plays a character transfer
          @transfer_to = COZZIEKUNS::CTS::TRANSFER_TO[found_key]
          confirm_player_location
          Sound.play_decision
          $game_party.setup_starting_members            # Initial party
          $game_map.setup(@transfer_to[0])    # Initial map position
          $game_player.moveto(@transfer_to[1], @transfer_to[2])
          $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
         
        elsif found_key >= 101 and found_key <= 150
          @common_event_trans = COZZIEKUNS::CTS::COMMON_EVENT_TRANSFER_TO[found_key]
          confirm_player_location
          Sound.play_decision
          $game_party.setup_starting_members            # Initial party
          $game_map.setup(@common_event_trans[1])    # Initial map position
          $game_player.moveto(@common_event_trans[2], @common_event_trans[3])
          $game_player.refresh
          $game_temp.common_event_id = @common_event_trans[0]
          $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
       
        elsif found_key <= 151
          @scene_caption = COZZIEKUNS::CTS::SCENE_COMMANDS[found_key]
          $scene = eval(@scene_caption[0] + ".new")
          end
        end # End found_key
      end # End case check
    end
   
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    @commands = create_command_list
    if COZZIEKUNS::CTS::ICONS
    @command_window = Window_TitleCommand.new(172, @commands)
  else
    @command_window = Window_Command.new(172, @commands)
    end
    @command_window.x = COZZIEKUNS::CTS::COMMAND_X
    @command_window.y = COZZIEKUNS::CTS::COMMAND_Y
    @command_window.height = [@command_window.height, COZZIEKUNS::CTS::MAX_ROW_NUM * 24 + 32].min
  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.opacity = COZZIEKUNS::CTS::OPACITY
    @command_window.windowskin = Cache.system(COZZIEKUNS::CTS::COMMAND_WINDOWSKIN)
    @command_window.openness = 0
    @command_window.open
  end
end

#==============================================================================
# ** Window_TitleCommand
#------------------------------------------------------------------------------
#  This window displays the icons in the title screen.
#==============================================================================

class Window_TitleCommand < Window_Command

  #--------------------------------------------------------------------------
  # * Draw Item
  #     index   : item number
  #     enabled : enabled flag. When false, draw semi-transparently.
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    rx = rect.x
    ry = rect.y
    rw = rect.width
    rh = rect.height
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    if COZZIEKUNS::CTS::ICON_INDEX.include?(@commands[index])
      icon = COZZIEKUNS::CTS::ICON_INDEX[@commands[index]]
    else
      icon = 0
    end
    draw_icon(icon, rx, ry)
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rx + 24, ry, rw - 24, rh, @commands[index])
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
  end
end

Credit


  • cozziekuns

Thanks

  • Yanfly, for letting me remix her Main Menu Melody

Support


Just post below.

Known Compatibility Issues

Probably won't work with other title screens.

Demo


See attached.

Author's Notes


----------------------------------------------------------------------------------------------------------------------------------------------

Coz
May 20, 2010 at 19:55
Say Yanfly, do you mind if I remix your Main Menu Melody script into something that’s useful for Scene_Title?

And if you allow me to do so, would I have to credit you, or can I just put you under special thanks?

Thanks in advance.

Yanfly
May 20, 2010 at 19:56
By all means. No crediting is necessary. Looking forward to seeing your script!

Coz
May 20, 2010 at 20:15
Thanks Yanfly. Sometimes, I think you’re too nice.

----------------------------------------------------------------------------------------------------------------------------------------------

Restrictions

:ccby:

*
Crew Slut
Rep:
Level 93
You'll love it!
For taking a crack at the RMRK Wiki
Nice script! Works very well, and is easy to set up.
« Last Edit: May 21, 2010, 01:17:43 AM by SirJackRex »

*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
Thanks. You even went to all that trouble making an image thanking me  :tpg:

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Best Member2012 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Most Mature Member2010 Favourite Staff Member
Yeah, it looks like a good script. Nice work cozziekuns