Menu
Eclipso logo
Merry Christmas !
20/04/2024 11:47:39

Merci du partage + des pouains - RitoJS

Afficher 3 actors dans le menu

Cantarelle

Adepte
Cantarelle
  • Messages : 298

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 21h51

Ce que tu tentes de modifier, c'est le update. Ce n'est pas du tout ça. Il faut savoir que, chaque fois que tu es retourne dans le menu, c'est une autre scène qui joue... Donc, à chaque fois, c'est un nouveau create... Donc, j'ai retouché un peu le script pour qu'il soit plus lisible [code] class Menu_Spriteset # ============================================================================== # Spriteset Creation # ============================================================================== # ---------------------------------------------------------------------------- # def initialize # ---------------------------------------------------------------------------- def initialize create_viewports create_commands @old_index = 0 create_characters create_info end # ---------------------------------------------------------------------------- # def create_viewports # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- def create_characters @char_sprites = [] if ($game_party_members <= 3) $game_party.members.each {|i| else #mettre perso 1, 2 et 3. A toi de trouver la ligne end @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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- def map_name return $game_map.map_name end # ---------------------------------------------------------------------------- # def journey_desc # ---------------------------------------------------------------------------- def journey_desc return $game_temp.menu_journey_desc end # ---------------------------------------------------------------------------- # def party_gold # ---------------------------------------------------------------------------- def party_gold return $game_party.gold end # ---------------------------------------------------------------------------- # def okay_to-update # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- def commands return @cmd_sprites end # ---------------------------------------------------------------------------- # def sub_commands # ---------------------------------------------------------------------------- def sub_commands return @sub_sprites end # ---------------------------------------------------------------------------- # def chars # ---------------------------------------------------------------------------- def chars return @char_sprites end # ============================================================================== # Spriteset Update # ============================================================================== # ---------------------------------------------------------------------------- # def update # ---------------------------------------------------------------------------- def update update_commands update_subcommands update_chars update_info @viewports.each {|i| i.update } end # ---------------------------------------------------------------------------- # def update_commands # ---------------------------------------------------------------------------- def update_commands for i in @cmd_sprites next if i.disposed? or i.nil? i.update end end # ---------------------------------------------------------------------------- # def update_subcommands # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- def update_info @info_sprite.update @gold_icon.update end # ============================================================================== # Spriteset Disposal # ============================================================================== # ---------------------------------------------------------------------------- # def dispose # ---------------------------------------------------------------------------- def dispose dispose_commands force_dispose_subcommands dispose_chars dispose_info #~ dispose_viewports end # ---------------------------------------------------------------------------- # def dispose_viewports # ---------------------------------------------------------------------------- def dispose_viewports @viewport1.dispose @viewport2.dispose @viewport3.dispose end # ---------------------------------------------------------------------------- # def dispose_info # ---------------------------------------------------------------------------- def dispose_info @info_sprite.dispose @gold_icon.dispose end # ---------------------------------------------------------------------------- # def dispose_commands # ---------------------------------------------------------------------------- def dispose_commands return if @cmd_sprites.nil? @cmd_sprites.each {|x| x.dispose} end # ---------------------------------------------------------------------------- # def dispose_chars # ---------------------------------------------------------------------------- def dispose_chars return if @char_sprites.nil? @char_sprites.each {|x| x.dispose} end # ---------------------------------------------------------------------------- # def dispose_subcommands # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- end # ============================================================================== # ============================================================================== # class Sprite_MenuCmd # ============================================================================== # ============================================================================== class Sprite_MenuCmd < Sprite_Base # ---------------------------------------------------------------------------- # def initialize # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- def set_new_y return if @subcmd @new_y = self.y+(32*$menu_commands[$game_temp.menu_category].size) end # ---------------------------------------------------------------------------- # def text # ---------------------------------------------------------------------------- def text return @text end # ---------------------------------------------------------------------------- # def text_index # ---------------------------------------------------------------------------- def text_index return @txtindex end # ---------------------------------------------------------------------------- # def start_select # ---------------------------------------------------------------------------- def start_select @selected = true end # ---------------------------------------------------------------------------- # def s_width # ---------------------------------------------------------------------------- def s_width return @bitmap.width+10 end # ---------------------------------------------------------------------------- # def end_select # ---------------------------------------------------------------------------- def end_select @selected = false end # ---------------------------------------------------------------------------- # def disabled # ---------------------------------------------------------------------------- def disabled return @disabled end # ---------------------------------------------------------------------------- # def select # ---------------------------------------------------------------------------- def select @selected = !@selected end # ---------------------------------------------------------------------------- # def orig_xy # ---------------------------------------------------------------------------- def orig_xy return [@orig_x,@orig_y] end # ---------------------------------------------------------------------------- # def current_xy # ---------------------------------------------------------------------------- def current_xy return [self.x,self.y] end # ---------------------------------------------------------------------------- # def new_xy # ---------------------------------------------------------------------------- def new_xy return [@new_x,@new_y] end # ---------------------------------------------------------------------------- # def start_cursor # ---------------------------------------------------------------------------- def start_cursor @to_x = true end # ---------------------------------------------------------------------------- # def end_cursor # ---------------------------------------------------------------------------- def end_cursor @to_x = false end # ---------------------------------------------------------------------------- # def cursor # ---------------------------------------------------------------------------- def cursor @to_x = !@to_x end # ---------------------------------------------------------------------------- # def start_down # ---------------------------------------------------------------------------- def start_down @to_y = true end # ---------------------------------------------------------------------------- # def start_down # ---------------------------------------------------------------------------- def end_down @to_y = false end # ---------------------------------------------------------------------------- # def move_down # ---------------------------------------------------------------------------- def move_down @to_y = !@to_y end # ---------------------------------------------------------------------------- # def update # ---------------------------------------------------------------------------- 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_no_fadein # ---------------------------------------------------------------------------- def do_not_fadein if ($game_temp.menu_phase != 0) and !@subcmd return true else return false end end # ---------------------------------------------------------------------------- # def set_opac # ---------------------------------------------------------------------------- def set_opac(opac) self.opacity = opac end # ---------------------------------------------------------------------------- # def opac # ---------------------------------------------------------------------------- def opac return self.opacity end # ---------------------------------------------------------------------------- # def to_orig_x # ---------------------------------------------------------------------------- def to_orig_x self.x += 6 unless self.x >= @orig_x end # ---------------------------------------------------------------------------- # def to_orig_y # ---------------------------------------------------------------------------- def to_orig_y self.y -= 6 unless self.y <= @orig_y end # ---------------------------------------------------------------------------- # def to_new_x # ---------------------------------------------------------------------------- def to_new_x self.x -= 6 unless self.x <= @new_x end # ---------------------------------------------------------------------------- # def to_new_y # ---------------------------------------------------------------------------- def to_new_y self.y += 6 unless self.y >= @new_y end # ---------------------------------------------------------------------------- # def force_dispose # ---------------------------------------------------------------------------- def force_dispose @opening = false @closing = true end # ---------------------------------------------------------------------------- # end class # ---------------------------------------------------------------------------- end # ============================================================================== # ============================================================================== # class Sprite_MenuChar # ============================================================================== # ============================================================================== class Sprite_MenuChar < Sprite_Base Offsets = Zephyr_Menu::Portrait_Offsets # ---------------------------------------------------------------------------- # def initialize # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- def set_offsets if Offsets.include? @actor.name self.x += Offsets[@actor.name][0] self.y += Offsets[@actor.name][1] end end # ---------------------------------------------------------------------------- # def update # ---------------------------------------------------------------------------- def update if !self.viewport.nil? and self.viewport != self.viewport self.viewport = self.viewport end update_y end # ---------------------------------------------------------------------------- # def set_z # ---------------------------------------------------------------------------- def set_z(z,orig=false) self.z = z @orig_z = z if orig end # ---------------------------------------------------------------------------- # def return_z # ---------------------------------------------------------------------------- def return_z self.z = @orig_z end # ---------------------------------------------------------------------------- # def lock # ---------------------------------------------------------------------------- def lock @locked = true end # ---------------------------------------------------------------------------- # def unlock # ---------------------------------------------------------------------------- def unlock @locked = false end # ---------------------------------------------------------------------------- # def set_opac # ---------------------------------------------------------------------------- def set_opac(opac) self.opacity = opac end # ---------------------------------------------------------------------------- # def update_cursor # ---------------------------------------------------------------------------- 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 # ---------------------------------------------------------------------------- def start_select @to_y = true end # ---------------------------------------------------------------------------- # def end_select # ---------------------------------------------------------------------------- def end_select @to_y = false end # ---------------------------------------------------------------------------- # def update_y # ---------------------------------------------------------------------------- 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 class # ---------------------------------------------------------------------------- end [/code] Par contre, il ne fonctionnera pas comme ça. Je n'ai pas VX (ou VX.ace) et je n'ai pas envie de les télécharger... Par contre, j'ai donné un commentaire sur ce qu'il faut que tu insères comme code : [code] # ---------------------------------------------------------------------------- # def create_characters # ---------------------------------------------------------------------------- def create_characters @char_sprites = [] if ($game_party_members <= 3) $game_party.members.each {|i| else #mettre perso 1, 2 et 3. A toi de trouver la ligne end @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 [/code] Bref, j'ai ajouté une condition. Si ce qui génère la création des personnages est limitée à 3, ce n'est pas la peine de toucher tout ce qui est lié au graphisme. Par contre, vu que je connais pas VX ou VX.Ace, je ne sais pas de quel type est vraiment cette variable globale ( $game_party.members ). Il se peut qu'il faut que tu mettes à la place $game_party.members.to_i De plus, je ne garantis pas que ce script marche... Je n'ai pas moyen de tester... C'est juste que j'étais dans du code et qu'il faudrait que je lâche pour faire la commande de Delta...

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 21h56

Continue de l'aider Canta ! Moi je suis out là 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 - 22h02

Merci Canta, je test ça et j'édit. =)

Anonyme

8015
Anonyme
  • Messages : 8015

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 22h22

ZEF a mis ce code à la place: [code]def create_characters @char_sprites = [] $game_party.members[0...3].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[/code] Ca marche parfaitement, merci beaucoup à vous deux. =)

Cantarelle

Adepte
Cantarelle
  • Messages : 298

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 22h30

Il est parti sur la même logique que moi. Sauf que je savais pas qu'on pouvait écrire comme ça : [code]$game_party.members[0...3].each {|i|[/code] Et je suis partie dans une approche plus classique (if, else) Au moins, j'aurai appris un truc ce soir. Rito : j'ai prévu de faire, quand j'aurai plus de temps, des tutos sur la prog... Tu verras que ce n'est pas si dur.

RitoJS

6307
RitoJS
  • Messages : 6307

Afficher 3 actors dans le menu


mer. 29 mai 2013 - 22h32

Je vais m'y préparé mentalement.


[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]