Sujet: Petite modifications de Menu. Ven 13 Jan 2012 - 17:38
Bonjours je voudrais ajouter plusieurs options dans un menu voilà le menu que j'utilise :
Spoiler:
Code:
=begin ############################# Djidane Tribale's menu
Author: Azuma-01 Version: 2.0 Date: 23 / 04 / 2010 Last Update: 30 / 04 / 2010 =end ############################## #----------------------------------------------------------- Instructions ------------------------------------------------------------ # pour ajouter des options au menu: # 1. Autour de la ligne 44, ajouter le nom de votre nouvelle commande et l'index de son icône # 2. Si le nouveau menu a besoin de choisir un acteur, ajouter "la position du menu -1 " a la ligne 103. # Sinon, autour de la ligne 94, ajouter ; when la position du menu -1; $scene = Nom_de la scene + .new # 3. Si le nouveau menu a besoin de choisir un acteur, autour de la ligne 135, ajouter : # when la position du menu -1; $scene = Nom_de la scene + .new(@status_window_index)
# pour désactiver l'accès au chargement : $game_system.load_disabled = true #---------------------------------------------------------------------------------------------------------------------------------------- #==================================== History ==================================== # 1.0 (23/04/2010) # - sortie du menu # # 2.0 (30/04/2010) # - l'option charger est grisser si il existe aucune sauvegarde
#=============================================# # ● BEGIN Customization ● # #=============================================#
Reinitialize_Status_Window = true # Quand la sélection d'un acteur est annulé, la position des fenêtres est réinitialisé
Empty_Windows = true # crée au minimum4 fenêtres pour acteur (même si elles sont vide) Make_All_Windows = true # crée au tous les fenêtres pour acteur (même si elles sont vide) # Note: les fenêtres vide ne peuvent être sélectionné
Save_Path = "" # dossier des savegardes No_Save_Disabled_Load = true # permettre de désactiver l'option charger si il existe aucune sauvegarde?
#============================================# # ● END Customization ● # #============================================# end end
$AzaScritps ||= {} $AzaScritps['Azuma-01_Menu_for_Djidane'] = true #============================================================================== # ■ Scene Menu #============================================================================== class Scene_Menu
def create_command_window commands_name = [ # entrer le nom de vos commandes et l'index de l'icône ici-bas #---------------------------------------------------------------------- # ["Nom", index_de_l'icône], [Vocab.item, 1], [Vocab.skill, 2], [Vocab.equip, 3], [Vocab.status, 4], [Vocab.save, 5], ["Charger", 6], [Vocab.game_end, 7],
#---------------------------------------------------------------------- # entrer le nom de vos commandes et l'index de l'icône ici-haut ] @command_window = Window_Command_With_Icon.new(160, commands_name, 1, 16) @command_window.index = @menu_index if $game_party.members.size == 0 # If number of party members is 0 @command_window.draw_item_with_icon(0, false) # Disable item @command_window.draw_item_with_icon(1, false) # Disable skill @command_window.draw_item_with_icon(2, false) # Disable equipment @command_window.draw_item_with_icon(3, false) # Disable status end if $game_system.save_disabled # If save is forbidden @command_window.draw_item_with_icon(4, false) # Disable save end if $game_system.load_disabled or !load_enabled? # If load is forbidden @command_window.draw_item_with_icon(5, false) # Disable load end end
#-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- 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 elsif ($game_system.load_disabled or !load_enabled?) and @command_window.index == 5 Sound.play_buzzer return end Sound.play_decision case @command_window.index # #------------------------------------------------------ # when x # $scene = Nom_de la scene + .new when 0 # Item $scene = Scene_Item.new when 1,2,3 # Skill, equipment, status, KGC_DistributeParameter start_actor_selection when 4 # Save $scene = Scene_File.new(true, false, false) when 5 # Load $scene = Scene_File.new(false, false, false, 5) when 6 # End Game $scene = Scene_End.new
#------------------------------------------------------ # end end end
#-------------------------------------------------------------------------- # * Update Actor Selection #-------------------------------------------------------------------------- def update_actor_selection last_index = @status_window_index 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 x # $scene = Nom_de la scene + .new(@status_window_index) when 1 # skill $scene = Scene_Skill.new(@status_window_index) when 2 # equipment $scene = Scene_Equip.new(@status_window_index) when 3 # status $scene = Scene_Status.new(@status_window_index)
#------------------------------------------------------ # end elsif Input.repeat?(Input::DOWN) cursor_down(Input.trigger?(Input::DOWN)) elsif Input.repeat?(Input::UP) cursor_up(Input.trigger?(Input::UP)) elsif Input.repeat?(Input::RIGHT) cursor_right(Input.trigger?(Input::RIGHT)) elsif Input.repeat?(Input::LEFT) cursor_left(Input.trigger?(Input::LEFT)) end if last_index != @status_window_index Sound.play_cursor @actor_name_window[@status_window_index].selected = true @actor_name_window[last_index].selected = false end end
#-------------------------------------------------------------------------- # * Determine if Load is Enabled #-------------------------------------------------------------------------- def load_enabled? return true if !Aza::Dj_Menu::No_Save_Disabled_Load path = Aza::Dj_Menu::Save_Path == "" ? "" : Aza::Dj_Menu::Save_Path + "/" return (Dir.glob(path + 'Save*.rvdata').size > 0) end
#-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @time_window.update @locaton_window.update @status_windows.each{|window| window.update} @actor_name_window.each{|window| window.update} if @command_window.active update_command_selection elsif @status_window_active update_actor_selection end end
#-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @time_window.dispose @locaton_window.dispose @status_windows.each{|window| window.dispose} @actor_name_window.each{|window| window.dispose} @fake_sprite.dispose end
#-------------------------------------------------------------------------- # * Create Status Windows #-------------------------------------------------------------------------- def create_status_windows @status_windows = [] @actor_name_window = [] members = $game_party.members if Aza::Dj_Menu::Make_All_Windows (Game_Party::MAX_MEMBERS - members.size).times{members.push(nil)} elsif members.size < 4 and Aza::Dj_Menu::Empty_Windows (4 - members.size).times{members.push(nil)} end members.each_with_index{|actor, i| x = 160 x += 192 if i % 2 == 1 y = 66 y += (175 * (i / 2)) if i > 1 @status_windows[i] = Window_Menu_Status.new(actor, x , y) @status_windows[i].visible = false if @status_windows[i].y < 60 or @status_windows[i].y > 400 x += 104 name = actor.nil? ? nil : actor.name @actor_name_window[i] = Window_MenuName.new(name, x, y) @actor_name_window[i].visible = false if @actor_name_window[i].y < 60 or @actor_name_window[i].y > 400 } @fake_sprite = Window_Base.new(160, 61, 192 * 2 , 175 * 2 + 10) @fake_sprite.opacity = 0 create_fake_contents if $game_party.members.size > 4 end
#-------------------------------------------------------------------------- # * Move Windows Untill Actor's Window Is Visible # index : actor index #-------------------------------------------------------------------------- def show_window(index) y = @actor_name_window[index].y loop do y = @actor_name_window[index].y if y < 60 @status_windows.each{|window| window.y += 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } @actor_name_window.each{|window| window.y += 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } elsif y > 400 @status_windows.each{|window| window.y -= 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } @actor_name_window.each{|window| window.y -= 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } end break if @actor_name_window[index].visible end end
#-------------------------------------------------------------------------- # * Create Window Contents #-------------------------------------------------------------------------- def create_fake_contents @fake_sprite.contents.dispose if $game_party.members.size > 4 oy = @actor_name_window[$game_party.members.size - 1].visible ? 32 : @actor_name_window[0].visible ? 0 : 16 @fake_sprite.contents = Bitmap.new(@fake_sprite.width - 32, @fake_sprite.height) @fake_sprite.oy = oy else @fake_sprite.contents = Bitmap.new(@fake_sprite.width - 32, @fake_sprite.height - 32) end end
#-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false if $game_party.last_actor_index < $game_party.members.size @status_window_index = $game_party.last_actor_index else @status_window_index = 0 end @actor_name_window[@status_window_index].selected = true @status_window_active = true show_window(@status_window_index) end
#-------------------------------------------------------------------------- # * End Actor Selection #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @actor_name_window[@status_window_index].selected = false @status_window_active = false show_window(0) if Aza::Dj_Menu::Reinitialize_Status_Window end
#-------------------------------------------------------------------------- # * Move cursor down # wrap : Wraparound allowed #-------------------------------------------------------------------------- def cursor_down(wrap = false) if (@status_window_index < $game_party.members.size - @column_max) or (wrap and @column_max == 1) @status_window_index = (@status_window_index + @column_max) % $game_party.members.size return if @status_windows[@status_window_index].visible @status_windows.each{|window| window.y -= 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } @actor_name_window.each{|window| window.y -= 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } end create_fake_contents if $game_party.members.size > 4 end
#-------------------------------------------------------------------------- # * Move cursor up # wrap : Wraparound allowed #-------------------------------------------------------------------------- def cursor_up(wrap = false) if (@status_window_index >= @column_max) or (wrap and @column_max == 1) @status_window_index = (@status_window_index - @column_max + $game_party.members.size) % $game_party.members.size return if @status_windows[@status_window_index].visible @status_windows.each{|window| window.y += 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } @actor_name_window.each{|window| window.y += 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } end create_fake_contents if $game_party.members.size > 4 end
#-------------------------------------------------------------------------- # * Move cursor right # wrap : Wraparound allowed #-------------------------------------------------------------------------- def cursor_right(wrap = false) if (@column_max >= 2) and (@status_window_index < $game_party.members.size - 1 or (wrap and @page_row_max == 1)) @status_window_index = (@status_window_index + 1) % $game_party.members.size return if @status_windows[@status_window_index].visible if @status_window_index % 2 == 0 @status_windows.each{|window| window.y -= 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } @actor_name_window.each{|window| window.y -= 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } end end create_fake_contents if $game_party.members.size > 4 end
#-------------------------------------------------------------------------- # * Move cursor left # wrap : Wraparound allowed #-------------------------------------------------------------------------- def cursor_left(wrap = false) if (@column_max >= 2) and (@status_window_index > 0 or (wrap and @page_row_max == 1)) @status_window_index = (@status_window_index - 1 + $game_party.members.size) % $game_party.members.size return if @status_windows[@status_window_index].visible if @status_window_index % 2 == 1 @status_windows.each{|window| window.y += 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } @actor_name_window.each{|window| window.y += 175 if window.y < 60 or window.y > 400 window.visible = false else; window.visible = true end } end end create_fake_contents if $game_party.members.size > 4 end
end
class Scene_File #-------------------------------------------------------------------------- # * Alias Object Initialization #-------------------------------------------------------------------------- alias aza_new_menu_laod initialize def initialize(saving, from_title, from_event, menu_index = 4) aza_new_menu_laod(saving, from_title, from_event) @menu_index = menu_index end
#-------------------------------------------------------------------------- # * Return to Original Screen #-------------------------------------------------------------------------- def return_scene if @from_title $scene = Scene_Title.new elsif @from_event $scene = Scene_Map.new else $scene = Scene_Menu.new(@menu_index) end end
end
#============================================================================== # ■ Window Menu Gold #============================================================================== class Window_Menu_Gold < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 128, 66) refresh end
#============================================================================== # ■ Window Command With Icon #============================================================================== class Window_Command_With_Icon < Window_Command #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear create_contents for i in 0...@item_max draw_item_with_icon(i) end end
#============================================================================== # ■ Window Menu Location #============================================================================== class Window_Menu_Location < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 128, 66) refresh end
#============================================================================== # ■ Window Menu Time #============================================================================== class Window_Menu_Time < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 128, 66) refresh end
#-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super refresh if Graphics.frame_count / Graphics.frame_rate != @total_sec end
end
#============================================================================== # ■ Window Menu Status #============================================================================== class Window_Menu_Status < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # actor : actor # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(actor, x, y) super(x, y, 192, 175) @actor = actor refresh self.active = false end
#============================================================================== # ■ Window MenuName #============================================================================== class Window_MenuName < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :selected
#-------------------------------------------------------------------------- # * Object Initialization # name : actor name # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(name, x, y) super(x, y, 88, 56) @active = false @name = name refresh end
#-------------------------------------------------------------------------- # * Set Selected # selected : new selected (true = selected, false = unselected) #-------------------------------------------------------------------------- def selected=(selected) @selected = selected update_cursor end
#-------------------------------------------------------------------------- # * Update cursor #-------------------------------------------------------------------------- def update_cursor if @selected self.cursor_rect.set(-2, -3, 60, 30) else self.cursor_rect.empty end end
end
#============================================================================== # ■ Game Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # * Alias Object Initialization #-------------------------------------------------------------------------- alias aza_djidane_menu_map initialize def initialize aza_djidane_menu_map @map_name = load_data("Data/MapInfos.rvdata") end
def map_name return @map_name[@map_id].name end end
#============================================================================== # ■ Game System #============================================================================== class Game_System #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :load_disabled # load forbidden
#-------------------------------------------------------------------------- # * Alias Object Initialization #-------------------------------------------------------------------------- alias aza_djidane_menu initialize def initialize aza_djidane_menu @load_disabled = false end
PS : Si vous avez Besoin des Codes pour l'appelle de script State-Membres-Aide vous me le Dite.
Dernière édition par Brandobscure001 le Dim 15 Jan 2012 - 10:04, édité 4 fois
Invité
Invité
Sujet: Re: Petite modifications de Menu. Ven 13 Jan 2012 - 21:38
Euh, que veux-tu exactement dans tes nouveaux onglets ? Faudrait nous donner ce que tu veux exactement, parce que là on peut pas vraiment le faire sans savoir ce que tu veux exactement faire. (bon sang comment que je répète les mêmes mots tout le temps quoi)
Voilà, bonne continuation !!
Brandobscure001
Seigneur Lv.18
Age : 28 Inscrit le : 26/12/2010 Messages : 2220
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 13:05
-Objet les objets -Magie les magies -Equipement les équipement -State l'appelle de Script : $scene = Scene_Stat_Dist.new(0) pour pouvoire ajouter des State -Membres appelle de script $scene = Scene_PartySys -Aide appelle de script $scene = Scene_Help.new pour nous aider -Quitter pour quitter
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 14:21
Code:
#============================================================================== # ** Vocab #------------------------------------------------------------------------------ # This module defines terms and messages. It defines some data as constant # variables. Terms in the database are obtained from $data_system. #==============================================================================
module Vocab extend self # Définition du vocabulaire # A modifier pour modifier les intitulés
# API def state return StateMenu end def members return MembersMenu end def help return HelpMenu end end
#============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # This class performs the menu screen processing. #==============================================================================
class Scene_Menu #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::item s2 = Vocab::skill s3 = Vocab::equip s4 = Vocab::status s5 = Vocab::state s6 = Vocab::members s7 = Vocab::help s8 = Vocab::game_end @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8]) @command_window.index = @menu_index if $game_party.members.size == 0 # If number of party members is 0 @command_window.draw_item(0, false) # Disable item @command_window.draw_item(1, false) # Disable skill @command_window.draw_item(2, false) # Disable equipment @command_window.draw_item(3, false) # Disable status end end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- 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 # Item $scene = Scene_Item.new when 1,2,3 # Skill, equipment, status start_actor_selection when 4 # State $scene = Scene_Stat_Dist.new(0) when 5 $scene = Scene_PartySys when 6 $scene = Scene_Help.new when 7 # End Game $scene = Scene_End.new end end end end
J'ai pas testé mais bon.
Brandobscure001
Seigneur Lv.18
Age : 28 Inscrit le : 26/12/2010 Messages : 2220
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 14:28
Merci Molok c'est super sympa
XHTMLBoy
Citadin Lv.7
Inscrit le : 15/03/2011 Messages : 167
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 14:32
ça marche ? J'ai remarqué que ça modifie ton menu, parce que j'avais pas vu que tu avais utilisé un autre script Mais comme avec les icones c'est moche, je te propose de garder ma version qui est moins laide Pour membre, tu es sur que c'est bon? Parce que a mon avis il s'appelle comme ça:
Code:
$scene = Scene_PartySys.new
Brandobscure001
Seigneur Lv.18
Age : 28 Inscrit le : 26/12/2010 Messages : 2220
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 14:36
C'est le Menu de Départ sa. il n'y a pas moyen de faire la Modif pour le Menu du Haut ?
XHTMLBoy
Citadin Lv.7
Inscrit le : 15/03/2011 Messages : 167
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 14:37
oké et tu veux quoi comme icones ...
Brandobscure001
Seigneur Lv.18
Age : 28 Inscrit le : 26/12/2010 Messages : 2220
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 14:41
Si : Objet c'est 1, skill 2, Equipement 3 ect... tu met 4-5-6 par example
XHTMLBoy
Citadin Lv.7
Inscrit le : 15/03/2011 Messages : 167
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 14:46
Brandobscure001
Seigneur Lv.18
Age : 28 Inscrit le : 26/12/2010 Messages : 2220
Sujet: Re: Petite modifications de Menu. Sam 14 Jan 2012 - 14:54
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 elsif ($game_system.load_disabled or !load_enabled?) and @command_window.index == 5 Sound.play_buzzer return end Sound.play_decision case @command_window.index when 0 # Item $scene = Scene_Item.new when 1,2,3 # Skill, equipment, status, KGC_DistributeParameter start_actor_selection when 4 # Membre $scene = Scene_PartySys.new when 5 # Aide $scene = Scene_Help.new when 6 # End Game $scene = Scene_End.new end end end
def update_actor_selection last_index = @status_window_index 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 # skill $scene = Scene_Skill.new(@status_window_index) when 2 # equipment $scene = Scene_Equip.new(@status_window_index) when 3 # Status $scene = Scene_Stat_Dist.new(0) end elsif Input.repeat?(Input::DOWN) cursor_down(Input.trigger?(Input::DOWN)) elsif Input.repeat?(Input::UP) cursor_up(Input.trigger?(Input::UP)) elsif Input.repeat?(Input::RIGHT) cursor_right(Input.trigger?(Input::RIGHT)) elsif Input.repeat?(Input::LEFT) cursor_left(Input.trigger?(Input::LEFT)) end if last_index != @status_window_index Sound.play_cursor @actor_name_window[@status_window_index].selected = true @actor_name_window[last_index].selected = false end end end
Dernière édition par blodangan le Ven 24 Juil 2020 - 16:26, édité 1 fois
Brandobscure001
Seigneur Lv.18
Age : 28 Inscrit le : 26/12/2010 Messages : 2220
Sujet: Re: Petite modifications de Menu. Dim 15 Jan 2012 - 9:54
Aprés sa veux dir dans le script de Menu ou en Dessou du Script Menu ?
Zangther
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
Sujet: Re: Petite modifications de Menu. Dim 15 Jan 2012 - 9:58
Molok a écrit:
C'est Zangther qui va s'en occuper.
Non, mais c'est pas grave hein...
Je sais que je suis pas "assez" rapide mais c'est pas comme si j'ai d'autres choses à faire en priorité...
blodangan
Va-nu-pieds Lv.4
Inscrit le : 06/03/2011 Messages : 57
Sujet: Re: Petite modifications de Menu. Dim 15 Jan 2012 - 10:01
Zangther : désolé Zanghter je n'avais pas vu le message. Brandobscure001 : les deux marchent, c'est comme tu veux.
Dernière édition par blodangan le Ven 24 Juil 2020 - 16:27, édité 1 fois
Brandobscure001
Seigneur Lv.18
Age : 28 Inscrit le : 26/12/2010 Messages : 2220
Sujet: Re: Petite modifications de Menu. Dim 15 Jan 2012 - 10:04