Annuaire du RPG

Répertoire de ressources/scripts[...] pour le logiciel Rpg Maker !
 
AccueilAccueil  PortailPortail  CalendrierCalendrier  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  

Partagez | 
 

 Main Menu Evo II

Aller en bas 
AuteurMessage
Neko
Fondateur
Fondateur
avatar

Messages : 184
Date d'inscription : 14/07/2013
Age : 18
Localisation : Ici, la plupart du temps.

MessageSujet: Main Menu Evo II   Dim 21 Juil - 10:21

Auteur

-driko (pour le script)  
-Fênix (pour la correction d'un bug d'affichage)




Script:
Code:
#===============================================================================
# * Main Menu Evo II
# * Successor to Main Menu EVO
# * Bugs Corrigidos por .:Fênix:.
# * http://www.planetdev.co.uk
# * Part of CNG Engine Evolution
#===============================================================================

$imported = {} if $imported == nil
$imported["CEE-MainMenuEvoII"] = true

module CngEvo
  module Menu
    #===========================================================================
    # * Load System data to prevent errors when loading Vocab terms
    #===========================================================================
    $data_system = load_data("Data/System.rvdata")
    #===========================================================================
    # * Menu Commands, seperate each value with a comma.
    # * To add new commands, either use a Vocab entry (See the Vocab Module),
    #   Or use a text string in quotes, example: "Quests"
    #===========================================================================
    COMMANDS = [
    Vocab::item,
    Vocab::skill,
    Vocab::equip,
    Vocab::status,
    #"Quests",
    Vocab::save,
    #"Options",
    Vocab::game_end]
    #===========================================================================
    # * These are the icons that display next to the command option in the menu.
    # * The best way to find the number of the icon is to use Yanfly's
    #   YEM IconView Melody, and look for the ID number.
    # * Seperate each number with a comma.
    #===========================================================================
    ICONS = [
    144,
    128,
    32,
    106,
    #179,
    141,
    #134,
    142]
    #===========================================================================
    # * These are the scenes to call for each menu command.
    # * Copy the existing examples to add new ones.
    # * The last value (True/False) is whether or not you need to select an
    #   an actor to continue onto that scene.
    # * True = Select an Actor.
    # * False = Don't select one.
    #===========================================================================
    SCENES = [
    [Scene_Item, false],
    [Scene_Skill, true],
    [Scene_Equip, true],
    [Scene_Status, true],
    #[Scene_Quest, false],
    [Scene_File, false],
    #[Scene_Options, false],
    [Scene_End, false]]
    #===========================================================================
    # * These are the Playtime, Steps, Map Name and Gold icons.
    # * As with the others, seperate with a comma
    #===========================================================================
    INFO_ICONS = [
    188,
    48,
    153,
    205]
  end # Menu
end # CngEvo

#===============================================================================
# * Scene_Menu Class, Processes the main menu.
#===============================================================================
class Scene_Menu < Scene_Base
  #=============================================================================
  # * Include the Menu module and initialize the command_window index
  #=============================================================================
  include CngEvo::Menu
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end # initialize
  #=============================================================================
  # * Start the scene by creating windows etc
  #=============================================================================
  def start
    super
    create_menu_background
    create_command_window
    @status_window = Window_MenuEvoStatus.new
    @menuinfo = Window_MenuInfo.new
  end # start
  #=============================================================================
  # * End the scene and dispose windows etc
  #=============================================================================
  def terminate
    super
    dispose_menu_background
    @menudummy.dispose
    @command_window.dispose
    @status_window.dispose
    @menuinfo.dispose
  end # terminate
  #=============================================================================
  # * Update the scene's windows
  #=============================================================================
  def update
    super
    @menuinfo.update
    if @command_window.active
      @command_window.update
      update_command
    elsif @status_window.active
      @status_window.update
      update_actor_selection
    end
  end # update
  #=============================================================================
  # * Create the main command window
  #=============================================================================
  def create_command_window
    @menudummy = Window_MenuDummy.new
    @command_window = Window_Command.new(140, COMMANDS)
    @command_window.index = @menu_index
    @command_window.x = 24
    @command_window.opacity = 0
  end # create_command_window
  #=============================================================================
  # * Update the command window, and process choices
  #=============================================================================
  def update_command
    if Input.trigger?(Input::C)
      Sound.play_decision
      if SCENES[@command_window.index][1] == false
        if SCENES[@command_window.index][0] == Scene_File
          $scene = SCENES[@command_window.index][0].new(true, false, false)
        else
          $scene = SCENES[@command_window.index][0].new
        end
      else
        start_actor_selection
      end
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    end
  end # update_command
end # Scene_Menu

#===============================================================================
# * Window_MenuDummy, this window draws the menu icons.
#===============================================================================
class Window_MenuDummy < Window_Base
  #=============================================================================
  # * Include the Menu module, and setup window size
  #=============================================================================
  include CngEvo::Menu
  def initialize
    super(0, 0, 164, ((24 * COMMANDS.size) + 32))
    refresh
  end # initialize
  #=============================================================================
  # * Draw the icons
  #=============================================================================
  def refresh
    for i in 0...ICONS.size
      draw_icon(ICONS[i], -2, (i * 24)) # Items
    end
  end # refresh
end # Window_MenuDummy

#===============================================================================
# * Window_MenuEvoStatus, this window is a Window_MenuStatus Replacement
#===============================================================================
class Window_MenuEvoStatus < Window_Selectable
  #=============================================================================
  # * Initialize the window, ans setup values
  #=============================================================================
  def initialize
    super(0, (416 - 192), 544, 192)
    refresh
    self.active = false
    self.index = -1
  end # initialize
  #=============================================================================
  # * Draw window contents
  #=============================================================================
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    @facesprites = []
    for actor in $game_party.members
      x = actor.index * 128 + 16
      draw_actor_evoface(actor, x, 64)
      draw_actor_graphic(actor, x + 14, 158)
      draw_actor_name(actor, x, 0)
      draw_actor_level(actor, x, 32)
      draw_actor_state(actor, x + 80, 0)
      draw_actor_hp(actor, x - 12, 64)
      draw_actor_mp(actor, x - 12, 96)
    end
  end # refresh
  #=============================================================================
  # * Update cursor
  #=============================================================================
  def update_cursor
    if @index < 0               # No cursor
      self.cursor_rect.empty
    elsif @index < @item_max    # Normal
      self.cursor_rect.set((@index * 128), 0, 128, 160)
    elsif @index >= 100         # Self
      self.cursor_rect.set((@index * 128), 0, 128, 160)
    else                        # All
      self.cursor_rect.set(0, 0, contents.width, 160)
    end
  end # update_cursor
  #=============================================================================
  # * Add support for horizontal scrolling
  #=============================================================================
  def update
    super
    if cursor_movable?
      last_index = @index
      if Input.repeat?(Input::RIGHT)
        if @index == 0
          if $game_party.members.size > 1
            @index = 1
          end
        elsif @index == 1
          if $game_party.members.size > 2
            @index = 2
          end
        elsif @index == 2
          if $game_party.members.size > 3
            @index = 3
          end
        elsif @index == 3
          if $game_party.members.size >= 4
            @index = 0
          end
        end
      elsif Input.repeat?(Input::LEFT)
        if @index == 0
          if $game_party.members.size >= 4
            @index = 3
          end
        elsif @index == 1
          @index = 0
        elsif @index == 2
          @index = 1
        elsif @index == 3
          @index = 2
        end
      end
      if @index != last_index
        Sound.play_cursor
      end
    end
    update_cursor
    call_update_help
  end # update
end # Window_MenuEvoStatus

#===============================================================================
# * Window_MenuInfo class, this window draws Playtime, Steps etc.
#===============================================================================
class Window_MenuInfo < Window_Base
  #=============================================================================
  # * Include the Menu module and setup window size
  #=============================================================================
  include CngEvo::Menu
  def initialize
    super((544 - 260), 0, 260, 128)
    refresh
  end # initialize
  #=============================================================================
  # * Draw Window contents
  #=============================================================================
  def refresh
    self.contents.clear
    draw_icon(INFO_ICONS[1], 0, 24) # Steps
    draw_icon(INFO_ICONS[2], 0, 48) # Map Name
    draw_icon(INFO_ICONS[3], 0, 72) # Area
    draw_time
    self.contents.draw_text(0, 24, width - 32, WLH, $game_party.steps, 2)
    @map_name = load_data("Data/MapInfos.rvdata")[$game_map.map_id].name
    self.contents.draw_text(0, 48, width - 32, WLH, @map_name, 2)
    self.contents.draw_text(0, 72, width - 32, WLH, $game_party.gold, 2)
  end # refresh
  #=============================================================================
  # * Check if Playtime is different from last check
  #=============================================================================
  def update
    if @text != (Graphics.frame_count / Graphics.frame_rate)
      draw_time
    end
    super
  end # update
  #=============================================================================
  # * Draw playtime info
  #=============================================================================
  def draw_time
    self.contents.clear_rect(Rect.new(0, 0, (260 - 32), 24))
    draw_icon(INFO_ICONS[0], 0, 0) # Playtime
    @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.draw_text(0, 0, width - 32, WLH, @text, 2)
  end # draw_time
end # Window_MenuInfo

#===============================================================================
# * Window_Base Edits to allow for face opacity changing
#===============================================================================
class Window_Base < Window
  #=============================================================================
  # * Draw the character's face graphic
  #=============================================================================
  def draw_evoface(face_name, face_index, x, y, size = 96)
    opacity = 100
    bitmap = Cache.face(face_name)
    rect = Rect.new(0, 0, 0, 0)
    rect.x = face_index % 4 * 96 + (96 - size) / 2
    rect.y = face_index / 4 * 96 + (96 - size) / 2
    rect.width = size
    rect.height = size
    self.contents.blt(x, y, bitmap, rect, opacity)
    bitmap.dispose
  end # draw_evoface
  #=============================================================================
  # * Call the draw_evoface method with the relevant arguments
  #=============================================================================
  def draw_actor_evoface(actor, x, y, size = 96)
    draw_evoface(actor.face_name, actor.face_index, x, y, size)
  end # draw_actor_evoface
end # Window_Base

#===============================================================================
# * Scene_File edit for returning to the right menu option
#===============================================================================
class Scene_File < Scene_Base
  #=============================================================================
  # * Return to the previous scene
  #=============================================================================
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end # return_scene
end # Scene_File
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://annuairedurpg.jeuxvideoforum.com
 
Main Menu Evo II
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» commande menu "Enregistrer"
» [resolu]mettre fichier dans le menu bar
» Menu création de variables
» context menu strip
» le message de dominique mainçon

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Annuaire du RPG :: RPG maker & co :: Scripts :: RGSS 2 :: Menu-
Sauter vers: