#=================================================  =============================#
#              [RGSS2] Rafidelis Title X - 2009 New Version                    #
#------------------------------------------------------------------------------#
# $RafiScripts.by = Rafidelis(Rafis)                                           #
# $RafiScripts.version = 2.0                                                   #
# $RafiScripts.release_date = 30/11/08  (d/m/y)                                #
# $RafiScripts.update_date = 13/08/09  (d/m/y)                                 #
# $RafiScripts.email = 
Rafa_Fidelis@hotmail.com or 
Rafa_Fidelis@yahoo.com.br   #
# $RafiScripts.website = 
www.ReinoRPG.com  or 
www.ReinoRPG.com/forum           #
#=================================================  =============================#
# [** $RafiScripts.versions **]  // Versões do Script/Script Versions          #
#------------------------------------------------------------------------------#
# 30/11/09 - Lançada Versão 1.0  - Mais de 1600 Downloads                      #
# 13/07/09 - Lançada Versão 2.0  - Reescrito para ser mai
#=================================================  =============================#
# [** $RafiScripts.desc **]  // Sobre o Script / About Script                  #
#------------------------------------------------------------------------------#
# Este script personaliza o Titulo,com varios efeitos.                         #
#=================================================  =============================#
# [** $RafiScripts.instr ] // Instruções / Instructions:                       #
#------------------------------------------------------------------------------#
# 1° Colar este script acima do Main,logo em seguida editar as Constantes no   #
# modulo Rafidelis::Title_X.                                                   #
# 2° Criar a Pasta 'Title' dentro da Pasta 'Graphics' onde deverão ser         #
# inseridos os Graficos do Titulo.                                             #
#=================================================  =============================#
# [** $RafiScripts.conf_start ] \\ Inicio das Configurações                    #
#------------------------------------------------------------------------------#
#=================================================  =============================#
#                         [** Module Rafidelis ]                               #
#[**Modulo necessario para rodar os Scripts criados por Rafidelis(RafiScripts)]#
#=================================================  =============================#
module Rafidelis
#=================================================  =============================#
# Rafidelis.add_script - Name : Name of Script - Version : Version of Script   #
#------------------------------------------------------------------------------#
  def self.add_script(name,version)
    $RafiScripts = [] if $RafiScripts.nil?
    $RafiScripts.push("Name : #{name} - Version: #{version}")
  end
#=================================================  =============================#
# Rafidelis.script_exist? - Name : Name of Script - Version : Version of Script#
#------------------------------------------------------------------------------#
  def self.script_exist?(name,version)
    $RafiScripts = [] if $RafiScripts.nil?
    return $RafiScripts.include?("Name : #{name} - Version: #{version}")
  end
#=================================================  =============================#
# Rafidelis.scripts - Return all script create by Rafidelis(RafiScripts)       #
#------------------------------------------------------------------------------#
  def self.scripts
    print $RafiScripts
  end
#=================================================  =============================#
# Rafidelis.create_txt - Create a .txt with all Rafidelis(RafiScripts) scripts #
#------------------------------------------------------------------------------#
  def self.create_txt(folder="")
    file = File.open("RafideliScripts.txt","wb")
    for i in 0...$RafiScripts.size
      file.write("#{$RafiScripts[i]}\r\n")
    end
  end
#=================================================  =============================#
# Rafidelis::Title_X - Modulo de Opções do Titulo                              #
#------------------------------------------------------------------------------#
  module Title_X
    # Adicionando o Script ao Sistema.Não Modifique.
    Rafidelis.add_script("Rafidelis Title X","2.0")
    # Script Adicionado
  #=================================================  =============================|
  # Abaixo o nome das Imagens que irão servir como "New Game" "Continue" e "Exit"|
  #=-----------------------------------------------------------------------------|
    COMMAND_PIC_NAMES = 
    ["NewGame",                      # Nome da Imagem usada como a opção novojogo
    "Continue",                      # Nome da Imagem usada como a opção continuar
    "ExitGame"]                      # Nome da Imagem usada como a opção Sair
    CURSOR_PIC_NAME = "op_selected"  # Nome da imagem usada como Cursor
    MOVE_TITLE_PIC = false           # true = mover false = não mover
    TITLE_PIC_HORIZONTAL_MOVIMENT_SPEED = 2   # Velocidade do movimento horizontal da img do titulo
    TITLE_PIC_VERTICAL_MOVIMENT_SPEED = 0     #  Velocidade do movimento vertical da img do titulo
  #=================================================  =============================|
  # Nome da Imagem com o nome do jogo,caso não queira usar deixe o nome em ""    |
  #------------------------------------------------------------------------------|
    NAME_GAME_PIC = "game_name" 
    NAME_GAME_PIC_POSY = -40      # Pos Y da imagem
  
  #=====================================|
  # Configurações :: Fog                |
  #-------------------------------------|
    TITLE_FOG_NAME = "fog"   # Nome da Fog usada no Title [ Deve estar na Pasta Picture]
    TITLE_FOG_BLEND_TYPE = 2 # Tipo do Blend da Fog do Title (0: normal, 1: adição, 2: subtração).
    TITLE_FOG_OPACITY = 25   # Opacidade Final da Fog ( 0 ~~ 255)
    FOG_HORIZONTAL_MOVIMENT_SPEED = 2     # velocidade do Movimento Horizontal da fog
    FOG_VERTICAL_MOVIMENT_SPEED = 0       # Velocidade do Movimento Vertical da Fog
  #=================================================  |
  # Configurações :: Imagem de Luz :: Lights        |
  #-------------------------------------------------|
    LIGHT_PIC_NAME = "lights"                  #Nome da imagem de luz
    TITLE_LIGHT_PIC_BLEND_TYPE = 1             # """"""""""""""""""""""""""" no title
    LIGHT_PIC_OPACITY = 235                    # Opacidade final da imagem de luz
    LIGHT_PIC_HORIZONTAL_MOVIMENT_VELOCITY = 1 # Velocidade do Movimento Horizontal da Luz
    LIGHT_PIC_VERTICAL_MOVIMENT_VELOCITY = 1   # Velocidade do Movimento vertical da Luz
    LIGHT_PIC_TITLE_ZOOM_X = 1.5               # Zoom x da img de luz no Title
    LIGHT_PIC_TITLE_ZOOM_Y = 1.5               # Zoom y da img de luz no Title
  end
end
#=================================================  =============================#
# [** $RafiScripts.conf_end ] \\ Fim das Configurações                         #
#------------------------------------------------------------------------------# 
# Verificando se o Script esta incluso no Sistema
if Rafidelis.script_exist?("Rafidelis Title X","2.0")
#=================================================  =============================
# Cache
#------------------------------------------------------------------------------
# Nesta classe vários gráficos são carregados e guardados como Bitmaps. Para 
# acelerar o processo e preservar a memória, os Bitmaps são guardados em cache
# para uso futuro. 
#=================================================  =============================
module Cache
  def self.title(filename)
    load_bitmap("Graphics/Title/", filename)
  end
end
#=================================================  =============================
# Scene_Title
#------------------------------------------------------------------------------
# Classe das operações na tela de título.
#=================================================  =============================
class Scene_Title < Scene_Base
  include Rafidelis::Title_X
  alias rafidelis_title_x_start start
  alias rafidelis_title_x_terminate terminate
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    rafidelis_title_x_start
    @command_window.opacity = @command_window.contents_opacity = 0
    @sprite.opacity = 0
    create_images
  end
  #--------------------------------------------------------------------------
  # Criação das Imagens do Titulo
  #--------------------------------------------------------------------------
  def create_images
    @sprites = []  # Imagens do Titulo
    images_name =  # Nome das Imagens
    [COMMAND_PIC_NAMES[0],COMMAND_PIC_NAMES[1],COMMAND_PIC_NAMES[2],
    CURSOR_PIC_NAME,NAME_GAME_PIC,TITLE_FOG_NAME,LIGHT  _PIC_NAME]
    for i in 0...images_name.size
      if i <= 2  # Novo Jogo/Continuar/Sair
        @sprites[i] = Sprite.new
        @sprites[i].bitmap = Cache.title(images_name[i])
        @sprites[i].x = (Graphics.width - @sprites[i].width)/2
        @sprites[i].y = i * @sprites[i].height + (Graphics.height - @sprites[i].height)/2 
        @sprites[i].opacity = 0
        @sprites[i].z = @sprite.z + 10 * i
        @sprites[i].tone = Tone.new(0,0,0,255)
      elsif i == 3 # Cursor
        @sprites[i] = Sprite.new
        @sprites[i].bitmap = Cache.title(images_name[i])
        @sprites[i].opacity = 0
        @sprites[i].x = (Graphics.width - @sprites[i].width)/2
        @sprites[i].y = @sprites[0].y
        @sprites[i].z = 20
      elsif i == 4 # Nome do Jogo
        @sprites[i] = Sprite.new
        @sprites[i].bitmap = Cache.title(images_name[i])
        @sprites[i].y = NAME_GAME_PIC_POSY 
        @sprites[i].opacity = 0
        @sprites[i].z = @sprite.z + 10 * i
      elsif i == 5 # Fog
        @sprites[i] = Plane.new
        @sprites[i].bitmap = Cache.title(images_name[i])
        @sprites[i].opacity = 5
        @sprites[i].blend_type = TITLE_FOG_BLEND_TYPE 
        @sprites[i].z = @sprite.z + 10 * i
      elsif i == 6 # Luz
        @sprites[i] = Plane.new
        @sprites[i].bitmap = Cache.title(images_name[i])
        @sprites[i].blend_type = TITLE_LIGHT_PIC_BLEND_TYPE
        @sprites[i].opacity = 0
        @sprites[i].zoom_y = LIGHT_PIC_TITLE_ZOOM_Y
        @sprites[i].zoom_x = LIGHT_PIC_TITLE_ZOOM_X
        @sprites[i].blend_type = TITLE_LIGHT_PIC_BLEND_TYPE
        @sprites[i].z = @sprites[4].z - 10
      end
    end
  end
  #--------------------------------------------------------------------------
  # Atualização Do Processo
  #--------------------------------------------------------------------------
  def update
    update_images_effects
    if @sprites[2].opacity >= 150
      @command_window.update
      if Input.trigger?(Input::C)
        case @command_window.index
        when 0    # Novo Jogo
          command_new_game
        when 1    # Continuar
          command_continue
        when 2    # Sair
          command_shutdown
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # Atualização dos efeitos da imagem de Luz
  #--------------------------------------------------------------------------
  def update_light
    @sprites[6].ox += LIGHT_PIC_HORIZONTAL_MOVIMENT_VELOCITY
    @sprites[6].oy += LIGHT_PIC_VERTICAL_MOVIMENT_VELOCITY
    @sprites[6].opacity += 2 if @sprites[6].opacity < LIGHT_PIC_OPACITY and @sprites[5].opacity >= TITLE_FOG_OPACITY
  end
  #--------------------------------------------------------------------------
  # Atualização dos efeitos da imagem de Fog
  #--------------------------------------------------------------------------
  def update_fog
    @sprites[5].opacity += 1 if @sprites[5].opacity < TITLE_FOG_OPACITY and @sprite.opacity >= 200
    @sprites[5].ox += FOG_HORIZONTAL_MOVIMENT_SPEED
    @sprites[5].oy += FOG_VERTICAL_MOVIMENT_SPEED
  end
  #--------------------------------------------------------------------------
  # Atualização dos efeitos das imagens de comandos
  #--------------------------------------------------------------------------
  def update_commands
    for i in 0..3
      @sprites[i].opacity += 2 if @sprites[i].opacity < 255 and @sprites[4].opacity >= 105
    end
    set_tone(@command_window.index)
  end
  #--------------------------------------------------------------------------
  # Atualização dos efeitos da imagem de Titulo(Fundo)
  #--------------------------------------------------------------------------
  def update_title_sprite
    @sprite.opacity += 2 if @sprite.opacity < 255
    @sprites[4].opacity += 1 if @sprites[4].opacity < 255 and @sprites[6].opacity >= LIGHT_PIC_OPACITY
    if MOVE_TITLE_PIC
      @sprite.ox += TITLE_PIC_HORIZONTAL_MOVIMENT_SPEED
      @sprite.oy += TITLE_PIC_VERTICAL_MOVIMENT_SPEED
    end
  end
  #--------------------------------------------------------------------------
  # Atualização dos efeitos das imagens do Titulo
  #--------------------------------------------------------------------------
  def update_images_effects
    update_fog
    update_light
    update_commands
    update_title_sprite
  end
  #--------------------------------------------------------------------------
  # Atualizar tom das Imagens do Titulo
  #--------------------------------------------------------------------------
  def set_tone(index)
    for i in 0..2
      @sprites[i].tone = Tone.new(0,0,0,255)
    end
    @sprites[index].tone = Tone.new(0,0,0)
    @sprites[3].y = @sprites[index].y
  end
  #--------------------------------------------------------------------------
  # Finalização do Processo
  #--------------------------------------------------------------------------
  def terminate
    rafidelis_title_x_terminate
    dispose_command_pictures
  end
  #--------------------------------------------------------------------------
  # Finalização das Imagens do Titulo
  #--------------------------------------------------------------------------
  def dispose_command_pictures
    for i in 0...@sprites.size
      @sprites[i].bitmap.dispose
      @sprites[i].dispose
    end
  end
  #--------------------------------------------------------------------------
  # Criação do gráfico de título
  #--------------------------------------------------------------------------
  def create_title_graphic
    if MOVE_TITLE_PIC
        @sprite = Plane.new
        @sprite.bitmap = Cache.title("Title")
      else
        @sprite = Sprite.new
        @sprite.bitmap = Cache.title("Title")
      end
    end
  end
 # Finalização da Verificação do Script no sistema
end
Социальные закладки