Habitant Lv.6
Age : 28 Inscrit le : 05/04/2011 Messages : 110
| Sujet: [VXAce] Menu Personnalisable Mer 31 Juil 2013 - 15:41 | |
| Voici un script... A base de bidouillage... Il s'agit du script de Yanfly mélanger avec le script de blodangan, avec un ajout du grand, du magnifique, du... *tousse* Zangther ! Un tonnerre d'applaudissement!... Okay j'enchaine! Voila la belle bête (Attention, menu limiter à un personnage, si vous en mettez plusieurs vous n'y aurai pas accès, mais le script ne plantera pas...) : - Code:
-
#============================================================================== # # Ace menu personalisable # # ▼ Yanfly Engine Ace - Ace Menu Engine v1.07 * # ▼ Blodangan - Temps, or, argent * # ▼ Zangther - Lecteur de musique # ▼ Jodge - Assemblage :p # # * Crédit obligatoire!!! # #==============================================================================
$imported = {} if $imported.nil? $imported["YEA-AceMenuEngine"] = true
module YEA module MENU #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - General Menu Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # This changes the way menus appear in your game. You can change their # alignment, and the location of the help window, Note that any non-Yanfly # Engine Ace scripts may not conform to these menu styles. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- HELP_WINDOW_LOCATION = 0 # 0-Top, 1-Middle, 2-Bottom. COMMAND_WINDOW_ALIGN = 0 # 0-Left, 1-Middle, 2-Right. # Inutile (n'influera pas / n'apparaitra pas), # sauf si vous utiliser d'autre script de Yanfly MAIN_MENU_ALIGN = 0 # 0-Left, 1-Middle, 2-Right. MAIN_MENU_RIGHT = false # false-Left, true-Right. MAIN_MENU_ROWS = 10 # Maximum number of rows for main menu. DRAW_TP_GAUGE = false # If true, draws TP in the main menu. COMMANDS =[ :item, # Opens up the item menu. Default menu item. :equip, # Opens up the equip menu. Default menu item. :status, # Opens up the status menu. Default menu item. # :formation, :event_1, # Launches Common Event 1. Common Event Command. :event_3, # Launches Common Event 3. Common Event Command. :save, # Opens up the save menu. Default menu item. :game_end, # Opens up the shutdown menu. Default menu item. :event_2, # Launches Common Event 2. Common Event Command. # :debug, # :shop, # :gogototori, # :grathnode, ] # Do not remove this. # /!\ Comme telle, 8 commande maximum! Bidouiller si vous en voulez plus! #-------------------------------------------------------------------------- # - Common Event Commands - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # If you insert one of the following commands into the COMMANDS array, the # player can trigger a common event to launch. You can disable certain # commands in the menu by binding them to a switch. If you don't want to # disable them, set the switch to 0 and it will always be enabled. The # ShowSwitch will prevent a command from appear if that switch is false. # Set it to 0 for it to have no impact. #-------------------------------------------------------------------------- COMMON_EVENT_COMMANDS ={ # :command => ["Display Name", EnableSwitch, ShowSwitch, Event ID], :event_1 => [ "Crédit", 0, 0, 8], :event_2 => [ "Quitter", 0, 0, 9], :event_3 => [ "Aide", 0, 0, 10] } # Do not remove this. CUSTOM_COMMANDS ={ # :command => ["Display Name", EnableSwitch, ShowSwitch, Handler Method], :debug => [ "Debug", 0, 0, :command_debug], :shop => [ "Shop", 12, 0, :command_shop], :gogototori => ["Synthesis", 0, 0, :command_totori], :grathnode => [ "Grathnode", 0, 0, :command_install], } # Do not remove this. end # MENU end # YEA
module Blodangan module Menu_1 # Nom du premier fond dans le dossier ...\Graphics\Titles1 FOND1 = "Night" # Nom du deuxième fond dans le dossier ...\Graphics\Titles1 pour ne pas # avoir de deuxième fond ne rien mettre. FOND2 = "Mountains" # Mettre une musique ? true = oui, false = non MUSIQUE = true # Volume de la musique 0..100 MUSIC_VOLUME = 50 # Si oui, nom de la musique dans le dossier ...\Audio\BGM MUSICS = ["Theme1", "Theme2", "Theme3", "Theme4"] # Variable d'opacité de la fenetre du statut de l'héro WINDOW_HERO_OPACITY_VAR = 105
# Variable d'opacité de la fenetre D'information WINDOW_STATS_OPACITY_VAR = 106
# Variable d'opacité du menu sur la gauche WINDOW_MENU_COMMAND_OPACITY_VAR = 107 # Variable d'opacité de la fenetre d'info WINDOW_INFO_OPACITY_VAR = 108
# Texte d'information INFO = {:item => "Accéder à l'inventaire du héro", :equip => "Accéder à l'équipement du personnage", :status => "Accéder à l'état du héros" , # :formation, => "Accéder au menu de formation" :event_1 => "Accéder aux crédits du jeu", :event_3 => "Accéder à l'aide du jeu, à lire en priorité!", :save => "Accéder au sauvegarde de la partie", :game_end => "Accéder aux options du jeu", :event_2 => "Quitter le jeu"} end end
#============================================================================== # Window_Or_Localisation_Temps_Jeu #============================================================================== class Window_Or_Localisation_Temps_Jeu < Window_Base #-------------------------------------------------------------------------- # Initialize #-------------------------------------------------------------------------- def initialize(x, y) super(x, (y-45), 543, 150) self.back_opacity = $game_variables[Blodangan::Menu_1::WINDOW_STATS_OPACITY_VAR] refresh end #-------------------------------------------------------------------------- # Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear aff_or aff_temps_de_jeu aff_localisation aff_nb_carte aff_nb_quete_annexe end #-------------------------------------------------------------------------- # Affiche une varibale MODIFIER ICI #-------------------------------------------------------------------------- def aff_nb_carte draw_icon(3501, 10, 0) draw_text_ex(40, 0, "Nombre de carte trouvé : #{$game_variables[37]}") end #-------------------------------------------------------------------------- # Affiche une varibale MODIFIER ICI #-------------------------------------------------------------------------- def aff_nb_quete_annexe draw_icon(1809, 10, 25) draw_text_ex(40, 25, "Nombre de quète annexe réussie : #{$game_variables[38]}") end
#-------------------------------------------------------------------------- # Affiche l'or #-------------------------------------------------------------------------- def aff_or draw_icon(3481, 10, 50) draw_text_ex(40, 50, "Points : ") draw_currency_value($game_party.gold, Vocab::currency_unit, 100, 50, 160) end #-------------------------------------------------------------------------- # Affiche le temps de jeu #-------------------------------------------------------------------------- def aff_temps_de_jeu draw_icon(188, 10, 75) draw_text_ex(40, 75, "Temps de jeu : #{$game_system.playtime_s}") end #-------------------------------------------------------------------------- # Affiche la localisation #-------------------------------------------------------------------------- def aff_localisation draw_icon(153, 10, 100) draw_text_ex(40, 100, "Localisation : #{$game_map.display_name}") end end
#============================================================================== # ■ Window_MenuCommand #------------------------------------------------------------------------------ # This class is kept towards the top of the script to provide easier access. #==============================================================================
class Window_MenuCommand < Window_Command #-------------------------------------------------------------------------- # Aliased method: initialize #-------------------------------------------------------------------------- alias old_init initialize def initialize old_init self.back_opacity = $game_variables[Blodangan::Menu_1::WINDOW_MENU_COMMAND_OPACITY_VAR] end #-------------------------------------------------------------------------- # overwrite method: make_command_list #-------------------------------------------------------------------------- def make_command_list for command in YEA::MENU::COMMANDS case command #--- Default Commands --- when :item add_command(Vocab::item, :item, main_commands_enabled) when :skill add_command(Vocab::skill, :skill, main_commands_enabled) when :equip add_command(Vocab::equip, :equip, main_commands_enabled) when :status add_command(Vocab::status, :status, main_commands_enabled) when :formation add_formation_command when :save add_original_commands add_save_command when :game_end add_game_end_command #--- Yanfly Engine Ace Commands --- when :class next unless $imported["YEA-ClassSystem"] add_class_command #--- Imported Commands --- when :sslots next unless $imported["YSA-SlotBattle"] add_sslots_command when :grathnode next unless $imported["KRX-GrathnodeInstall"] process_custom_command(command) when :gogototori next unless $imported["KRX-AlchemicSynthesis"] process_custom_command(command) #--- Imported Commands --- else process_common_event_command(command) process_custom_command(command) end end end #-------------------------------------------------------------------------- # new method: process_common_event_command #-------------------------------------------------------------------------- def process_common_event_command(command) return unless YEA::MENU::COMMON_EVENT_COMMANDS.include?(command) show = YEA::MENU::COMMON_EVENT_COMMANDS[command][2] continue = show <= 0 ? true : $game_switches[show] return unless continue text = YEA::MENU::COMMON_EVENT_COMMANDS[command][0] switch = YEA::MENU::COMMON_EVENT_COMMANDS[command][1] ext = YEA::MENU::COMMON_EVENT_COMMANDS[command][3] enabled = switch <= 0 ? true : $game_switches[switch] add_command(text, command, enabled, ext) end #-------------------------------------------------------------------------- # new method: process_custom_command #-------------------------------------------------------------------------- def process_custom_command(command) return unless YEA::MENU::CUSTOM_COMMANDS.include?(command) show = YEA::MENU::CUSTOM_COMMANDS[command][2] continue = show <= 0 ? true : $game_switches[show] return unless continue text = YEA::MENU::CUSTOM_COMMANDS[command][0] switch = YEA::MENU::CUSTOM_COMMANDS[command][1] enabled = switch <= 0 ? true : $game_switches[switch] add_command(text, command, enabled) end end # Window_MenuCommand
#============================================================================== # ■ Menu #==============================================================================
module Menu #-------------------------------------------------------------------------- # self.help_window_location #-------------------------------------------------------------------------- def self.help_window_location return YEA::MENU::HELP_WINDOW_LOCATION end #-------------------------------------------------------------------------- # self.command_window_align #-------------------------------------------------------------------------- def self.command_window_align return YEA::MENU::COMMAND_WINDOW_ALIGN end #-------------------------------------------------------------------------- # self.main_menu_align #-------------------------------------------------------------------------- def self.main_menu_align return YEA::MENU::MAIN_MENU_ALIGN end #-------------------------------------------------------------------------- # self.main_menu_right #-------------------------------------------------------------------------- def self.main_menu_right return YEA::MENU::MAIN_MENU_RIGHT end end # Menu
#============================================================================== # ■ Game_Actor #==============================================================================
class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # new method: draw_mp? #-------------------------------------------------------------------------- def draw_mp? return true unless draw_tp? for skill in skills next unless added_skill_types.include?(skill.stype_id) return true if skill.mp_cost > 0 end return false end #-------------------------------------------------------------------------- # new method: draw_tp? #-------------------------------------------------------------------------- def draw_tp? return false unless $data_system.opt_display_tp for skill in skills next unless added_skill_types.include?(skill.stype_id) return true if skill.tp_cost > 0 end return false end end # Game_Actor
#============================================================================== # ■ Window_Base #==============================================================================
class Window_Base < Window #-------------------------------------------------------------------------- # overwrite method: draw_actor_simple_status #-------------------------------------------------------------------------- def draw_actor_simple_status(actor, dx, dy) dy -= line_height / 2 draw_actor_name(actor, dx, dy) draw_actor_level(actor, dx, dy + line_height * 1) draw_actor_icons(actor, dx, dy + line_height * 2) dw = contents.width - dx - 124 draw_actor_class(actor, dx + 120, dy, dw) draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw) if YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && !actor.draw_mp? draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw) elsif YEA::MENU::DRAW_TP_GAUGE && actor.draw_tp? && actor.draw_mp? if $imported["YEA-BattleEngine"] draw_actor_tp(actor, dx + 120, dy + line_height * 2, dw/2 + 1) draw_actor_mp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2) else draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw/2 + 1) draw_actor_tp(actor, dx + 120 + dw/2, dy + line_height * 2, dw/2) end else draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw) end end end # Window_Base
#============================================================================== # ■ Window_Command #==============================================================================
class Window_Command < Window_Selectable #-------------------------------------------------------------------------- # overwrite method: alignment #-------------------------------------------------------------------------- def alignment return Menu.command_window_align end end # Window_Command
#============================================================================== # ■ Window_MenuCommand #==============================================================================
class Window_MenuCommand < Window_Command #-------------------------------------------------------------------------- # alias method: init_command_position #-------------------------------------------------------------------------- class <<self; alias init_command_position_ame init_command_position; end def self.init_command_position init_command_position_ame @@last_command_oy = nil end #-------------------------------------------------------------------------- # overwrite method: visible_line_number #-------------------------------------------------------------------------- def visible_line_number return [[item_max, YEA::MENU::MAIN_MENU_ROWS].min, 1].max end #-------------------------------------------------------------------------- # overwrite method: alignment #-------------------------------------------------------------------------- def alignment return Menu.main_menu_align end #-------------------------------------------------------------------------- # alias method: process_ok #-------------------------------------------------------------------------- alias window_menucommand_process_ok_ame process_ok def process_ok @@last_command_oy = self.oy window_menucommand_process_ok_ame end #-------------------------------------------------------------------------- # alias method: select_last #-------------------------------------------------------------------------- alias window_menucommand_select_last_ame select_last def select_last window_menucommand_select_last_ame self.oy = @@last_command_oy unless @@last_command_oy.nil? @@last_command_oy = nil end end # Window_MenuCommand
#============================================================================== # ■ Scene_Menu #==============================================================================
class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # alias method: start #-------------------------------------------------------------------------- alias scene_menu_start_ame start def start scene_menu_start_ame create_or_localisation_temps_jeu_window relocate_windows end #-------------------------------------------------------------------------- # new method: relocate_windows #-------------------------------------------------------------------------- def relocate_windows return unless Menu.main_menu_right @command_window.x = Graphics.width - @command_window.width @status_window.x = 0 end #-------------------------------------------------------------------------- # ● Terminate #-------------------------------------------------------------------------- def terminate super dispose_fond end
#-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super @or_localisation_temps_jeu_window.refresh @help_window.set_text(Blodangan::Menu_1::INFO[@command_window.current_symbol]) end #-------------------------------------------------------------------------- # ● Create Or Localisation Temps Jeu Window #-------------------------------------------------------------------------- def create_or_localisation_temps_jeu_window x = 0 y = 311 @or_localisation_temps_jeu_window = Window_Or_Localisation_Temps_Jeu.new(x,y) end end # Scene_Menu
#============================================================================== # ■ Scene_Item #==============================================================================
class Scene_Item < Scene_ItemBase #-------------------------------------------------------------------------- # alias method: start #-------------------------------------------------------------------------- alias scene_item_start_ame start def start scene_item_start_ame return if $imported["YEA-ItemMenu"] relocate_windows end end
#============================================================================== # ■ Scene_Equip #==============================================================================
class Scene_Equip < Scene_MenuBase #-------------------------------------------------------------------------- # alias method: start #-------------------------------------------------------------------------- alias scene_equip_start_ame start def start scene_equip_start_ame end end # Scene_Equip
#============================================================================== # ■ Scene_Menu #==============================================================================
class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # ● Create Status Window #-------------------------------------------------------------------------- def create_status_window @status_window = Window_MenuStatus_UniqHero.new(160, 0, @command_window.height) @status_window.back_opacity = $game_variables[Blodangan::Menu_1::WINDOW_HERO_OPACITY_VAR] end #-------------------------------------------------------------------------- # alias method: create_command_window #-------------------------------------------------------------------------- alias scene_menu_create_command_window_ame create_command_window def create_command_window scene_menu_create_command_window_ame process_common_event_commands process_custom_commands end #-------------------------------------------------------------------------- # new method: process_common_event_commands #-------------------------------------------------------------------------- def process_common_event_commands for command in YEA::MENU::COMMANDS next unless YEA::MENU::COMMON_EVENT_COMMANDS.include?(command) @command_window.set_handler(command, method(:command_common_event)) end end #-------------------------------------------------------------------------- # new method: command_common_event #-------------------------------------------------------------------------- def command_common_event event_id = @command_window.current_ext return return_scene if event_id.nil? return return_scene if $data_common_events[event_id].nil? $game_temp.reserve_common_event(event_id) return_scene end #-------------------------------------------------------------------------- # new method: process_custom_commands #-------------------------------------------------------------------------- def process_custom_commands for command in YEA::MENU::COMMANDS next unless YEA::MENU::CUSTOM_COMMANDS.include?(command) called_method = YEA::MENU::CUSTOM_COMMANDS[command][3] @command_window.set_handler(command, method(called_method)) end end #-------------------------------------------------------------------------- # new method: command_debug #-------------------------------------------------------------------------- def command_debug SceneManager.call(Scene_Debug) end #-------------------------------------------------------------------------- # new method: command_shop #-------------------------------------------------------------------------- def command_shop goods = [] SceneManager.call(Scene_Shop) SceneManager.scene.prepare(goods, false) end #-------------------------------------------------------------------------- # new method: command_totori #-------------------------------------------------------------------------- def command_totori return unless $imported['KRX-AlchemicSynthesis'] SceneManager.call(Scene_Alchemy) end #-------------------------------------------------------------------------- # ● Start #-------------------------------------------------------------------------- def start super create_fond create_command_window create_or_localisation_temps_jeu_window create_status_window @help_window = Window_Help.new(1) @help_window.y = @command_window.height @help_window.height += 2 @help_window.back_opacity = $game_variables[Blodangan::Menu_1::WINDOW_INFO_OPACITY_VAR] @music_window = Window_MenuMusic.new play_menu_musique end #-------------------------------------------------------------------------- # ● Terminate #-------------------------------------------------------------------------- def terminate super dispose_fond end #-------------------------------------------------------------------------- # ● Return scene #-------------------------------------------------------------------------- def return_scene super $game_map.autoplay end #-------------------------------------------------------------------------- # ● Create Fond #-------------------------------------------------------------------------- def create_fond @fond1 = Sprite.new @fond1.bitmap = Cache.title1(Blodangan::Menu_1::FOND1) @fond2 = Sprite.new @fond2.bitmap = Cache.title2(Blodangan::Menu_1::FOND2) end #-------------------------------------------------------------------------- # ● Dispose Fond #-------------------------------------------------------------------------- def dispose_fond @fond1.bitmap.dispose @fond1.dispose @fond2.bitmap.dispose @fond2.dispose end #-------------------------------------------------------------------------- # ● Play Menu Musique #-------------------------------------------------------------------------- def play_menu_musique if Blodangan::Menu_1::MUSIQUE RPG::BGS.stop RPG::ME.stop size = Blodangan::Menu_1::MUSICS.length chosen = Random.rand(size) Audio.bgm_play('Audio/BGM/' + Blodangan::Menu_1::MUSICS[chosen], Blodangan::Menu_1::MUSIC_VOLUME, 100, 0) @music_window.set_text("♫ "+Blodangan::Menu_1::MUSICS[chosen]) end end end #============================================================================== # ** Window_MenuStatus_UniqHero #------------------------------------------------------------------------------ # This window displays thze unique member's status on the menu screen. #==============================================================================
class Window_MenuStatus_UniqHero < Window_MenuStatus #-------------------------------------------------------------------------- # * Hack #-------------------------------------------------------------------------- def initialize(x, y, height) @true_height = height super(x,y) self.back_opacity = $game_variables[Blodangan::Menu_1::WINDOW_MENU_COMMAND_OPACITY_VAR] end #-------------------------------------------------------------------------- # * Hacks #-------------------------------------------------------------------------- def window_height; @true_height; end def item_max; 1; end def item_height; 96; end #-------------------------------------------------------------------------- # * Moar hack #-------------------------------------------------------------------------- def item_rect(index) rect = super rect.x = index * (item_width + spacing) rect.y = window_height / 2 - 76 rect.height += 2 rect end end
#============================================================================== # ** Window_MenuMusic #------------------------------------------------------------------------------ # Display a text #==============================================================================
class Window_MenuMusic < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(Graphics.width - 200, Graphics.height - fitting_height(1), 200, fitting_height(1)) self.back_opacity = 0 end #-------------------------------------------------------------------------- # * Set Text #-------------------------------------------------------------------------- def set_text(text) if text != @text @text = text refresh end end #-------------------------------------------------------------------------- # * Clear #-------------------------------------------------------------------------- def clear set_text("") end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh contents.clear draw_text_ex(4, 0, @text) end end
#============================================================================== # # ▼ End of File # #==============================================================================
Les screens maintenant : - Spoiler:
L'opacité des 4 fenêtres es gérable via les 4 variables configurable au ligne 107, 110, 113, 116. Si vous utiliser le script d'option, vous pouvez les rendre configurable par le joueur - Code:
-
CUSTOM_VARIABLES ={ # ------------------------------------------------------------------------- # :variable => [Switch, Name, Colour1, Colour2, Min, Max, # Help Window Description # ], # Do not remove this. # ------------------------------------------------------------------------- :variable_1 => [ 105, "Opaciter fenètre Statue", 9, 1, 0, 255, "Changer l'opaciter de la fenètre de statue.\n" + "Appuyer sur shift pour aller de 10 en 10" ], # ------------------------------------------------------------------------- :variable_2 => [ 106, "Opaciter fenètre Information", 9, 1, 0, 255, "Changer l'opaciter de la fenètre d'information.\n" + "Appuyer sur shift pour aller de 10 en 10" ], # ------------------------------------------------------------------------- :variable_3 => [ 107, "Opaciter fenètre Menu", 9, 1, 0, 255, "Changer l'opaciter de la fenètre du menu.\n" + "Appuyer sur shift pour aller de 10 en 10" ], # ------------------------------------------------------------------------- :variable_4 => [ 108, "Opaciter fenètre Aide", 9, 1, 0, 255, "Changer l'opaciter de la fenètre d'aide.\n" + "Appuyer sur shift pour aller de 10 en 10" ],
# ------------------------------------------------------------------------- } # Do not remove this.
A placer au niveau des variables si vous utilisez le menu d'option de yanfly
Comment customiser : - Pour changé l'opacité, voir le spoil - Pour changer les 2 Variable afficher dans la fenêtre du bas : Ligne 160 et 168, modifier la 1er valeur par l'id de l’icône à affiché Ligne 161 et 169, modifier le texte afficher entre "XX" (écrit en violet) et la variable afficher entre [XX] - Pour changer les 3 autres textes, remplacer les texte entre "XX" (écrit en violet) dans les lignes suivante. Actuellement, les évent parallèle sont une menu d'aide en évent, un menu de crédit, en évent, et une menu pour quitter en évent, la commande quitter étant utiliser par le script option de yanfly, a vous de changer au besoin Voila, c'est ainsi que s'achève le script, bonne continuation! |
|