Sujet: Demande de modelage + ajout du menu de base Mer 21 Avr 2010 - 21:21
Bonjours et bonsoir à tous et à toutes
Nature de la demande : Je désire l'aide d'un scripteur pour pouvoir me créé un menu dont je rève . Celui-ci doit ressembler à ça :
Explications :
- Je désire des windows skins placées comme sur le screen
- En haut de ce menu doit se trouvé le temps de jeu, la localisation , l'argent .
- Ensuite , une colonne à gauche dans laquelle ce trouverais les sous menus (s1 s2 s3 s4 ... s10) dont les titres possèdent leurs Iconsets .
- Les codes couleurs pour chaques textes devrons être comme sur le screen .
- En bas à gauche de la facet de chaque personnage , se trouvera son chara' .
- Pour la selectivité , j'aimerais que le cadre de selection pointe le nom du personnage . (Quand je parle de selection , c'est genre quand le menu nous demande les stats de quel joueur on désire voir)
Voilà , je pense avoir été le plus précis possible . Si jamais des éléments vous manque , faite signe .
Grand merci celui où celle qui répondra à ma demande
Azuma-01
Poulet trizo Lv.3
Age : 32 Inscrit le : 18/11/2009 Messages : 42
Sujet: Re: Demande de modelage + ajout du menu de base Jeu 22 Avr 2010 - 12:22
j'ai besoin de quelques infos supplémentaire pour entreprendre ton menu: 1. les fenêtres des acteurs sont-elles proportionnel au nombre d'acteurs dans l'équipe (1 acteur, 1 fenêtre; 3 acteurs, 3 fenêtres...) ? 2. les acteurs sont organisé horizontalement ou verticalement? 3. Doit-il être compatible avec le PHS?
Djidane Tribale
Va-nu-pieds Lv.4
Inscrit le : 24/08/2009 Messages : 72
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 10:42
Pour le 1 : Oui , j'aimerais qu'elles soit proportionnelles au nombre d'acteur .
Pour le 2 : Les acteurs sont ranger horizontalement
Pour le 3 : PHS ?
Voilà , merci de ton aide Azuma
Azuma-01
Poulet trizo Lv.3
Age : 32 Inscrit le : 18/11/2009 Messages : 42
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 13:38
Tien, le voici
Spoiler:
Code:
=begin ############################# Djidane Tribale's menu
Author: Azuma-01 Version: 1.0 Date: 23 / 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. Autour de la ligne 94, ajouter
#=============================================# # ● BEGIN Customization ● # #=============================================#
Reinitialize_Status_Window = true
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é
#============================================# # ● 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(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 if $game_system.save_disabled # If save is forbidden @command_window.draw_item(4, false) # Disable save end if $game_system.load_disabled # If load is forbidden @command_window.draw_item(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 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 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
#-------------------------------------------------------------------------- # * 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
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
#-------------------------------------------------------------------------- # * 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 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 @actor_name_window[@status_window_index].selected = true @actor_name_window[last_index].selected = false end 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 Party #============================================================================== class Game_Party #-------------------------------------------------------------------------- # * Get maximum Members #-------------------------------------------------------------------------- def max_members return MAX_MEMBERS 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
end
Si il y a un bug ou un petit quelque chose qui ne te plais pas, fait moi signe et je t'arrangerai ça.
Ps: C'est à ça que ton menu ressemble sans montage.
Dernière édition par Azuma-01 le Ven 23 Avr 2010 - 13:50, édité 3 fois (Raison : correction d'un petit bug + image)
Djidane Tribale
Va-nu-pieds Lv.4
Inscrit le : 24/08/2009 Messages : 72
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 13:46
Ouaw , rapide !
Et bien je le test dès maintenant . Je te remercie beaucoups et , évidemment , tu gagne une place dans mes crédits ! A moin que tu y soit déjà (Je crois XD)
Bref , je te fais signe si je rencontre un problème ou si j'ai d'éventuelle question
Azuma-01
Poulet trizo Lv.3
Age : 32 Inscrit le : 18/11/2009 Messages : 42
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 13:55
reprend le script, je viens je m'apercevoir d'un petit truc agaçant si il y a qu'un seul perso dans l'équipe (une flèche pointant vers le haut apparais).
Avant que quelqu'un demande: Oui, le menu fonctionne même si on a plus de quatre acteurs.
Djidane Tribale
Va-nu-pieds Lv.4
Inscrit le : 24/08/2009 Messages : 72
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 14:04
Ok ok Merci !
Par contre juste 2 petits trucs :
- Le menu n'est pas compactible avec le distributeur de point de caractèristique KGC (Asser c**)
- Pendant la selection d'un acteur , il n'y a pas le petit son qui ce produit quand on déplace le selecteur d'un acteur à l'autre (Bon ce n'ai pas le plus grave , il ne l'ai même pas trop ...)
Voilà . Si tu peut faire quelque chose , tant mieu . Sinon je verrais ^^
Azuma-01
Poulet trizo Lv.3
Age : 32 Inscrit le : 18/11/2009 Messages : 42
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 15:03
Qu'est-ce que tu veux dire par non compatible ? un message d'erreur ou c'est parce qu'il n'est pas présent dans le menu? si ton cas est le 2e c'est normale, il faut ajouter les menus supplémentaires à la mitaine. envoi moi le script de KGC ou le lien et je vais le faire.
Djidane Tribale
Va-nu-pieds Lv.4
Inscrit le : 24/08/2009 Messages : 72
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 15:24
T'inquiète , ça ne peut pas être le 2ème cas , tu m'as fait une petite introduction expliquant le fonctionnement du script (Qui est bien clair par la même occasion ...)
Il s'agit d'un message d'erreur qui s'affiche quand j'essaye d'aller dans Equipement , Statut ou Compétence .
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 16:07
1. place KGC_DistributeParameter au dessus du menu. (ainsi que toua les future ajout) 2. prend ce menu. (KGC_DistributeParameter ajouter avec le son du curseur pour casser les oreilles.)
Spoiler:
Code:
=begin ############################# Djidane Tribale's menu
Author: Azuma-01 Version: 1.0 Date: 23 / 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'acces au chargement : $game_system.load_disabled = true #---------------------------------------------------------------------------------------------------------------------------------------- module Aza module Dj_Menu
#=============================================# # ● BEGIN Customization ● # #=============================================#
Reinitialize_Status_Window = true
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é
#============================================# # ● 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], ["Caractéristique", 8]
#---------------------------------------------------------------------- # 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 # 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 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,7 # 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) when 7 # KGC_DistributeParameter $scene = Scene_DistributeParameter.new(@status_window_index, 7, Scene_DistributeParameter::HOST_MENU)
#------------------------------------------------------ # 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
#-------------------------------------------------------------------------- # * 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
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 Party #============================================================================== class Game_Party #-------------------------------------------------------------------------- # * Get maximum Members #-------------------------------------------------------------------------- def max_members return MAX_MEMBERS 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
end
Dernière édition par Azuma-01 le Ven 23 Avr 2010 - 19:29, édité 2 fois
Djidane Tribale
Va-nu-pieds Lv.4
Inscrit le : 24/08/2009 Messages : 72
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 16:17
Ouaw , décidément ^^ .
Et bien grand merci ! Tu vien de résoudre un problème qui m'étais chère !
Merci à toi , encore une fois
Djidane Tribale
Va-nu-pieds Lv.4
Inscrit le : 24/08/2009 Messages : 72
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 17:14
Escusez-moi pour ce vilain double poste :
Nouveau petit problème (Vraiment petit , enfin je crois ) , quand je désactive la possibilité de sauvegarder depuis le menu , le titre du sous-menu de sauvegarde ne possède plus d'îcon et devient Sauvegarder177 (Soit le Vocab_save + l'ID de l'îcon) .
Saurais-tu réparer ça ? J'en demande beaucoups en une journée , escuse x)
Azuma-01
Poulet trizo Lv.3
Age : 32 Inscrit le : 18/11/2009 Messages : 42
Sujet: Re: Demande de modelage + ajout du menu de base Ven 23 Avr 2010 - 19:13
1000 Pardons, j'ai oublier de changer une méthode... les lignes 61 à 75
Code:
@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(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 if $game_system.save_disabled # If save is forbidden @command_window.draw_item(4, false) # Disable save end if $game_system.load_disabled # If load is forbidden @command_window.draw_item(5, false) # Disable load end end
remplace-les par
Code:
@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 # If load is forbidden @command_window.draw_item_with_icon(5, false) # Disable load end end
Djidane Tribale
Va-nu-pieds Lv.4
Inscrit le : 24/08/2009 Messages : 72
Sujet: Re: Demande de modelage + ajout du menu de base Sam 24 Avr 2010 - 15:47
1000 pardons c'est trop x) ! Un demi me suffira .
Et bien ... Encore merci ! Tu fais du super bon boulot Azuma
Blockade
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
Sujet: Re: Demande de modelage + ajout du menu de base Sam 24 Avr 2010 - 15:51
Tiens, +5 point en script Azuma-01 =) J'te rajoute les 5 autres points si tu le poste dans la section partage de script, en bien détaillé !
Contenu sponsorisé
Sujet: Re: Demande de modelage + ajout du menu de base