Menu
Eclipso logo
Merry Christmas !
29/03/2024 01:08:43

2k3 < VX < Ace < XP

Afficher 3 actors dans le menu

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 19h59

Bonsoir, je fais cette demande par rapport au script que j'utilise pour le menu de mon projet. [spoiler][img]http://image.noelshack.com/fichiers/2013/22/1369849940-1.png[/img][/spoiler] Jusque là tout va bien, par contre si un nouveau membre rejoint l'équipe: [spoiler][img]http://image.noelshack.com/fichiers/2013/22/1369849978-1.png[/img][/spoiler] Le problème c'est qu'il n'y a pas de limite, les nouveaux membres s'alignent petit à petit jusqu'à sortir de l'écran ce qui est assez dérangeant étant donné que pendant la sélection des actors, nous pouvons également sortir de l'écran avec le cursor ce qui n'est pas très esthétique. ^^ Je voudrais que le menu n'affiche que 3 actors maximum. Le script: [code] class Menu_Spriteset # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # # Spriteset Creation # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # def initialize create_viewports create_commands @old_index = 0 create_characters create_info end def create_viewports @viewport1 = Viewport.new(0,0,Graphics.width,Graphics.height) @viewport2 = Viewport.new(0,0,Graphics.width,Graphics.height) @viewport3 = Viewport.new(0,0,Graphics.width,Graphics.height) @viewport2.z = 50 # 50 @viewport3.z = 100 # 100 @viewports = [@viewport1,@viewport2,@viewport3] end def create_commands @cmd_sprites = [] for i in $menu_cmdorder @cmd_sprites.push Sprite_MenuCmd.new(i.to_s) end for i in @cmd_sprites i.viewport = @viewport2 end end def set_opac_chars(opac,index=nil) for i in @char_sprites next if @char_sprites.index(i) == index i.set_opac(opac) end end def create_characters @char_sprites = [] $game_party.members.each {|i| @char_sprites.push Sprite_MenuChar.new(i) } index = 3 @char_sprites.each {|s| s.viewport = @viewport1; s.set_z(index*10,true); index-= 1} end def create_info @info_sprite = Sprite.new @info_sprite.bitmap = Bitmap.new('Graphics/Menu/Info') @info_sprite.y = Graphics.height-@info_sprite.bitmap.height draw_info_stuff end def draw_info_stuff x = 6; y = 0 w = @info_sprite.bitmap.width h = @info_sprite.bitmap.height cw = @info_sprite.bitmap.text_size(journey_desc).width rw = @info_sprite.bitmap.width/2 @info_sprite.bitmap.font.size -= 6 @info_sprite.bitmap.draw_text(x,y,w,h,map_name,0) @info_sprite.bitmap.draw_text(rw-(cw/2),y,w,h,journey_desc,0) @info_sprite.viewport = @viewport3 draw_icon(Zephyr_Menu::Gold_Icon_Index, x, 2, true) end def draw_icon(icon_index, x, y, enabled = true) bitmap = Cache.system("Iconset") rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24) @gold_icon = Sprite.new @gold_icon.bitmap = bitmap @gold_icon.src_rect = rect @gold_icon.x = Graphics.width-26 @gold_icon.y = Graphics.height-26 @gold_icon.z = @info_sprite.z + 2 @gold_icon.viewport = @viewport3 end # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # # Spriteset Methods # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # def map_name return $game_map.map_name end def journey_desc return $game_temp.menu_journey_desc end def party_gold return $game_party.gold end def okay_to_update boolean = true for i in @cmd_sprites next if i.current_xy[1] <= i.orig_xy[1] boolean = false end return boolean end def okay_show_scmds boolean = true for i in @cmd_sprites next if (i.orig_xy[1] < @cmd_sprites[@old_index].orig_xy[1]) if (i.current_xy[1] >= i.new_xy[1]) next else boolean = false end end return boolean end def set_subcmds(indx) @old_index = indx @cmd_sprites[indx].start_select for i in @cmd_sprites next if i.disposed? or i.nil? next if i.orig_xy[1] < @cmd_sprites[indx].orig_xy[1] i.start_down end end def create_sub_commands(items,header) @sub_sprites = [] for i in items index = items.index(i) @sub_sprites.push Sprite_MenuCmd.new(i.term, index, header) end for i in @sub_sprites i.viewport = @viewport1 end end def undo_subcmds @cmd_sprites[@old_index].end_select for i in @cmd_sprites next if i.disposed? or i.nil? i.end_down end end def commands return @cmd_sprites end def sub_commands return @sub_sprites end def chars return @char_sprites end # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # # Spriteset Update # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # def update update_commands update_subcommands update_chars update_info @viewports.each {|i| i.update } end def update_commands for i in @cmd_sprites next if i.disposed? or i.nil? i.update end end def update_subcommands return if @sub_sprites.nil? for i in @sub_sprites next if i.disposed? or i.nil? i.update end end def update_chars return if @char_sprites.nil? for i in @char_sprites.reverse next if i.disposed? or i.nil? i.update end end def update_info @info_sprite.update @gold_icon.update end # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # # Spriteset Disposal # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # def dispose dispose_commands force_dispose_subcommands dispose_chars dispose_info #~ dispose_viewports end def dispose_viewports @viewport1.dispose @viewport2.dispose @viewport3.dispose end def dispose_info @info_sprite.dispose @gold_icon.dispose end def dispose_commands return if @cmd_sprites.nil? @cmd_sprites.each {|x| x.dispose} end def dispose_chars return if @char_sprites.nil? @char_sprites.each {|x| x.dispose} end def dispose_subcommands return if @sub_sprites.nil? @sub_sprites.each {|x| unless x.nil? or x.disposed? x.force_dispose end } end def force_dispose_subcommands return if @sub_sprites.nil? @sub_sprites.each {|x| unless x.nil? or x.disposed? x.dispose end } end end class Sprite_MenuCmd < Sprite_Base def initialize(command,ind=nil,header=nil) super() @text = command @subcmd = !$menu_cmdorder.include?(@text) @bitmap = Bitmap.new('Graphics/Menu/Command') @disabled = false set_opac = false if !@subcmd @txtindex = $menu_cmdorder.index(@text) else set_opac = true @txtindex = ind @subcomand = $menu_commands[$game_temp.menu_category][ind] end self.bitmap = @bitmap @orig_x = (Graphics.width - (@bitmap.width+10)) - 4 @orig_y = 14 unless header.nil? if $menu_cmdorder.include?(header) index = $menu_cmdorder.index(header) @orig_y += 32*(index+1) end end @orig_y += (32 * @txtindex) self.x = @orig_x self.y = @orig_y self.z = 500 disable_command_text if @disabled @bitmap.font.color.alpha = 128 else @bitmap.font.color.alpha = 255 end @bitmap.draw_text(0,0,@bitmap.width,@bitmap.height,@text,1) @new_x = self.x - 32 set_new_y @cursored = false @selected = false @to_x = false @to_y = false @x_locked = false @y_locked = false self.opacity = 0 if set_opac @opening = true @closing = false @viewport = nil end def disable_command_text if @subcmd @disabled = !@subcomand.full_enabled else b = [] for i in $menu_commands[@text] b.push i.full_enabled end b.push $game_switches[Zephyr_Menu::Category_Switches[@text]] unless b.include? true @disabled = true end end end def set_new_y return if @subcmd @new_y = self.y+(32*$menu_commands[$game_temp.menu_category].size) end def text return @text end def text_index return @txtindex end def start_select @selected = true end def s_width return @bitmap.width+10 end def end_select @selected = false end def disabled return @disabled end def select @selected = !@selected end def orig_xy return [@orig_x,@orig_y] end def current_xy return [self.x,self.y] end def new_xy return [@new_x,@new_y] end def start_cursor @to_x = true end def end_cursor @to_x = false end def cursor @to_x = !@to_x end def start_down @to_y = true end def end_down @to_y = false end def move_down @to_y = !@to_y end def update if (@viewport != nil) and (self.viewport != @viewport) self.viewport = @viewport end self.opacity += 15 if @opening unless do_not_fadein @opening = false if self.opacity == 255 if @closing self.opacity -= 20 if self.opacity == 0 force_dispose return end end return if @selected if @to_x to_new_x elsif @to_y to_new_y else to_orig_x unless @x_locked to_orig_y unless @y_locked end end def do_not_fadein if ($game_temp.menu_phase != 0) and !@subcmd return true else return false end end def set_opac(opac) self.opacity = opac end def opac return self.opacity end def to_orig_x self.x += 6 unless self.x >= @orig_x end def to_orig_y self.y -= 6 unless self.y <= @orig_y end def to_new_x self.x -= 6 unless self.x <= @new_x end def to_new_y self.y += 6 unless self.y >= @new_y end def force_dispose @opening = false @closing = true end end class Sprite_MenuChar < Sprite_Base Offsets = Zephyr_Menu::Portrait_Offsets def initialize(actor) #Positionnement des faces dans menu super() @actor = actor @bitmap = Cache.profile(@actor.name) self.bitmap = @bitmap @locked = true self.x = -100 + (120*@actor.index)#self.x = -40 + (187*@actor.index) # self.x = -100 + (120*@actor.index)# Espace des faces dans menu-80 + (160*@actor.index) @orig_y = 160 self.y = @orig_y @new_y = @orig_y - 40 @orig_z = self.z set_offsets end def set_offsets if Offsets.include? @actor.name self.x += Offsets[@actor.name][0] self.y += Offsets[@actor.name][1] end end def update if !self.viewport.nil? and self.viewport != self.viewport self.viewport = self.viewport end update_y end def set_z(z,orig=false) self.z = z @orig_z = z if orig end def return_z self.z = @orig_z end def lock @locked = true end def unlock @locked = false end def set_opac(opac) self.opacity = opac end def update_cursor if @cursor_count == 0 @cursor_sprite.src_rect.x += @w @cursor_sprite.src_rect.x %= @cursor_bitmap.width @cursor_count = 10 else @cursor_count -= 1 end @cursor_sprite.update end def start_select @to_y = true end def end_select @to_y = false end def update_y return if @locked if @to_y self.y -= 4 unless self.y <= @new_y else self.y += 4 unless self.y >= @orig_y end end end[/code] Le problème doit venir de la ligne 188: [code] def update_chars return if @char_sprites.nil? for i in @char_sprites.reverse next if i.disposed? or i.nil? i.update end end[/code] J'ai tenté plusieurs motifs mais en vain, après je ne suis pas assez calé pour résoudre ce problème. >< Merci d'avance.

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h08

Et si tu modifie le nombre maximum de héros dans le script Game party ça marche pas ?


[center] [img]http://img110.xooimage.com/files/f/d/5/0e2426866e07bf44d...7488d760-4d48c77.png[/img] [/center] [center]Merci à [b]Maki[/b] et [b]KuroFidy[/b] pour ces cadeaux: [spoiler][img]http://img15.hostingpics.net/pics/165256cadeaurito.png[/img] [img]https://pbs.twimg.com/media/BuCFKirIYAATs9d.jpg[/img][/spoiler][/center] [url=https://lunarito.wordpress.com/][img]http://img110.xooimage.com/files/a/c/7/cropped-logo-2-4abdef1.png[/img][/url]

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h15

Je vois pas à quel endroit je dois faire la modif en fait. x) [code] class Game_Party < Game_Unit def has_at_least_one_item for i in $data_items+$data_weapons+$data_armors return true if has_item?(i, true) end return false end end class Game_Temp attr_accessor :last_menu_index attr_accessor :last_submenu_index attr_accessor :menu_phase attr_accessor :menu_journey_desc attr_accessor :menu_category alias intialize_cmd_indx initialize unless $@ def initialize intialize_cmd_indx @last_menu_index = 0 @last_submenu_index = {} for i in Zephyr_Menu::Indexes @last_submenu_index[i] = 0 end @menu_phase = 0 @menu_journey_desc = Zephyr_Menu::Start_Description @menu_category = Zephyr_Menu::Indexes[0] end end class Game_System alias reinit_menu_dis initialize unless $@ def initialize reinit_menu_dis @menu_disabled = Zephyr_Menu::Start_Disabled end end class Game_Event < Game_Character def menu_event return false if self.list.nil? for item in self.list if item.code == 108 and item.parameters[0].include?('<menu_event>') return true end next end return false end end class Game_Map def map_name data = load_data('Data/MapInfos.rvdata') return data[@map_id].name end end class Game_Interpreter def set_menu_index(i) $scene.set_menu_index(i) end def set_jouney_desc(text) text.gsub!(/\n/) {''} $game_temp.menu_journey_desc = text end end [/code]

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h23

Au tout début du script Game_party(script de base) tu as ça: [code]#-------------------------------------------------------------------------- MAX_MEMBERS = 4 # Maximum number of party members #--------------------------------------------------------------------------[/code] Met la valeur à 3. J'ai testé et ça marche.


[center] [img]http://img110.xooimage.com/files/f/d/5/0e2426866e07bf44d...7488d760-4d48c77.png[/img] [/center] [center]Merci à [b]Maki[/b] et [b]KuroFidy[/b] pour ces cadeaux: [spoiler][img]http://img15.hostingpics.net/pics/165256cadeaurito.png[/img] [img]https://pbs.twimg.com/media/BuCFKirIYAATs9d.jpg[/img][/spoiler][/center] [url=https://lunarito.wordpress.com/][img]http://img110.xooimage.com/files/a/c/7/cropped-logo-2-4abdef1.png[/img][/url]

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h26

J'ai testé et: [spoiler]Ca marche pas >< [img]http://image.noelshack.com/fichiers/2013/22/1369851956-1.png[/img][/spoiler]

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h27

Sérieux ? xD C'est vraiment ton script qui fait alors.x)


[center] [img]http://img110.xooimage.com/files/f/d/5/0e2426866e07bf44d...7488d760-4d48c77.png[/img] [/center] [center]Merci à [b]Maki[/b] et [b]KuroFidy[/b] pour ces cadeaux: [spoiler][img]http://img15.hostingpics.net/pics/165256cadeaurito.png[/img] [img]https://pbs.twimg.com/media/BuCFKirIYAATs9d.jpg[/img][/spoiler][/center] [url=https://lunarito.wordpress.com/][img]http://img110.xooimage.com/files/a/c/7/cropped-logo-2-4abdef1.png[/img][/url]

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h35

Quand t'as lancé le jeu t'as fait un event pour ajouté la quatrième personne ? On est d'accord ?


[center] [img]http://img110.xooimage.com/files/f/d/5/0e2426866e07bf44d...7488d760-4d48c77.png[/img] [/center] [center]Merci à [b]Maki[/b] et [b]KuroFidy[/b] pour ces cadeaux: [spoiler][img]http://img15.hostingpics.net/pics/165256cadeaurito.png[/img] [img]https://pbs.twimg.com/media/BuCFKirIYAATs9d.jpg[/img][/spoiler][/center] [url=https://lunarito.wordpress.com/][img]http://img110.xooimage.com/files/a/c/7/cropped-logo-2-4abdef1.png[/img][/url]

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h43

Oui, j'ai également regardé dans le script du SBS il est bien configuré pour 3 persos. >< Après il y a le large party de Yanfly, mais la méthode est différente, donc si je mets 3, je peux ajouter personne dans mon équipe. Je dois avoir un script qui touche aux membres de l'équipe je pense.

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h48

[quote="RitoJS"]Quand t'as lancé le jeu t'as fait un event pour ajouté la quatrième personne ? On est d'accord ?[/quote] Ton personne s'ajoute bien à l'équipe ? Je viens de testé en rajoutant juste ça après le script: [code]#============================================================================== # ** Game_Party #------------------------------------------------------------------------------ # This class handles the party. It includes information on amount of gold # and items. The instance of this class is referenced by $game_party. #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- # * Constants #-------------------------------------------------------------------------- MAX_MEMBERS = 3 # Maximum number of party members #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- end [/code] Je peux pas dépasser les 3 actors il doit y avoir un truc. xD

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 20h54

Surement ouais xD J'avais lancé le jeu avec une équipe de 3 persos. Et quand j'en ajoutait un quatrième, il n’apparaissait pas.


[center] [img]http://img110.xooimage.com/files/f/d/5/0e2426866e07bf44d...7488d760-4d48c77.png[/img] [/center] [center]Merci à [b]Maki[/b] et [b]KuroFidy[/b] pour ces cadeaux: [spoiler][img]http://img15.hostingpics.net/pics/165256cadeaurito.png[/img] [img]https://pbs.twimg.com/media/BuCFKirIYAATs9d.jpg[/img][/spoiler][/center] [url=https://lunarito.wordpress.com/][img]http://img110.xooimage.com/files/a/c/7/cropped-logo-2-4abdef1.png[/img][/url]

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 21h16

Ca m'aide pas trop là. xD

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 21h24

Quoi c'est toujours pas résolu ? xD Tu voulais qu'il ne t'affiche que 3 Actor non ? C'est pas le cas ?


[center] [img]http://img110.xooimage.com/files/f/d/5/0e2426866e07bf44d...7488d760-4d48c77.png[/img] [/center] [center]Merci à [b]Maki[/b] et [b]KuroFidy[/b] pour ces cadeaux: [spoiler][img]http://img15.hostingpics.net/pics/165256cadeaurito.png[/img] [img]https://pbs.twimg.com/media/BuCFKirIYAATs9d.jpg[/img][/spoiler][/center] [url=https://lunarito.wordpress.com/][img]http://img110.xooimage.com/files/a/c/7/cropped-logo-2-4abdef1.png[/img][/url]

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 21h27

Oui mais j'utilise plusieurs personnages aussi. xD On va dire que j'ai une équipe de 6 personnages, je voudrais que seul les 3 qui combattent, en gros les 3 premiers du menu apparaissent et pas les 6 d'un coup. =3

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 21h32

Oh là là. Toi c'est carrément un nouveau script qu'il te faut. xD


[center] [img]http://img110.xooimage.com/files/f/d/5/0e2426866e07bf44d...7488d760-4d48c77.png[/img] [/center] [center]Merci à [b]Maki[/b] et [b]KuroFidy[/b] pour ces cadeaux: [spoiler][img]http://img15.hostingpics.net/pics/165256cadeaurito.png[/img] [img]https://pbs.twimg.com/media/BuCFKirIYAATs9d.jpg[/img][/spoiler][/center] [url=https://lunarito.wordpress.com/][img]http://img110.xooimage.com/files/a/c/7/cropped-logo-2-4abdef1.png[/img][/url]

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 21h33

Mais non, la modif est réalisable mais je ne sais pas comment, j'avais le même problème avec le script de sauvegarde de FFIX et maintenant il fonctionne correctement. =)