Orb Menu [RPG Maker XP]

27 de novembro de 2015

Orb Menu é um script desenvolvido para o RPG Maker XP pelo Marcelo Cavaco que adiciona um menu de orbes ao seu projeto que está sendo criado utilizando-se este maker.

Ele pode ser personalizado, modificando-se o script. Convém ter alguma experiência com RGSS para entender melhor como se usa, para quê e e como ele pode ser customizado.

Utilização

Para testar o script é simples: Vá no menu, selecione a opção “ORB’s” e tecle [ENTER]. Baixe e teste a demo para ter uma idéia melhor.

Para usar o script, insira o código abaixo em cima do Main:

#==============================================================================
# Criado por Marcelo Cavaco (marcelocavaco@click21.com.br)
#==============================================================================


#==============================================================================
# module MC_Setup (Módulo Marcelo Cavaco)
#------------------------------------------------------------------------------
# Este módulo agrupa alguns atributos para que você possa
# personalizar o script à sua necessidade.
#==============================================================================
module MC_Setup

  ICONES_DOS_ORBS = [ "001-Weapon01", 
                      "002-Weapon02", 
                      "003-Weapon03", 
                      "004-Weapon04", 
                      "005-Weapon05", 
                      "006-Weapon06", 
                      "007-Weapon07", 
                      "008-Weapon08"]

  IMAGENS_DOS_ORBS = ["orb1.jpg", 
                      "orb2.jpg", 
                      "orb1.jpg", 
                      "orb2.jpg", 
                      "orb1.jpg", 
                      "orb2.jpg", 
                      "orb1.jpg", 
                      "orb2.jpg"]
                      
  LISTA_DE_ORBS   = [ "ORB 01",
                      "ORB 02",
                      "ORB DE GELO",
                      "ORB DE FOGO",
                      "ORB 03",
                      "ORB 04",
                      "ORB 05",
                      "ORB 06"]

  FUNDO_ORB       = "orb.jpg"

  class DescricaoOrb
    # Variáveis públicas 
    attr_reader   :nOrb
    attr_reader   :aDesc
  
    def initialize(nIndice, aDescricao)
      @nOrb  = nIndice
      @aDesc = aDescricao      
    end
  end

  aDescOrb0 = [ "1 - 1111 1111 1111 1111 1111 1111 1111",
                "2 - 1111 1111 1111 1111 1111 1111",
                "3 - 1111 1111 1111 1111 1111 1111 1111",
                "4 - 1111 1111 1111 1111 1111",
                "5 - 1111 1111 1111 1111 1111 1111" ]

  aDescOrb1 = [ "1 - 2222 2222 2222 2222",
                "2 - 2222 2222 2222 2222 2222",
                "3 - 2222 2222 2222 2222 2222 2222",
                "4 - 2222 2222 2222 2222 2222",
                "5 - 2222 2222 2222 2222",
                "6 - 2222 2222 2222 2222 2222"]

  aDescOrb2 = [ "1 - 3333 3333 3333 3333 3333 3333 3333",
                "2 - 3333 3333 3333 3333 3333 3333 3333",
                "3 - 3333 3333 3333 3333 3333 3333 3333",
                "4 - 3333 3333 3333 3333 3333 3333 3333",
                "5 - 3333 3333 3333 3333 3333 3333 3333"]

  aDescOrb3 = [ "1 - 4444 4444 4444 4444 4444 4444 4444",
                "2 - 4444 4444 4444 4444 4444 4444",
                "3 - 4444 4444 4444 4444 4444",
                "4 - 4444 4444 4444 4444 4444 4444",
                "5 - 4444 4444 4444 4444 4444 4444",
                "6 - 4444 4444 4444 4444 4444",
                "7 - 4444 4444 4444 4444 4444 4444 4444",
                "8 - 4444 4444 4444 4444 4444 4444 4444 4444",
                "9 - 4444 4444 4444 4444 4444 4444 4444",
                "10 - 4444 4444 4444 4444 4444 4444",
                "11 - 4444 4444 4444 4444 4444"]

  aDescOrb4 = [ "1 - 4444 6789 1234 9678 9",
                "2 - 6789 1234 9678 9",
                "3 - 6789 1234 9678 9",
                "4 - 6789 1234 9678 9",
                "5 - 6789 1234 9678 9" ]

  aDescOrb5 = [ "1 - 5555 6789 1234 9678 9",
                "2 - 6789 1234 9678 9",
                "3 - 6789 1234 9678 9",
                "4 - 6789 1234 9678 9",
                "5 - 6789 1234 9678 9" ]

  aDescOrb6 = [ "1 - 6666 6789 1234 9678 9",
                "2 - 6789 1234 9678 9",
                "3 - 6789 1234 9678 9",
                "4 - 6789 1234 9678 9",
                "5 - 6789 1234 9678 9" ]

  aDescOrb7 = [ "1 - 7777 6789 1234 9678 9",
                "2 - 6789 1234 9678 9",
                "3 - 6789 1234 9678 9",
                "4 - 6789 1234 9678 9",
                "5 - 6789 1234 9678 9" ]


  DESCRICOES_ORBS = [ DescricaoOrb.new(0, aDescOrb0),
                      DescricaoOrb.new(1, aDescOrb1),
                      DescricaoOrb.new(2, aDescOrb2),
                      DescricaoOrb.new(3, aDescOrb3),
                      DescricaoOrb.new(4, aDescOrb4),
                      DescricaoOrb.new(5, aDescOrb5),
                      DescricaoOrb.new(6, aDescOrb6),
                      DescricaoOrb.new(7, aDescOrb7)]
  

  def initialize
    super
  end
  
end


#==============================================================================
# Window_Base
#------------------------------------------------------------------------------
# Esta classe é para todos as janelas do jogo
#==============================================================================

class Window_Base < Window

  #--------------------------------------------------------------------------
  # - Desenhar uma Determinada Picture
  #
  #     picture_name : Nome da Picture a ser desenhada
  #     x            : Desenhar a partir da coordenada x
  #     y            : Desenhar a partir da coordenada y
  #--------------------------------------------------------------------------
  def draw_picture(picture_name, x, y, cw, ch)
    if FileTest.exist?("Graphics/Pictures/" + picture_name )
      bitmap = RPG::Cache.picture(picture_name)
      src_rect = Rect.new(0, 0, cw, ch)
      self.contents.blt(x , y , bitmap, src_rect)
    else
      print "A figura Graphics/Pictures/" + picture_name + " não foi encontrada!\n\nEntre em contato com marcelocavaco@click21.com.br para mais detalhes..."
    end
  end

end

#==============================================================================
# Window_SelectOrb
#------------------------------------------------------------------------------
# Janela para selecionar qual o treinamento será efetuado
#==============================================================================
class Window_Descricao_Orbs < Window_Base

  # Variáveis públicas 
  attr_reader   :nIndex 
  attr_reader   :aDescOrb 
  attr_reader   :aLinhas 

  def alterar_orb(index)
    @nIndex = index
    @aDescOrb = MC_Setup::DESCRICOES_ORBS
    @aLinhas  = @aDescOrb[@nIndex].aDesc
    refresh
  end
  
  #------------------------------------------------------------------------------
  # método initialize da janela Window_Descricao_Orbs
  #------------------------------------------------------------------------------
  def initialize(index)
    
    @nIndex   = index

    @aDescOrb = MC_Setup::DESCRICOES_ORBS
    @aLinhas  = @aDescOrb[@nIndex].aDesc

    # Cálculos para centralizar a janela
    @nLarguraJanela = 630
    @nAlturaJanela  = ((@aLinhas.size+3)*32)+4
    nPosX           = (640/2)-(@nLarguraJanela/2)
    nPosY           = (480/2)-(@nAlturaJanela/2)
    
    # incializa a classe mãe
    super( nPosX, nPosY, @nLarguraJanela, @nAlturaJanela)

    # configura a área disponível para uso da janela
    self.contents = Bitmap.new(width - 32, height - 32)
    # configura a fonte da janela
    self.contents.font.name = $fontface
    # configura o tamanho da fonte da janela
    self.contents.font.size = $fontsize

    # redesenhando a janela
    refresh

    self.active = false

    # indicando a posição da janela no eixo Z
    self.z=50
  end # fim do método initialize da classe Window_Descricao_Orbs

  #------------------------------------------------------------------------------
  # método refresh da janela Window_Descricao_Orbs
  #------------------------------------------------------------------------------
  def refresh

    @nAlturaJanela  = ((@aLinhas.size+3)*32)+4
    nPosX           = (640/2)-(@nLarguraJanela/2)
    nPosY           = (480/2)-(@nAlturaJanela/2)

    # configura a área disponível para uso da janela
    self.contents = Bitmap.new(@nLarguraJanela - 32, @nAlturaJanela - 32)

    # indicando a skin da janela
    self.windowskin = RPG::Cache.windowskin($game_system.windowskin_name)

    self.x      = nPosX
    self.y      = nPosY
    self.height = @nAlturaJanela

    # limpando toda a janela
    self.contents.clear

    desenhar_texto(@nIndex)
  end # fim do método refresh da classe Window_Descricao_Orbs

  #------------------------------------------------------------------------------
  # método draw_titulo da janela Window_Descricao_Orbs
  #------------------------------------------------------------------------------
  def draw_titulo(index, cTexto)
    self.contents.blt(4, 4, RPG::Cache.icon(MC_Setup::ICONES_DOS_ORBS[index]), Rect.new(0, 0, 24, 24), 255)
      
    self.contents.font.color = normal_color
    self.contents.draw_text(4+30, 4, @nLarguraJanela, 32, cTexto, 0)
  end
  
  #------------------------------------------------------------------------------
  # método refresh da janela Window_Descricao_Orbs
  #------------------------------------------------------------------------------
  def desenhar_texto(nIndex)

    draw_titulo(nIndex, MC_Setup::LISTA_DE_ORBS[nIndex])
    draw_picture(MC_Setup::IMAGENS_DOS_ORBS[nIndex], 4, 64, 400, 400)

    # desenhandoa listagem de itens
    for i in 0..@aLinhas.size
      if @aLinhas[i] != nil then
        self.contents.draw_text(200, 32*(i+2), @nLarguraJanela, 32, @aLinhas[i], 3)
      end
    end
  end # fim do método refresh da classe Window_Descricao_Orbs

end # fim da classe Window_Descricao_Orbs
#------------------------------------------------------------------------------
# Fim da classe Window_Descricao_Orbs
#------------------------------------------------------------------------------



#==============================================================================
# Window_SelectOrb
#------------------------------------------------------------------------------
# Janela para selecionar qual o treinamento será efetuado
#==============================================================================
class Window_SelectOrb < Window_Selectable

  # Variáveis públicas 
  attr_reader   :aOrbs 
  attr_reader   :aIcones 

  #------------------------------------------------------------------------------
  # método initialize da janela Window_SelectOrb
  #------------------------------------------------------------------------------
  def initialize()

    @aOrbs = MC_Setup::LISTA_DE_ORBS
    @aIcones = MC_Setup::ICONES_DOS_ORBS

    # Cálculos para centralizar a janela
    nNumeroOpcoes  = @aOrbs.size
    nLarguraJanela = 250
    nAlturaJanela  = 32*(nNumeroOpcoes+1)
    nPosX          = (640/2)-(nLarguraJanela/2)
    nPosY          = (480/2)-(nAlturaJanela/2)
    
    # incializa a classe mãe
    super( nPosX, nPosY, nLarguraJanela, nAlturaJanela)

    # configura a área disponível para uso da janela
    self.contents = Bitmap.new(width - 32, height - 32)
    # configura a fonte da janela
    self.contents.font.name = $fontface
    # configura o tamanho da fonte da janela
    self.contents.font.size = $fontsize

    # indicando quantos itens queremos na tela de comando
    # itens igual ao total de valores no vetor @commands
    self.index = @item_max = @aOrbs.size
    # indicando quantas colunas queremos na tela de comando
    # colunas igual ao número de itens
    @column_max = 1

    # redesenhando a janela
    refresh

    self.active = false

    # indicando a posição inicial do cursor ao abrir a janela
    self.index = 0
    # indicando a posição da janela no eixo Z
    self.z=50
  end # fim do método initialize da classe Window_SelectOrb

  #------------------------------------------------------------------------------
  # método draw_item da janela Window_SelectOrb
  #------------------------------------------------------------------------------
  def draw_item(index, cTexto)
    self.contents.blt(4, (index*32)+4, RPG::Cache.icon(@aIcones[index]), Rect.new(0, 0, 24, 24), 255)
    
    self.contents.font.color = normal_color
    self.contents.draw_text(4+30, index*32, 250, 32, cTexto, 0)
  end
  
  #------------------------------------------------------------------------------
  # método refresh da janela Window_SelectOrb
  #------------------------------------------------------------------------------
  def refresh
    
    # limpando toda a janela
    self.contents.clear
    
    # indicando a skin da janela
    self.windowskin = RPG::Cache.windowskin($game_system.windowskin_name)
    
    # desenhandoa listagem de itens
    for i in 0...@aOrbs.size
      draw_item(i, @aOrbs[i])
    end
    
  end # fim do método refresh da classe Window_SelectOrb

end # fim da classe Window_SelectOrb
#------------------------------------------------------------------------------
# Fim da classe Window_SelectOrb
#------------------------------------------------------------------------------





#==============================================================================
# Window_PlayTime
#------------------------------------------------------------------------------
# Janela que exibe o tempo de jogo
#==============================================================================

class Window_PlayTime < Window_Base

  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 80)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
  end

  #--------------------------------------------------------------------------
  # - Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 24, "Tempo de Jogo")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 24, 120, 24, text, 2)
  end
  
end
  

#==============================================================================
# Window_Steps
#------------------------------------------------------------------------------
# Janela que exibe a quantidade de passos
#==============================================================================

class Window_Steps < Window_Base

  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 80)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
  end
  
  #--------------------------------------------------------------------------
  # - Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Passos")
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 20, 120, 32, $game_party.steps.to_s, 2)
  end
end



#------------------------------------------------------------------------------
# Scene_Orb
#------------------------------------------------------------------------------
# Classe que vai controlar as janelas de Orb's
#------------------------------------------------------------------------------
class Scene_Orb

  #------------------------------------------------------------------------------
  # método main executado toda vez que iniciamos o objeto 
  # (Scene_Orb.new)
  #------------------------------------------------------------------------------
  def main()
    
    @spriteset = Sprite.new
    @spriteset.bitmap = RPG::Cache.picture(MC_Setup::FUNDO_ORB)

    # definindo uma variável para nossa janela de comandos principais
    @command_window = Window_SelectOrb.new
    # informando que queremos a janela de comandos ativada
    @command_window.active = true
    # informando que queremos a janela de comandos visível
    @command_window.visible = true

    @descricao_orb         = Window_Descricao_Orbs.new(0)
    @descricao_orb.active  = false
    @descricao_orb.visible = false

    # executa a transição da tela
    Graphics.transition
    loop do
      
      # atualiza os gráficos
      Graphics.update
      # atualiza as entradas
      Input.update
      # atualiza scene indefinidamente até que a scene seja fechada
      update
      if $scene != self
        # se sair desta scene, 
        # para de executar este código
        break
      end # fim do if $scene != self
      
    end # fim do comando loop do
    
    # finaliza os gráficos e imagens
    Graphics.freeze
    
    @spriteset.dispose
    
    # fecha todas as janelas que criamos nesta scene
    @command_window.dispose
    @descricao_orb.dispose
    
  end # fim do método main da classe Scene_Orb
  
  #------------------------------------------------------------------------------
  # método update da classe Scene_Orb
  #------------------------------------------------------------------------------
  def update
    # atualiza todas as janelas que criamos nesta scene
    @command_window.update
    @descricao_orb.update

    if @command_window.active
      update_command
    elsif @descricao_orb.active
      update_command_orb
    end
    
  end # fim do método update da classe Scene_Orb
  
  #------------------------------------------------------------------------------
  # método update_command_orb da classe Scene_Orb
  #------------------------------------------------------------------------------
  def update_command_orb
    #verifica a tecla pressionada
    if Input.trigger?(Input::B)
      # se a tecla dgitada por [esc] ou X
      # toca som de cancelar
      $game_system.se_play($data_system.cancel_se) 

      @command_window.active = true # ativa a janela @command_window
      @command_window.visible = true # torna a janela @command_window visível
      @descricao_orb.active = false # desativa a janela @treinamento
      @descricao_orb.visible = false # torna a janela @treinamento invisível
      
    end # fim do if Input.trigger?
  end # fim do método update_command_orb da classe Scene_Orb    

  #------------------------------------------------------------------------------
  # método update_command da classe Scene_Orb
  #------------------------------------------------------------------------------
  def update_command
    
    #verifica a tecla pressionada
    if Input.trigger?(Input::B)
      # se a tecla dgitada por [esc] ou X
      # toca som de cancelar
      $game_system.se_play($data_system.cancel_se) 

      @command_window.active = false # desativa a janela @command_window
      @command_window.visible = false # torna a janela @command_window invisível
      @descricao_orb.active = false # desativa a janela @nivel
      @descricao_orb.visible = false # torna a janela @nivel invisível
      
      # Mudar para a tela do Menu
      $scene = Scene_Menu.new(4)
    elsif Input.trigger?(Input::C)
      # se a tecla digitada por [enter] ou C
      
      # toca som de decisão
      $game_system.se_play($data_system.decision_se)
      @command_window.active = false # desativa a janela @command_window
      @command_window.visible = false # torna a janela @command_window invisível
      @descricao_orb.alterar_orb(@command_window.index)
      @descricao_orb.active = true # ativa a janela @treinamento
      @descricao_orb.visible = true # torna a janela @treinamento visível
          
    end # fim do if Input.trigger?
  end # fim do método update_command da classe Scene_Orb
  
end # fim da classe Scene_Orb
#------------------------------------------------------------------------------
# Fim da classe Scene_Orb
#------------------------------------------------------------------------------




#==============================================================================
# Scene_Menu
#------------------------------------------------------------------------------
# Esta classe processa a Tela de Menu
#==============================================================================

class Scene_Menu
  
  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #
  #     menu_index : posição inicial do cursor de comando
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  
  #--------------------------------------------------------------------------
  # - Processamento Principal
  #--------------------------------------------------------------------------
  def main
    # Criar janela de comando
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Orb's"
    s6 = "Salvar"
    s7 = "Fim de Jogo"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.index = @menu_index
    # Se o número de membros do Grupo de Heróis for 0
    if $game_party.actors.size == 0
      # Desabilar as janelas de Item, Habilidades, Equipamento e Status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    # Se Salvar for Proibido
    if $game_system.save_disabled
      # Desabilitar Salvar
      @command_window.disable_item(4)
    end
    # Criar janela de Tempo de Jogo
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 0
    @playtime_window.y = 256
    # Criar janela de Número Passos
    @steps_window = Window_Steps.new
    @steps_window.x = 0
    @steps_window.y = 336
    # Criar janela de Dinheiro
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = 416
    # Criar janela de Status
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
    # Criar janela de Nível
    @nivel_window = Window_MenuStatus.new
    @nivel_window.x = 160
    @nivel_window.y = 0
    # Executar transição
    Graphics.transition
    # Loop principal
    loop do
      # Atualizar a tela de jogo
      Graphics.update
      # Atualizar a entrada de informações
      Input.update
      # Atualizar Frame
      update
      # Abortar loop se a tela for alterada
      if $scene != self
        break
      end
    end
    # Preparar para transiçõa
    Graphics.freeze
    # Exibição das janelas
    @command_window.dispose
    @playtime_window.dispose
    @steps_window.dispose
    @gold_window.dispose
    @status_window.dispose
    @nivel_window.dispose
  end
  
  #--------------------------------------------------------------------------
  # - Atualização do Frame
  #--------------------------------------------------------------------------
  def update
    # Atualizar janelas
    @command_window.update
    @playtime_window.update
    @steps_window.update
    @gold_window.update
    @status_window.update
    @nivel_window.update #
    # Se a janela de comandos estiver ativo: chamar update_command
    if @command_window.active
      update_command
      return
    end
    # Se a janela de Status estiver ativa: call update_status
    if @status_window.active or @nivel_window.active
      update_status
      return
    end
  end

  #--------------------------------------------------------------------------
  # - Atualização do Frame (Quando a janela de Comandos estiver Ativa)
  #--------------------------------------------------------------------------
  def update_command
    # Se o botão B for pressionado
    if Input.trigger?(Input::B)
      # Reproduzir SE de cancelamento
      $game_system.se_play($data_system.cancel_se)
      # Alternar para a tela do mapa
      $scene = Scene_Map.new
      return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # Se o comando for outro senão Salvar, Fim de Jogo e o número de Heróis no
      # Grupo for 0
      if $game_party.actors.size == 0 and @command_window.index < 4 # Reproduzir SE de erro $game_system.se_play($data_system.buzzer_se) return end # Ramificação por posição do cursor na janela de comandos case @command_window.index when 0 # Itens # Reproduzir SE de OK $game_system.se_play($data_system.decision_se) # Alternar para a tela de Itens $scene = Scene_Item.new when 1 # Habilidades # Play decision SE $game_system.se_play($data_system.decision_se) # Ativar o status da janela @command_window.active = false @status_window.active = true @status_window.index = 0 when 2 # Equipamentos # Reproduzir SE de OK $game_system.se_play($data_system.decision_se) # Ativar o status da janela @command_window.active = false @status_window.active = true @status_window.index = 0 when 3 # Status # Reproduzir SE de OK $game_system.se_play($data_system.decision_se) # Ativar o status da janela @command_window.active = false @status_window.active = true @status_window.index = 0 when 4 # Orb's Menu # Reproduzir SE de OK $game_system.se_play($data_system.decision_se) # Alternar para a tela de Orb's $scene = Scene_Orb.new() when 5 # Salvar # Se Salvar for proibido if $game_system.save_disabled # Reproduzir SE de erro $game_system.se_play($data_system.buzzer_se) return end # Reproduzir SE de OK $game_system.se_play($data_system.decision_se) # Alternar para a tela de save $scene = Scene_Save.new when 6 # Fim de Jogo # Reproduzir SE de OK $game_system.se_play($data_system.decision_se) # Alternar para a tela de Fim de Jogo $scene = Scene_End.new end return end end #-------------------------------------------------------------------------- # - Atualização do Frame (Quando o status da Janela estiver Ativo) #-------------------------------------------------------------------------- def update_status # Se o botão B for pressionado if Input.trigger?(Input::B) # Reproduzir SE de cancelamento $game_system.se_play($data_system.cancel_se) # Torna a janela de comandos ativa @command_window.active = true @status_window.active = false @status_window.index = -1 return end # Se o botão C for pressionado if Input.trigger?(Input::C) # Ramificação por posição do cursor na janela de comandos case @command_window.index when 1 # Habilidades # Se o limite de ação deste Herói for de 2 ou mais if $game_party.actors[@status_window.index].restriction >= 2
          # Reproduzir SE de erro
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Habilidades
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # Equipamento
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Equipamento
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # Status
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Status
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
  
end


#==============================================================================
# Scene_Save
#------------------------------------------------------------------------------
# Esta classe processa o Save.
#==============================================================================

class Scene_Save < Scene_File
  
  #--------------------------------------------------------------------------
  # - Processamento de Decisão
  #--------------------------------------------------------------------------
  def on_decision(filename)
    # Reproduzir Se de Save
    $game_system.se_play($data_system.save_se)
    # Graavar
    file = File.open(filename, "wb")
    write_save_data(file)
    file.close
    # Caso tenha sido chamdo por um evento...
    if $game_temp.save_calling
      # Limpar flag de chamado de save
      $game_temp.save_calling = false
      # Mudar para a tela do Mapa
      $scene = Scene_Map.new
      return
    end
    # Mudar para a tela do Menu (Alterado)
    $scene = Scene_Menu.new(5)
  end
  
  #--------------------------------------------------------------------------
  # - Processo de Cancelamento
  #--------------------------------------------------------------------------
  def on_cancel
    # Reproduzir SE de cancelamento
    $game_system.se_play($data_system.cancel_se)
    # Caso tenha sido chamdo por um evento...
    if $game_temp.save_calling
      # Limpar flag de chamado de save
      $game_temp.save_calling = false
      # Mudar para a tela do Mapa
      $scene = Scene_Map.new
      return
    end
    # Mudar para a tela do Menu  (Alterado)
    $scene = Scene_Menu.new(5)
  end
  
end



#==============================================================================
# Scene_End
#------------------------------------------------------------------------------
# Esta classe processa a tela de Game Over.
#==============================================================================

class Scene_End
  
  #--------------------------------------------------------------------------
  # - Atualização do Frame
  #--------------------------------------------------------------------------
  def update
    # Atualizar janela de comandos
    @command_window.update
    # Se o botão B for pressionado
    if Input.trigger?(Input::B)
      # Reproduzir SE de cancelamento
      $game_system.se_play($data_system.cancel_se)
      # Alternar para a tela de Menu (alterado)
      $scene = Scene_Menu.new(6)
      return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # Ramificação por posição na janela de comandos
      case @command_window.index
      when 0  # Ir à tela de título
        command_to_title
      when 1  # Sair
        command_shutdown
      when 2  # Cancelar
        command_cancel
      end
      return
    end
  end
  
  #--------------------------------------------------------------------------
  # - Processamento na Escolha do Comando Cancelar
  #--------------------------------------------------------------------------
  def command_cancel
    # Reproduzir SE de OK
    $game_system.se_play($data_system.decision_se)
    # Alternar para a tela do Menu
    $scene = Scene_Menu.new(6)
  end
end

Download e ficha técnica

  • Download (clique com o botão esquerdo do mouse ou toque no link)
  • Desenvolvedor, publisher e/ou distribuidor: Marcelo Cavaco
  • SO: Windows 98/98SE/Me/2000/XP/Vista/7
  • Tamanho: 238KB (pacote de instalação e/ou espaço em disco)
  • Licença: Grátis
  • Categoria: Programação XP
  • Tags: Em revisão, RPG Maker XP
  • Adicionado por: LichKing
  • Acessos: 101

Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Acesse aqui e saiba como. Obrigado!

Deixe um comentário

Inscreva-se na nossa newsletter!