Full Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Resident Evil 2 e 3 Menu

4 participantes

Ir para baixo

Resident Evil 2 e 3 Menu Empty Resident Evil 2 e 3 Menu

Mensagem por Alucard_2 10.04.10 12:36

Resident Evil 2 e 3 Menu v2.0


Por Alucard_2(eu mesmo)

Introdução

Este script modifica o menu principal para um parecido com o do jogo Resident Evil 2 e 3 para PS1 (PSX, PSOne, como preferirem), além de deixar o menu de equipamentos, skills, itens e de sair do jogo mais "compatível" com o interface.
OBS: o menu é para apenas 1 personagem no grupo.

Como usar.

Apenas cole o script na seção de scripts adicionais.
Não precisa de configurações.

Script
Código:
########################################################################################
# Resident Evil 2/3 Menu v. 2.0 by Alucard_2                                          #
########################################################################################
# Feito por Alucard_2                                                                  #
########################################################################################
# Créditos para Alucard_2(criador) e para br_lemes(que me ensinou RGSS2 um pouco mais) #
#--------------------------------------------------------------------------------------#
# IMPORTANTE: Ao colocar este script em outro forum/site/outros, favor dar os créditos!#
########################################################################################

#####################
# Window_MenuStatus #
#####################
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #    x : coordenada X da janela
  #    y : coordenada Y da janela
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(0, 112, 544, 248)
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = 1
    draw_actor_state($game_party.members[0], x, y)
    end
  end
  #--------------------------------------------------------------------------
  # Atualização do cursor
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0              # Sem cursor
      self.cursor_rect.empty
    elsif @index < @item_max    # Padrão
      self.cursor_rect.set(0, @index * 96, contents.width, 96)
    elsif @index >= 100        # Si
      self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
    else                        # O todo
      self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
    end
  end
  #--------------------------------------------------------------------------
  # Desenha a experiência
  #--------------------------------------------------------------------------
  def draw_exp_info(actor, x, y)
    s1 = actor.exp_s
    s2 = actor.next_rest_exp_s
    s_next = sprintf(Vocab::ExpNext, Vocab::level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y + 24 * 0, 180, 24, Vocab::ExpTotal)
    self.contents.draw_text(x, y + 24 * 2, 180, 24, s_next)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y + 24 * 1, 180, 24, s1, 2)
    self.contents.draw_text(x, y + 24 * 3, 180, 24, s2, 2)
  end


###################
# Window_exp_info #
###################
class Window_exp_info < Window_Selectable
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #    x : coordenada X da janela
  #    y : coordenada Y da janela
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(0, 360, 544, 305)
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = 1
      x = 104
      y = actor.index * 96 + WLH / 2
      draw_exp_info($game_party.members[0], 0, 0)
    end
  end
  #--------------------------------------------------------------------------
  # Atualização do cursor
  #--------------------------------------------------------------------------
  def update_cursor
    if @index < 0              # Sem cursor
      self.cursor_rect.empty
    elsif @index < @item_max    # Padrão
      self.cursor_rect.set(0, @index * 96, contents.width, 96)
    elsif @index >= 100        # Si
      self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
    else                        # O todo
      self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
    end
  end


################
# Window_Actor #
################
class Window_Actor < Window_Base
  def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  def dispose
    super
  end
  def update
    super
  end
  def refresh
    self.contents.clear
    @item_max = 1
      draw_actor_face($game_party.members[0], 0, 20, 92)
      draw_actor_name($game_party.members[0], 15, 0)
    end
  end

###################
# Window_Actor_HP #
###################
class Window_Actor_HP < Window_Base
  def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  def dispose
    super
  end
  def update
    super
  end
  def refresh
    self.contents.clear
    @item_max = 1
      draw_actor_hp($game_party.members[0], 15, 0)
      draw_state(80, 0)
    end
  end

###################
# Window_Actor_MP #
###################
class Window_Actor_MP < Window_Base
  def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  def dispose
    super
  end
  def update
    super
  end
  def refresh
    self.contents.clear
    @item_max = 1
      draw_actor_mp($game_party.members[0], 15, 0)
    end
  end

  def draw_state(x, y)
    @item_max = 1
      draw_actor_state($game_party.members[0], 150, 0)
  end


##############
# Scene_Menu #
##############
class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #    menu_index : posição inicial do cursor
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @status2_window = Window_Status.new($game_party.members[0])
    @actor_window = Window_Actor.new(0, 0, 120, 140)
    @hp_window = Window_Actor_HP.new(120, 56, 224, 56)
    @mp_window = Window_Actor_MP.new(344, 56, 200, 56)
  end
  #--------------------------------------------------------------------------
  # Fim do processo
  #--------------------------------------------------------------------------
  def terminate
    super
    @command_window.dispose
    @gold_window.dispose
    @actor_window.dispose
    @hp_window.dispose
    @mp_window.dispose
    @status2_window.dispose
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    @command_window.update
    @gold_window.update
    @hp_window.update
    @mp_window.update
    @actor_window.update
    @status2_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # Criação da janela de comandos
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::equip
    s2 = Vocab::skill
    s3 = Vocab::item
    s4 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # Se não houver membros na equipe
      @command_window.draw_item(0, false)    # Desabilita "Equipamentos"
      @command_window.draw_item(1, false)    # Desabilita "Habilidades"
      @command_window.draw_item(2, false)    # Desabilita "Itens"
    end
  end
  #--------------------------------------------------------------------------
  # Atualização da escolha de comando
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # Equipamentos
        $scene = Scene_Equip.new
      when 1      # Habilidades
        $scene = Scene_Skill.new
      when 2      # Salvar
        $scene = Scene_Item.new
      when 3      # Fim de Jogo
        $scene = Scene_End.new
      end
    end
  end
  #--------------------------------------------------------------------------
  # Início da seleção de herói
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # Fim da seleção de herói
  #--------------------------------------------------------------------------
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # Atualização da seleção de herói
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1  # Habilidades
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # Equipamento
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # Status
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end
###################
# Window_Actor_LV #
###################
class Window_Actor_LV < Window_Base
    def initialize(x, y, width, height)
    super(x, y, width, height)
    refresh
  end
  def dispose
    super
  end
  def update
    super
  end
  def refresh
    self.contents.clear
    @item_max = 1
    draw_actor_level($game_party.members[0], 20, 0)
  end
end

#################
# Window_Status #
#################
class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #    actor : herói
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(330, 112, 213, 248)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = 1
      draw_equipments(0, 0)
    end
  #--------------------------------------------------------------------------
  # Exibição dos parâmetros
  #    x : exibe na coordenada X
  #    y : exibe na coordenada Y
  #--------------------------------------------------------------------------
  def draw_parameters(actor, x, y)
    @item_max = 1
      x = 0
      y = 10
      draw_actor_parameter($game_party.members[0], x, y, 0)
      draw_actor_parameter($game_party.members[0], x, y+30, 1)
      draw_actor_parameter($game_party.members[0], x, y+60, 2)
      draw_actor_parameter($game_party.members[0], x, y+90, 3)
    end
  #--------------------------------------------------------------------------
  # Exibição da experiência
  #    x : exibe na coordenada X
  #    y : exibe na coordenada Y
  #--------------------------------------------------------------------------
  def draw_exp_info(x, y)
    @actor = $game_party.members[0]
    s1 = @actor.exp_s
    s2 = @actor.next_rest_exp_s
    s_next = sprintf(Vocab::ExpNext, Vocab::level)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y + WLH * 0, 180, WLH, Vocab::ExpTotal)
    self.contents.draw_text(x, y + WLH * 2, 180, WLH, s_next)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y + WLH * 1, 180, WLH, s1, 2)
    self.contents.draw_text(x, y + WLH * 3, 180, WLH, s2, 2)
  end
  #--------------------------------------------------------------------------
  # Exibição de informações básicas
  #    x : exibe na coordenada X
  #    y : exibe na coordenada Y
  #--------------------------------------------------------------------------
  def draw_state(x, y)
    @item_max = 1
      x = 104
      y = actor.index * 96 + WLH / 2
      draw_actor_state($game_party.members[0], 10, 10)
    end
  #--------------------------------------------------------------------------
  # Exibição dos equipamentos
  #    x : exibe na coordenada X
  #    y : exibe na coordenada Y
  #--------------------------------------------------------------------------
  def draw_equipments(x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, 24, Vocab::equip)
    for i in 0..4
      draw_item_name($game_party.members[0].equips[i], x + 16, y + WLH * (i + 1))
    end
  end
end

##################
# Window_Command #
##################
class Window_Command < Window_Selectable
  #--------------------------------------------------------------------------
  # Variáveis públicas
  #--------------------------------------------------------------------------
  attr_reader  :commands                # Comandos
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #    width      : largura da janela
  #    commands  : array de comandos
  #    column_max : número de colunas (2 ou mais)
  #    row_max    : número de linhas (0: número de comandos)
  #    spacing    : espaçamento entre items localizados próximos
  #--------------------------------------------------------------------------
  def initialize(width, commands, column_max = 4, row_max = 0, spacing = 10)
    if row_max == 0
      row_max = (commands.size + column_max - 1) / column_max
    end
    super(240, 0, 300, row_max * WLH + 32, spacing)
    @commands = commands
    @item_max = commands.size
    @column_max = column_max
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # Desenho do item
  #    index  : número (ID) do item
  #    enabled : espaço ativo. Quando translúcido significa falso
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rect, @commands[index])
  end
end
###############
# Scene_Equip #
###############
class Scene_Equip < Scene_Base
  #--------------------------------------------------------------------------
  # Constantes
  #--------------------------------------------------------------------------
  EQUIP_TYPE_MAX = 5                      # Número máximo de equipamentos
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #    actor_index : index do herói
  #    equip_index : index dos equipamentos
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, equip_index = 0)
    @actor_index = actor_index
    @equip_index = equip_index
  end
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    @actor = $game_party.members[@actor_index]
    create_item_windows
    @equip_window = Window_Equip.new(120, 112, @actor)
    @equip_window.help_window = @help_window
    @equip_window.index = @equip_index
    @hp_window = Window_Actor_HP.new(120, 56, 224, 56)
    @mp_window = Window_Actor_MP.new(344, 56, 200, 56)
    @actor_window = Window_Actor.new(0, 0, 120, 140)
    @wrong_commands = Window_Wrong_Commands.new(240, 0, 300, 56)
  end
  #--------------------------------------------------------------------------
  # Fim do processo
  #--------------------------------------------------------------------------
  def terminate
    super
    @actor_window.dispose
    @equip_window.dispose
    dispose_item_windows
    @hp_window.dispose
    @mp_window.dispose
    @wrong_commands.dispose
  end
  #--------------------------------------------------------------------------
  # Retornar à tela original
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(0)
  end
  #--------------------------------------------------------------------------
  # Troca para a tela do próximo herói
  #--------------------------------------------------------------------------
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Equip.new(@actor_index, @equip_window.index)
  end
  #--------------------------------------------------------------------------
  # Troca para a tela do herói anterior
  #--------------------------------------------------------------------------
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Equip.new(@actor_index, @equip_window.index)
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    @actor_window.update
    update_equip_window
    update_item_windows
    @hp_window.update
    @mp_window.update
    @wrong_commands.update
    if @equip_window.active
      update_equip_selection
    elsif @item_window.active
      update_item_selection
    end
  end
  #--------------------------------------------------------------------------
  # Criação das janelas de itens
  #--------------------------------------------------------------------------
  def create_item_windows
    @item_windows = []
    for i in 0...EQUIP_TYPE_MAX
      @item_windows[i] = Window_EquipItem.new(0, 264, 544, 152, @actor, i)
      @item_windows[i].help_window = @help_window
      @item_windows[i].visible = (@equip_index == i)
      @item_windows[i].y = 264
      @item_windows[i].height = 152
      @item_windows[i].active = false
      @item_windows[i].index = -1
    end
  end
  #--------------------------------------------------------------------------
  # Dispose das janelas de itens
  #--------------------------------------------------------------------------
  def dispose_item_windows
    for window in @item_windows
      window.dispose
    end
  end
  #--------------------------------------------------------------------------
  # Atualização das janelas de itens
  #--------------------------------------------------------------------------
  def update_item_windows
    for i in 0...EQUIP_TYPE_MAX
      @item_windows[i].visible = (@equip_window.index == i)
      @item_windows[i].update
    end
    @item_window = @item_windows[@equip_window.index]
  end
  #--------------------------------------------------------------------------
  # Atualização da janela de equipamentos
  #--------------------------------------------------------------------------
  def update_equip_window
    @equip_window.update
  end
  #--------------------------------------------------------------------------
  # Atualização da janela de status
  #--------------------------------------------------------------------------
  def update_status_window
    if @equip_window.active
      @status_window.set_new_parameters(nil, nil, nil, nil)
    elsif @item_window.active
      temp_actor = @actor.clone
      temp_actor.change_equip(@equip_window.index, @item_window.item, true)
      new_atk = temp_actor.atk
      new_def = temp_actor.def
      new_spi = temp_actor.spi
      new_agi = temp_actor.agi
      @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi)
    end
    @status_window.update
  end
  #--------------------------------------------------------------------------
  # Atualização da seleção de equipamentos
  #--------------------------------------------------------------------------
  def update_equip_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    elsif Input.trigger?(Input::C)
      if @actor.fix_equipment
        Sound.play_buzzer
      else
        Sound.play_decision
        @equip_window.active = false
        @item_window.active = true
        @item_window.index = 0
      end
    end
  end
  #--------------------------------------------------------------------------
  # Atualização da seleção de itens
  #--------------------------------------------------------------------------
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      @equip_window.active = true
      @item_window.active = false
      @item_window.index = -1
    elsif Input.trigger?(Input::C)
      Sound.play_equip
      @actor.change_equip(@equip_window.index, @item_window.item)
      @equip_window.active = true
      @item_window.active = false
      @item_window.index = -1
      @equip_window.refresh
      for item_window in @item_windows
        item_window.refresh
      end
    end
  end
end
#########################
# Window_Wrong_Commands #
#########################
class Window_Wrong_Commands < Window_Base
  def initialize(x, y, width, heigth)
    super
    refresh
  end
  def dispose
    super
  end
  def update
    super
  end
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.draw_text(50, 0, self.width - 32, WLH, "Equipamentos")
    end
  end
class Window_Wrong_Commands_Skill < Window_Base
  def initialize(x, y, width, height)
    super
    refresh
  end
  def dispose
    super
  end
  def update
    super
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(50, 0, self.width - 32, WLH, "Habilidades")
  end
end
class Window_Wrong_Commands_Itens < Window_Base
  def initialize(x, y, width, height)
    super
    refresh
  end
  def dispose
    super
  end
  def update
    super
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(50, 0, self.width - 32, WLH, "Inventário")
  end
end
class Window_Wrong_Commands_Sair < Window_Base
  def initialize(x, y, width, height)
    super
    refresh
  end
  def dispose
    super
  end
  def update
    super
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(50, 0, self.width - 32, WLH, "Sair do Jogo")
  end
end


##############
# Scene_Item #
##############
class Scene_Item < Scene_Base
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @help_window.y = 360
    @help_window.viewport = @viewport
    @item_window = Window_Item.new(0, 112, 544, 248)
    @item_window.viewport = @viewport
    @item_window.help_window = @help_window
    @item_window.active = false
    @target_window = Window_MenuStatus.new(0, 0)
    hide_target_window
    @Window_Wrong_Commands_Itens = Window_Wrong_Commands_Itens.new(240, 0, 300, 56)
    @hp_window = Window_Actor_HP.new(120, 56, 224, 56)
    @mp_window = Window_Actor_MP.new(344, 56, 200, 56)
    @actor_window = Window_Actor.new(0, 0, 120, 140)
  end
  #--------------------------------------------------------------------------
  # Fim do processo
  #--------------------------------------------------------------------------
  def terminate
    super
    @viewport.dispose
    @help_window.dispose
    @item_window.dispose
    @target_window.dispose
    @Window_Wrong_Commands_Itens.dispose
    @hp_window.dispose
    @mp_window.dispose
    @actor_window.dispose
  end
  #--------------------------------------------------------------------------
  # Retornar à tela original
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(2)
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    @help_window.update
    @item_window.update
    @target_window.update
    @Window_Wrong_Commands_Itens.update
    @hp_window.update
    @mp_window.update
    @actor_window.update
    if @item_window.active
      update_item_selection
    elsif @target_window.active
      update_target_selection
    end
  end
  #--------------------------------------------------------------------------
  # Atualização da seleção de items
  #--------------------------------------------------------------------------
  def update_item_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      @item = @item_window.item
      if @item != nil
        $game_party.last_item_id = @item.id
      end
      if $game_party.item_can_use?(@item)
        Sound.play_decision
        determine_item
      else
        Sound.play_buzzer
      end
    end
  end
  #--------------------------------------------------------------------------
  # Decisão de item
  #--------------------------------------------------------------------------
  def determine_item
    if @item.for_friend?
      show_target_window(@item_window.index % 2 == 0)
      if @item.for_all?
        @target_window.index = 99
      else
        if $game_party.last_target_index < @target_window.item_max
          @target_window.index = $game_party.last_target_index
        else
          @target_window.index = 0
        end
      end
    else
      use_item_nontarget
    end
  end
  #--------------------------------------------------------------------------
  # Atualização da seleção de alvo
  #--------------------------------------------------------------------------
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      if $game_party.item_number(@item) == 0    # Se usar itens até 0
        @item_window.refresh                    # Atualizar janela
      end
      hide_target_window
    elsif Input.trigger?(Input::C)
      if not $game_party.item_can_use?(@item)
        Sound.play_buzzer
      else
        determine_target
      end
    end
  end
  #--------------------------------------------------------------------------
  # Definição do alvo
  #    Se não houver efeito, tocar SE de erro.
  #--------------------------------------------------------------------------
  def determine_target
    used = false
    if @item.for_all?
      for target in $game_party.members
        target.item_effect(target, @item)
        used = true unless target.skipped
      end
    else
      $game_party.last_target_index = @target_window.index
      target = $game_party.members[@target_window.index]
      target.item_effect(target, @item)
      used = true unless target.skipped
    end
    if used
      use_item_nontarget
    else
      Sound.play_buzzer
    end
  end
  #--------------------------------------------------------------------------
  # Exibição da janela de alvo
  #    right : alinhado à direita (falso se esquerda)
  #--------------------------------------------------------------------------
  def show_target_window(right)
    @item_window.active = false
    width_remain = 544 - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    if right
      @viewport.rect.set(0, 0, width_remain, 416)
      @viewport.ox = 0
    else
      @viewport.rect.set(@target_window.width, 0, width_remain, 416)
      @viewport.ox = @target_window.width
    end
  end
  #--------------------------------------------------------------------------
  # Ocultar janela de alvo
  #--------------------------------------------------------------------------
  def hide_target_window
    @item_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
  #--------------------------------------------------------------------------
  # Uso de item (sem alvo)
  #--------------------------------------------------------------------------
  def use_item_nontarget
    Sound.play_use_item
    $game_party.consume_item(@item)
    @item_window.draw_item(@item_window.index)
    @target_window.refresh
    if $game_party.all_dead?
      $scene = Scene_Gameover.new
    elsif @item.common_event_id > 0
      $game_temp.common_event_id = @item.common_event_id
      $scene = Scene_Map.new
    end
  end
end
###############
# Scene_Skill #
###############
class Scene_Skill < Scene_Base
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #    actor_index : índex do herói
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, equip_index = 0)
    @actor_index = actor_index
  end
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    @actor = $game_party.members[@actor_index]
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @help_window.y = 360
    @help_window.viewport = @viewport
    @skill_window = Window_Skill.new(0, 112, 544, 248, @actor)
    @skill_window.viewport = @viewport
    @skill_window.help_window = @help_window
    @target_window = Window_MenuStatus.new(0, 0)
    @Window_Wrong_Commands_Skill = Window_Wrong_Commands_Skill.new(240, 0, 300, 56)
    @hp_window = Window_Actor_HP.new(120, 56, 224, 56)
    @mp_window = Window_Actor_MP.new(344, 56, 200, 56)
    @actor_window = Window_Actor.new(0, 0, 120, 140)
    hide_target_window
  end
  #--------------------------------------------------------------------------
  # Fim do processo
  #--------------------------------------------------------------------------
  def terminate
    super
    @help_window.dispose
    @skill_window.dispose
    @target_window.dispose
    @Window_Wrong_Commands_Skill.dispose
    @hp_window.dispose
    @mp_window.dispose
    @actor_window.dispose
  end
  #--------------------------------------------------------------------------
  # Retornar à tela original
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(1)
  end
  #--------------------------------------------------------------------------
  # Troca para tela do próximo herói
  #--------------------------------------------------------------------------
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Skill.new(@actor_index)
  end
  #--------------------------------------------------------------------------
  # Trocar para tela do herói anterior
  #--------------------------------------------------------------------------
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Skill.new(@actor_index)
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    @help_window.update
    @skill_window.update
    @target_window.update
    @Window_Wrong_Commands_Skill.update
    @hp_window.update
    @mp_window.update
    @actor_window.update
    if @skill_window.active
      update_skill_selection
    elsif @target_window.active
      update_target_selection
    end
  end
  #--------------------------------------------------------------------------
  # Atualização da seleção de habilidade
  #--------------------------------------------------------------------------
  def update_skill_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    elsif Input.trigger?(Input::C)
      @skill = @skill_window.skill
      if @skill != nil
        @actor.last_skill_id = @skill.id
      end
      if @actor.skill_can_use?(@skill)
        Sound.play_decision
        determine_skill
      else
        Sound.play_buzzer
      end
    end
  end
  #--------------------------------------------------------------------------
  # Decisão de habilidade
  #--------------------------------------------------------------------------
  def determine_skill
    if @skill.for_friend?
      show_target_window(@skill_window.index % 2 == 0)
      if @skill.for_all?
        @target_window.index = 99
      elsif @skill.for_user?
        @target_window.index = @actor_index + 100
      else
        if $game_party.last_target_index < @target_window.item_max
          @target_window.index = $game_party.last_target_index
        else
          @target_window.index = 0
        end
      end
    else
      use_skill_nontarget
    end
  end
  #--------------------------------------------------------------------------
  # Atualização da seleção de alvo
  #--------------------------------------------------------------------------
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      hide_target_window
    elsif Input.trigger?(Input::C)
      if not @actor.skill_can_use?(@skill)
        Sound.play_buzzer
      else
        determine_target
      end
    end
  end
  #--------------------------------------------------------------------------
  # Definição do alvo
  #    Se não houver efeito, tocar SE de erro.
  #--------------------------------------------------------------------------
  def determine_target
    used = false
    if @skill.for_all?
      for target in $game_party.members
        target.skill_effect(@actor, @skill)
        used = true unless target.skipped
      end
    elsif @skill.for_user?
      target = $game_party.members[@target_window.index - 100]
      target.skill_effect(@actor, @skill)
      used = true unless target.skipped
    else
      $game_party.last_target_index = @target_window.index
      target = $game_party.members[@target_window.index]
      target.skill_effect(@actor, @skill)
      used = true unless target.skipped
    end
    if used
      use_skill_nontarget
    else
      Sound.play_buzzer
    end
  end
  #--------------------------------------------------------------------------
  # Exibição da janela de alvo
  #    right : alinhado à direita (falso se esquerda)
  #--------------------------------------------------------------------------
  def show_target_window(right)
    @skill_window.active = false
    width_remain = 544 - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    if right
      @viewport.rect.set(0, 0, width_remain, 416)
      @viewport.ox = 0
    else
      @viewport.rect.set(@target_window.width, 0, width_remain, 416)
      @viewport.ox = @target_window.width
    end
  end
  #--------------------------------------------------------------------------
  # Ocultação da janela de alvo
  #--------------------------------------------------------------------------
  def hide_target_window
    @skill_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
  #--------------------------------------------------------------------------
  # Uso de habilidade (sem alvo)
  #--------------------------------------------------------------------------
  def use_skill_nontarget
    Sound.play_use_skill
    @actor.mp -= @actor.calc_mp_cost(@skill)
    @status_window.refresh
    @skill_window.refresh
    @target_window.refresh
    if $game_party.all_dead?
      $scene = Scene_Gameover.new
    elsif @skill.common_event_id > 0
      $game_temp.common_event_id = @skill.common_event_id
      $scene = Scene_Map.new
    end
  end
end
#############
# Scene_End #
#############
class Scene_End < Scene_Base
  #--------------------------------------------------------------------------
  # Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @Window_Wrong_Commands_Sair = Window_Wrong_Commands_Sair.new(240, 0, 300, 56)
  end
  #--------------------------------------------------------------------------
  # Processo pós-inicialização
  #--------------------------------------------------------------------------
  def post_start
    super
    open_command_window
  end
  #--------------------------------------------------------------------------
  # Preparação para finalização
  #--------------------------------------------------------------------------
  def pre_terminate
    super
    close_command_window
  end
  #--------------------------------------------------------------------------
  # Fim do processo
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_command_window
    dispose_menu_background
    @Window_Wrong_Commands_Sair.dispose
  end
  #--------------------------------------------------------------------------
  # Retornar à tela original
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(3)
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @Window_Wrong_Commands_Sair.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::C)
      case @command_window.index
      when 0  # ?????
        command_to_title
      when 1  # ???????
        command_shutdown
      when 2  # ???
        command_cancel
      end
    end
  end
  #--------------------------------------------------------------------------
  # Atualização do background do menu
  #--------------------------------------------------------------------------
  def update_menu_background
    super
    @menuback_sprite.tone.set(0, 0, 0, 128)
  end
  #--------------------------------------------------------------------------
  # Criação da janela de comandos
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::to_title
    s2 = Vocab::shutdown
    s3 = Vocab::cancel
    @command_window = Window_Command.new(172, [s1, s2, s3])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = (416 - @command_window.height) / 2
    @command_window.openness = 0
  end
  #--------------------------------------------------------------------------
  # Dispose da janela de comandos
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  # Abre a janela de comandos
  #--------------------------------------------------------------------------
  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end
  #--------------------------------------------------------------------------
  # Fecha a janela de comandos
  #--------------------------------------------------------------------------
  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end
  #--------------------------------------------------------------------------
  # Processo ao selecionar "Tela Título"
  #--------------------------------------------------------------------------
  def command_to_title
    Sound.play_decision
    RPG::BGM.fade(800)
    RPG::BGS.fade(800)
    RPG::ME.fade(800)
    $scene = Scene_Title.new
    close_command_window
    Graphics.fadeout(60)
  end
  #--------------------------------------------------------------------------
  # Processo ao selecionar "Sair"
  #--------------------------------------------------------------------------
  def command_shutdown
    Sound.play_decision
    RPG::BGM.fade(800)
    RPG::BGS.fade(800)
    RPG::ME.fade(800)
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # Processo ao cancelar
  #--------------------------------------------------------------------------
  def command_cancel
    Sound.play_decision
    return_scene
  end
end


Créditos e agradecimentos

Alucard_2, por criar o script e diponibiliza-lo aqui.


ScreenShots

Resident Evil 2 e 3 Menu ?action=dlattach;attach=9481;image
Resident Evil 2 e 3 Menu ?action=dlattach;attach=9483;image
Resident Evil 2 e 3 Menu ?action=dlattach;attach=9485;image
Resident Evil 2 e 3 Menu ?action=dlattach;attach=9487;image
Resident Evil 2 e 3 Menu ?action=dlattach;attach=9489;image
Alucard_2
Alucard_2
Principiante
Principiante

Mensagens : 43
Pontos : 106845
Full Creditos : 6
Data de inscrição : 10/04/2010
Idade : 28
Localização : Criciúma - SC

Ir para o topo Ir para baixo

Resident Evil 2 e 3 Menu Empty Re: Resident Evil 2 e 3 Menu

Mensagem por KamauX 10.04.10 12:45

+1 Agrd , Muito bom este Menu !
KamauX
KamauX
Comparecedor
Comparecedor

Mensagens : 84
Pontos : 106589
Full Creditos : 9
Data de inscrição : 10/04/2010
Idade : 25

Ir para o topo Ir para baixo

Resident Evil 2 e 3 Menu Empty Re: Resident Evil 2 e 3 Menu

Mensagem por Alucard_2 10.04.10 12:46

@KamauX
Obrigado, este script havia sido um pedido lá da RMB anterior^^
Alucard_2
Alucard_2
Principiante
Principiante

Mensagens : 43
Pontos : 106845
Full Creditos : 6
Data de inscrição : 10/04/2010
Idade : 28
Localização : Criciúma - SC

Ir para o topo Ir para baixo

Resident Evil 2 e 3 Menu Empty Re: Resident Evil 2 e 3 Menu

Mensagem por Luan_Kage_Maker 10.04.10 12:55

Alucard,muito bom,parabéns.
Luan_Kage_Maker
Luan_Kage_Maker
Administradores
Administradores

Mascote 2: : Fire Snake
Mensagens : 197
Pontos : 107413
Full Creditos : 16
Data de inscrição : 01/04/2010

https://fullmaker.forumeiro.com

Ir para o topo Ir para baixo

Resident Evil 2 e 3 Menu Empty Re: Resident Evil 2 e 3 Menu

Mensagem por UchihaMadara77 12.04.10 12:32

+1 agradecimento denovo, mas as screens nao pegam, tenta arrumar blz XDDDD

Até mais :D
UchihaMadara77
UchihaMadara77
Moderadores
Moderadores

Mensagens : 522
Pontos : 107352
Full Creditos : 57
Data de inscrição : 10/04/2010
Idade : 26

Ir para o topo Ir para baixo

Resident Evil 2 e 3 Menu Empty Re: Resident Evil 2 e 3 Menu

Mensagem por Alucard_2 12.04.10 13:31

@Luan_Kage_Master
Obrigado^^(Poxa, recebi comentário até de administrador XD)
@UchihaMadara77
Aqui as Screens estão aparecendo normalmente, deve ter algo a ver com a internet, mas...vou passar os links pra você^^
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]


Última edição por Alucard_2 em 12.04.10 14:07, editado 1 vez(es)
Alucard_2
Alucard_2
Principiante
Principiante

Mensagens : 43
Pontos : 106845
Full Creditos : 6
Data de inscrição : 10/04/2010
Idade : 28
Localização : Criciúma - SC

Ir para o topo Ir para baixo

Resident Evil 2 e 3 Menu Empty Re: Resident Evil 2 e 3 Menu

Mensagem por Luan_Kage_Maker 12.04.10 13:33

aqui também esta normal :!:
Luan_Kage_Maker
Luan_Kage_Maker
Administradores
Administradores

Mascote 2: : Fire Snake
Mensagens : 197
Pontos : 107413
Full Creditos : 16
Data de inscrição : 01/04/2010

https://fullmaker.forumeiro.com

Ir para o topo Ir para baixo

Resident Evil 2 e 3 Menu Empty Re: Resident Evil 2 e 3 Menu

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos