AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

Partagez
 

 VitorJ simple menu

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
RitoJS
Modérateur
Modérateur
RitoJS


Masculin Age : 29
Inscrit le : 22/12/2011
Messages : 1600

VitorJ simple menu Empty
MessageSujet: VitorJ simple menu   VitorJ simple menu Icon_minitimeMar 23 Avr 2013 - 23:21

Crédit: VitorJ
Ce script vous permet de changer et personnalisé un peu l'interface de votre menu:
VitorJ simple menu VXa%20Simple%20Menu%201

Script:
Code:
#==============================================================================
# Simple Menu by VitorJ (http://vjrgss.blogspot.com/)
#-Funcao-----------------------------------------------------------------------
# Modifica o menu padrao.
#-Nome do mapa-----------------------------------------------------------------
# O nome que aparecera na area de nome do mapa sera o nome escolhido para
# exibicao, caso nao tenha um, ele ira procurar o seguinte comando na nota do
# mapa: <mname>Nome do Mapa</mname>
# Onde o nome do mapa deve ser posto, nao e necessario estar entre aspas.
#==============================================================================
module VJSM
  Icons = []
  #Icones para as opcoes
  Icons[0] = 261                          #Item
  Icons[1] = 116                          #Habilidade
  Icons[2] = 164                          #Equipamento
  Icons[3] = 121                          #Status
  Icons[4] = 12                          #Formaзгo
  Icons[5] = 117                          #Salvar
  Icons[6] = 1                            #Sair
  ##
  Next = "Next"                          #Proximo level
  Gold_Icon = 361                        #Icone do gold
  PlayTime_Icon = 280                    #Icone do tempo de jogo
  Map_Icon = 231                          #Icone do mapa atual
  File = "Arquivo"                        #Opзгo de file
end

class Window_MenuStatus < Window_Selectable
  attr_reader  :pending_index
  def initialize(x, y)
    super(x, y, window_width, window_height)
    @pending_index = -1
    refresh
  end
  def window_width
    Graphics.width
  end
  def window_height
    Graphics.height - 96
  end
  def item_max
    $game_party.members.size
  end
  def col_max
    return 2
  end
  def item_height
    (height - standard_padding * 2) / 2
  end
  def draw_item(index)
    actor = $game_party.members[index]
    enabled = $game_party.battle_members.include?(actor)
    rect = item_rect(index)
    draw_item_background(index)
    draw_actor_name(actor, rect.x+1, rect.y+1)
    draw_actor_face(actor, rect.x+1, rect.y+1 + line_height, enabled)
    draw_actor_class(actor, rect.x+1, (rect.y+rect.height) - (line_height+1))
    draw_actor_level(actor, rect.x+98+16, rect.y+1)
    draw_exp_info(actor, rect.x+98+16, rect.y + line_height)
    draw_actor_hp(actor, rect.x+98+16, rect.y + line_height * 2)
    draw_actor_mp(actor, rect.x+98+16, rect.y + line_height * 3)
    draw_actor_icons(actor, rect.x+98+16, rect.y + line_height * 4)
  end
  def draw_actor_icons(actor, x, y, width = 128)
    icons = (actor.state_icons + actor.buff_icons)
    i = 0
    icons.each do |icon|
      ix = x+(i*24)
      iy = y+(0)
      if i >= 5
        ix = x+((i-5)*24)
        iy = y+(24)
      end
      draw_icon(icon, ix, iy)
      i+= 1
    end
  end
  def draw_exp_info(actor, x, y)
    s2 = actor.max_level? ? "-------" : actor.next_level_exp - actor.exp
    s_next = VJSM::Next
    change_color(system_color)
    draw_text(x, y, 128, line_height, s_next)
    change_color(normal_color)
    draw_text(x, y, 128, line_height, s2, 2)
  end
  def draw_item_background(index)
    if index == @pending_index
      contents.fill_rect(item_rect(index), pending_color)
    end
  end
  def process_ok
    super
    $game_party.menu_actor = $game_party.members[index]
  end
  def select_last
    select($game_party.menu_actor.index || 0)
  end
  def pending_index=(index)
    last_pending_index = @pending_index
    @pending_index = index
    redraw_item(@pending_index)
    redraw_item(last_pending_index)
  end
end
class Window_NewMenuStatus < Window_Base
  def initialize(actor)
    super(0, 0, Graphics.width - 160, 120)
    @actor = actor
    refresh
  end
  def set_actor(actor)
    return if actor == @actor
    @actor = actor
    refresh
  end
  def refresh
    contents.clear
    actor = @actor
    enabled = $game_party.battle_members.include?(actor)
    draw_actor_face(actor,1, 1, enabled)
    draw_actor_simple_status(actor, 108, line_height / 2)
  end
end
class Window_Time < Window_Base
  def initialize(x,y)
    super(x, y, Graphics.width/3, 48)
    refresh
  end
  def update
    refresh
  end
  def refresh
    contents.clear
    playtime = $game_system.playtime_s
    draw_icon(VJSM::PlayTime_Icon, 0, 0)
    change_color(normal_color)
    draw_text(0, 0, self.contents.width, line_height, playtime, 2)
  end
end
class Window_MenuGold < Window_Base
  def initialize(x,y)
    super(x, y, Graphics.width/3, 48)
    refresh
  end
  def refresh
    contents.clear
    gold = $game_party.gold
    draw_icon(VJSM::Gold_Icon, 0, 0)
    change_color(normal_color)
    draw_text(0, 0, self.contents.width, line_height, gold, 2)
  end
end
class Window_MenuMapName < Window_Base
  def initialize(x,y)
    super(x, y, (Graphics.width/3)*2, 48)
    refresh
  end
  def refresh
    contents.clear
    if $game_map.display_name.empty?
      map_a = load_data(sprintf("Data/Map%03d.rvdata2", $game_map.map_id))
      note = map_a.note.split("\r\n")
      text = "Nome da mapa nгo definido"
      note.each do |thing|
        if thing.include?("<mname>")
          text = thing
          text.slice!("<mname>")
          text.slice!("</mname>")
        end
      end
      map = text
    else
      map = $game_map.display_name
    end
    change_color(normal_color)
    draw_icon(VJSM::Map_Icon, 0, 0)
    draw_text(0, 0, self.contents.width, line_height, map, 2)
  end
end
class Window_Command_Name < Window_Base
  def initialize(text,w=171)
    super(0, 0, w, 48)
    @text = text
    refresh
  end
  def refresh
    contents.clear
    draw_text(0, 0, self.contents.width, self.contents.height, @text, 1)
  end
  def set_text(text)
    return if text == @text
    @text = text
    refresh
  end
end
class Window_MenuFile < Window_Command
  def initialize
    super(0, 0)
    update_placement
  end
  def window_width
    return 160
  end
  def update_placement
    self.x = (Graphics.width - width) / 2
    self.y = (Graphics.height - height) / 2
  end
  def make_command_list
    add_command(Vocab::save, :save, save_enabled)
    add_command(Vocab::continue, :continue)
    add_command(Vocab::cancel,  :cancel)
  end
  def save_enabled
    !$game_system.save_disabled
  end
end
class Window_MenuCommand < Window_Command
  def self.init_command_position
    @@last_command_symbol = nil
  end
  def initialize
    super(0, 0)
    select_last
  end
  def item_rect(index)
    rect = Rect.new
    rect.width = item_width
    rect.height = item_height
    rect.x = index % col_max * item_width
    rect.y = index / col_max * item_height
    rect
  end
  def item_width
    return 24
  end
  def window_width
    return 192
  end
  def window_height
    return 48
  end
  def col_max
    return 8
  end
  def visible_line_number
    item_max
  end
  def make_command_list
    add_main_commands
    add_formation_command
    add_original_commands
    add_save_command
    add_game_end_command
  end
  def draw_item(index)
    x = item_rect(index).x
    y = item_rect(index).y
    draw_icon(VJSM::Icons[index], x, y, command_enabled?(index))
  end
  def add_main_commands
    add_command(Vocab::item,  :item,  main_commands_enabled)
    add_command(Vocab::skill,  :skill,  main_commands_enabled)
    add_command(Vocab::equip,  :equip,  main_commands_enabled)
    add_command(Vocab::status, :status, main_commands_enabled)
  end
  def add_formation_command
    add_command(Vocab::formation, :formation, formation_enabled)
  end
  def get_name(index)
    return command_name(index)
  end
  def add_original_commands
  end
  def add_save_command
    add_command(VJSM::File, :file)
  end
  def add_game_end_command
    add_command(Vocab::game_end, :game_end)
  end
  def main_commands_enabled
    $game_party.exists
  end
  def formation_enabled
    $game_party.members.size >= 2 && !$game_system.formation_disabled
  end
  def save_enabled
    !$game_system.save_disabled
  end
  def process_ok
    @@last_command_symbol = current_symbol
    super
  end
  def select_last
    select_symbol(@@last_command_symbol)
  end
end
class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Inicializaзгo do processo
  #--------------------------------------------------------------------------
  def start
    super
    create_command_window
    create_gold_window
    create_status_window
    create_time_window
    create_map_window
  end
  #--------------------------------------------------------------------------
  # * Criaзгo da janela de comando
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_MenuCommand.new
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:skill,    method(:command_personal))
    @command_window.set_handler(:equip,    method(:command_personal))
    @command_window.set_handler(:status,    method(:command_personal))
    @command_window.set_handler(:formation, method(:command_formation))
    @command_window.set_handler(:file,      method(:command_file))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
    @command_window.y = 0
    @command_window.x = 0
    @command_name = Window_Command_Name.new(@command_window.get_name(@command_window.index))
    @command_name.y = @command_window.y
    @command_name.x = @command_window.x + @command_window.width
    @menu_file = Window_MenuFile.new
    @menu_file.set_handler(:save,      method(:command_save))
    @menu_file.set_handler(:continue,    method(:command_continue))
    @menu_file.set_handler(:cancel,    method(:command_cancel))
    @menu_file.visible = false
    @menu_file.active = false
  end
  #--------------------------------------------------------------------------
  # * Criaзгo da janela de dinheiro
  #--------------------------------------------------------------------------
  def create_gold_window
    x = @command_name.x + @command_name.width
    y = @command_name.y
    @gold_window = Window_MenuGold.new(x,y)
  end
  #--------------------------------------------------------------------------
  # * Criaзгo da janela de atributos
  #--------------------------------------------------------------------------
  def create_status_window
    x = @command_window.x
    y = @command_window.y  + @command_window.height
    @status_window = Window_MenuStatus.new(x, y)
  end
  def create_time_window
    y = @status_window.y + @status_window.height
    x = 0
    @window_time = Window_Time.new(x,y)
  end
  def create_map_window
    y = @window_time.y
    x = @window_time.x + @window_time.width
    @window_map = Window_MenuMapName.new(x,y)
  end
  def update
    update_basic
    @command_name.set_text(@command_window.get_name(@command_window.index))
  end
  #--------------------------------------------------------------------------
  # * Comando [Item]
  #--------------------------------------------------------------------------
  def command_item
    SceneManager.call(Scene_Item)
  end
  #--------------------------------------------------------------------------
  # * Comando [Habilidade] [Equipamentos] [Atributos]
  #--------------------------------------------------------------------------
  def command_personal
    @status_window.select_last
    @status_window.activate
    @status_window.set_handler(:ok,    method(:on_personal_ok))
    @status_window.set_handler(:cancel, method(:on_personal_cancel))
  end
  #--------------------------------------------------------------------------
  # * Comando [Formaзгo]
  #--------------------------------------------------------------------------
  def command_formation
    @status_window.select_last
    @status_window.activate
    @status_window.set_handler(:ok,    method(:on_formation_ok))
    @status_window.set_handler(:cancel, method(:on_formation_cancel))
  end
  #--------------------------------------------------------------------------
  # * Comando [Salvar]
  #--------------------------------------------------------------------------
  def command_save
    SceneManager.call(Scene_Save)
  end
  def command_file
    @menu_file.visible = true
    @menu_file.index = 0
    @menu_file.activate
    @menu_file.z = @status_window.z + 1
  end
  def command_cancel
    @menu_file.unselect
    @menu_file.visible = false
    @menu_file.active = false
    @menu_file.z = @status_window.z - 1
    @command_window.active = true
  end
  def command_continue
    SceneManager.call(Scene_Load)
  end
  #--------------------------------------------------------------------------
  # * Comando [Fim do Jogo]
  #--------------------------------------------------------------------------
  def command_game_end
    SceneManager.call(Scene_End)
  end
  #--------------------------------------------------------------------------
  # * Comandos individuais [Confirmaзгo]
  #--------------------------------------------------------------------------
  def on_personal_ok
    case @command_window.current_symbol
    when :skill
      SceneManager.call(Scene_Skill)
    when :equip
      SceneManager.call(Scene_Equip)
    when :status
      SceneManager.call(Scene_Status)
    end
  end
  #--------------------------------------------------------------------------
  # * Comandos individuais [Cancelamento]
  #--------------------------------------------------------------------------
  def on_personal_cancel
    @status_window.unselect
    @command_window.activate
  end
  #--------------------------------------------------------------------------
  # * Mudanзa de Ordem [Confirmaзгo]
  #--------------------------------------------------------------------------
  def on_formation_ok
    if @status_window.pending_index >= 0
      $game_party.swap_order(@status_window.index,
                            @status_window.pending_index)
      @status_window.pending_index = -1
      @status_window.redraw_item(@status_window.index)
    else
      @status_window.pending_index = @status_window.index
    end
    @status_window.activate
  end
  #--------------------------------------------------------------------------
  # * Mudanзa de Ordem [Cancelamento]
  #--------------------------------------------------------------------------
  def on_formation_cancel
    if @status_window.pending_index >= 0
      @status_window.pending_index = -1
      @status_window.activate
    else
      @status_window.unselect
      @command_window.activate
    end
  end
end
Revenir en haut Aller en bas
http://lunarito.wordpress.com/
Happyroms
Noble Lv.8
Noble Lv.8
Happyroms


Inscrit le : 03/11/2012
Messages : 290

VitorJ simple menu Empty
MessageSujet: Re: VitorJ simple menu   VitorJ simple menu Icon_minitimeMer 24 Avr 2013 - 4:37

Merci du partage Rito. =)
Revenir en haut Aller en bas
Brandobscure001
Seigneur Lv.18
Seigneur Lv.18
Brandobscure001


Masculin Age : 27
Inscrit le : 26/12/2010
Messages : 2220

VitorJ simple menu Empty
MessageSujet: Re: VitorJ simple menu   VitorJ simple menu Icon_minitimeMer 24 Avr 2013 - 6:55

Mon menu d'Eternal Dream. x)
Merci du partage.
Revenir en haut Aller en bas
Chaos17
Poulet Lv.1
Poulet Lv.1
Chaos17


Masculin Inscrit le : 05/04/2013
Messages : 5

VitorJ simple menu Empty
MessageSujet: Re: VitorJ simple menu   VitorJ simple menu Icon_minitimeMer 24 Avr 2013 - 13:29

Je ne connaissais pas, merci du partage.
Revenir en haut Aller en bas
http://blogofchaos17.wordpress.com/
Contenu sponsorisé




VitorJ simple menu Empty
MessageSujet: Re: VitorJ simple menu   VitorJ simple menu Icon_minitime

Revenir en haut Aller en bas
 

VitorJ simple menu

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Un simple menu de compétences
» Script d'affichage d'exp simple ( autre que Mog Basic Menu Plus V 1.0 )
» Aller directement à un sous-menu sans passer par le menu général
» [Menu]Demande de script pour un Menu "Aide"
» [VX] Simple SBS

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX.Ace - RGSS3 :: Menu-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit