Menu
Eclipso logo
Merry Christmas !
29/03/2024 07:12:08

BELIEVE !

Modification de script II

Kirah

Adepte
Kirah
  • Messages : 268

Modification de script II


mar. 20 août 2013 - 13h30

Bonjour à tous, cette fois-ci c'est un soucis qui peut vite se régler je crois J'aimerais savoir si il est possible d'ajouter ou modifier une ligne dans ce script qui permettrait d'afficher une image ou un "background". Voici le script: [code]#============================================================================== # ** Ring Menu #------------------------------------------------------------------------------- # by Syvkal # Version 1.1 # 06-23-08 #============================================================================== #===================================================# # ** C O N F I G U R A T I O N S Y S T E M ** # #===================================================# # Amount of frames for Startup Animation STARTUP_FRAMES = 20 # Amount of frames for Movement Animation MOVING_FRAMES = 15 # Radius of the Menu Ring RING_R = 75 # Disabled icon to display when disabled ICON_DISABLE= Cache::picture('Icon_Disable') #-------------D-O---N-O-T---T-O-U-C-H---------------# class Scene_Title < Scene_Base alias game_objects_original create_game_objects def create_game_objects game_objects_original #-------------D-O---N-O-T---T-O-U-C-H---------------# # As this script allows you to make a custom Menu I thought to make it easier # I would make it possible to add extra Menu Options from here # All you need to do is specify the Text to display, the icon and the command # The command must be in a STRING # Simply add to the array below : $game_ring_menu = [ # Menu Option 0 eg. Item [Vocab::item, Cache::picture('Icon_Items'), "$scene = Scene_Item.new"], # Menu Option 1 eg. Skill [Vocab::skill, Cache::picture('Icon_Skills'), "start_actor_selection", "$scene = Scene_Skill.new(@status_window.index)"], # Menu Option 2 eg. Equip [Vocab::equip, Cache::picture('Icon_Equip'), "start_actor_selection", "$scene = Scene_Equip.new(@status_window.index)"], # Menu Option 3 eg. Status [Vocab::status, Cache::picture('Icon_Status'), "start_actor_selection", "$scene = Scene_Status.new(@status_window.index)"], #---------------------------------------------------# # ** I N S E R T M O R E H E R E ** # #---------------------------------------------------# # Preferably Insert your custom Menu Options Here # Otherwise the existing Menu Options will return to wrong point on the Menu # Menu Option 4 eg. Save ["Missions", Cache::picture('Icon_Save'), "$scene = Scene_Quest.new"], # Menu Option 5 eg. Load ["Équipe", Cache::picture('Icon_party'), "$scene = Scene_PartyForm.new"], # Menu Option 6 eg. Bestiary ["Bestiaire", Cache::picture('Icon_Bestiaire'), "$scene = Scene_Bestiary.new"], # Menu Option 7 eg. Load ["Synchro", Cache::picture('Icon_bar'),"start_actor_selection", "$scene = Scene_SkillRing.new(@status_window.index)"], # Menu Option 8 eg. End Game [Vocab::game_end, Cache::picture('Icon_End'), "$scene = Scene_End.new"] ] # <--- Do no Delete This #===================================================# # ** E N D C O N F I G U R A T I O N ** # #===================================================# end end #============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # Edited to add Ring Menu #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias initialize_original initialize alias start_selection_original start_actor_selection alias end_selection_original end_actor_selection #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(menu_index = 0, move = true) @move = move initialize_original(menu_index) end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super @back = Plane.new @back.bitmap = Cache.menu("Background") create_menu_background create_command_window @gold_window = Window_Gold.new(0, 360) @location_window = Window_location.new(0, 0) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose if @status_window @location_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_window.update if @status_window @location_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window commands = [] for i in 0...$game_ring_menu.size commands.push($game_ring_menu[i][0]) end icons = [] for i in 0...$game_ring_menu.size icons.push($game_ring_menu[i][1]) end @command_window = Window_RingMenu.new(232, 164, commands, icons, @move, @menu_index) if $game_party.members.size == 0 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end if $game_system.save_disabled @command_window.disable_item(4) end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_status_window names = [] chars = [] for i in 0...$game_party.members.size names[i] = $game_party.members[i].name chars[i] = $game_party.members[i] end @status_window = Window_RingMenu.new(255, 200, names, chars, true, $game_party.last_actor_index, true) 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 eval($game_ring_menu[@command_window.index][2]) end end #-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @command_window.visible = false create_status_window if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end #-------------------------------------------------------------------------- # * End Actor Selection #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @command_window.visible = true @status_window.dispose if @status_window @status_window = nil end #-------------------------------------------------------------------------- # * Update Actor Selection #-------------------------------------------------------------------------- def update_actor_selection 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 eval($game_ring_menu[@command_window.index][3]) end end end #============================================================================== # ** Scene_File #------------------------------------------------------------------------------ # Edited to return to the menu properly when loading #============================================================================== class Scene_File alias return_scene_original return_scene def return_scene if @from_title $scene = Scene_Title.new elsif @from_event $scene = Scene_Map.new else if @saving $scene = Scene_Menu.new($game_ring_menu.size - 3) else $scene = Scene_Menu.new($game_ring_menu.size - 2) end end end end #============================================================================== # ** Scene_End #------------------------------------------------------------------------------ # Edited to return to the menu properly due to loading being added #============================================================================== class Scene_End alias return_scene_original return_scene def return_scene $scene = Scene_Menu.new($game_ring_menu.size - 1) end end #============================================================================== # ** Window_Location #------------------------------------------------------------------------------ # This class shows the current map name. #============================================================================== class Window_location < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 160, (WLH*2) + 32) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear $maps = load_data("Data/MapInfos.rvdata") @map_id = $game_map.map_id @currmap = $maps[@map_id].name self.contents.font.color = system_color self.contents.draw_text(0, -4, 128, 32, "Location :") self.contents.font.color = normal_color self.contents.draw_text(0, -4+WLH, 128, 32, @currmap, 1) end end #============================================================================== # ** Window_RingMenu #------------------------------------------------------------------------------ # This Window creates a Ring Menu system #============================================================================== class Window_RingMenu < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :index attr_reader :item_max #-------------------------------------------------------------------------- # * Refresh Setup #-------------------------------------------------------------------------- START = 1 WAIT = 2 MOVER = 3 MOVEL = 4 #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(center_x, center_y, commands, items, move = true, index = 0, character = false) super(0, 0, 544, 416) self.contents = Bitmap.new(width-32, height-32) self.opacity = 0 @move = move @char = character @startup = STARTUP_FRAMES @commands = commands @item_max = commands.size @index = index @items = items @disabled = [] for i in 0...commands.size-1 @disabled[i] = false end @cx = center_x @cy = center_y start_setup refresh end #-------------------------------------------------------------------------- # * Start Setup #-------------------------------------------------------------------------- def start_setup @mode = START @steps = @startup end #-------------------------------------------------------------------------- # * Disable index # index : item number #-------------------------------------------------------------------------- def disable_item(index) @disabled[index] = true end #-------------------------------------------------------------------------- # * Determines if is moving #-------------------------------------------------------------------------- def animation? return @mode != WAIT end #-------------------------------------------------------------------------- # * Determine if cursor is moveable #-------------------------------------------------------------------------- def cursor_movable? return false if (not visible or not active) return false if (@opening or @closing) return false if animation? return true end #-------------------------------------------------------------------------- # * Move cursor right #-------------------------------------------------------------------------- def cursor_right @index -= 1 @index = @items.size - 1 if @index < 0 @mode = MOVER @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # * Move cursor left #-------------------------------------------------------------------------- def cursor_left @index += 1 @index = 0 if @index >= @items.size @mode = MOVEL @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if self.active if cursor_movable? last_index = @index if Input.repeat?(Input::DOWN) or Input.repeat?(Input::RIGHT) cursor_right end if Input.repeat?(Input::UP) or Input.repeat?(Input::LEFT) cursor_left end if @index != last_index Sound.play_cursor end end refresh end end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear case @mode when START refresh_start when WAIT refresh_wait when MOVER refresh_move(1) when MOVEL refresh_move(0) end rect = Rect.new(18, 196, self.contents.width-32, 32) self.contents.draw_text(rect, @commands[@index], 1) end #-------------------------------------------------------------------------- # * Refresh Start Period #-------------------------------------------------------------------------- def refresh_start d1 = 2.0 * Math::PI / @item_max d2 = 1.0 * Math::PI / @startup for i in 0...@item_max j = i - @index if @move r = RING_R - 1.0 * RING_R * @steps / @startup d = d1 * j + d2 * @steps else r = RING_R d = d1 * j end x = @cx + ( r * Math.sin( d ) ).to_i y = @cy - ( r * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = WAIT end end #-------------------------------------------------------------------------- # * Refresh Wait Period #-------------------------------------------------------------------------- def refresh_wait d = 2.0 * Math::PI / @item_max for i in 0...@item_max j = i - @index x = @cx + ( RING_R * Math.sin( d * j ) ).to_i y = @cy - ( RING_R * Math.cos( d * j ) ).to_i draw_item(x, y, i) end end #-------------------------------------------------------------------------- # * Refresh Movement Period #-------------------------------------------------------------------------- def refresh_move( mode ) d1 = 2.0 * Math::PI / @item_max d2 = d1 / MOVING_FRAMES d2 *= -1 if mode != 0 for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + ( RING_R * Math.sin( d ) ).to_i y = @cy - ( RING_R * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = WAIT end end #-------------------------------------------------------------------------- # * Draw Item # x : draw spot x-coordinate # y : draw spot y-coordinate # index : item number #-------------------------------------------------------------------------- def draw_item(x, y, index) if @char if @index == index draw_character(@items[index].character_name, @items[index].character_index , x, y) if @mode == WAIT draw_actor_hp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 270, true) draw_actor_mp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 180, false) draw_actor_exp_ring(@items[index], @cx, @cy-16, 50, 6, 155, 12, false) end else draw_character(@items[index].character_name, @items[index].character_index , x, y, false) end else rect = Rect.new(0, 0, @items[index].width, @items[index].height) if @index == index self.contents.blt( x, y, @items[index], rect ) if @disabled[@index] self.contents.blt( x, y, ICON_DISABLE, rect ) end else self.contents.blt( x, y, @items[index], rect, 128 ) end end end end #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # Edited to allow disabled character icons #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Character Graphic #-------------------------------------------------------------------------- def draw_character(character_name, character_index, x, y, enabled = true) return if character_name == nil bitmap = Cache.character(character_name) sign = character_name[/^[\!\$]./] if sign != nil and sign.include?('$') cw = bitmap.width / 3 ch = bitmap.height / 4 else cw = bitmap.width / 12 ch = bitmap.height / 8 end n = character_index src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, enabled ? 255 : 128) end end [/code] En jetant un coup d'oeil aux scripts que je détiens, j'ai pu constater que cette ligne faisait apparaître un "Background" dans la plus part des cas mais je ne sais pas si il faut la mettre dans un endroit précis du script d'ou ma demande EDIT: J'avais oublié de mettre la ligne [code] @menu_back.bitmap = Cache.menu("Background")[/code] Merci d'avance... Deuss


[url=http://www.hostingpics.net/viewer.php?id=848601Joke.png][img]http://img15.hostingpics.net/pics/848601Joke.png[/img][/url]

Wanoklox

Novice
Wanoklox
  • Messages : 46

Modification de script II


mar. 20 août 2013 - 13h43

Heu explique un peu mieux ce que tu veux, on sait même pas à quoi sert le script en question. Et faut préciser le support aussi :/

Kirah

Adepte
Kirah
  • Messages : 268

Modification de script II


mar. 20 août 2013 - 13h49

Il s'agit du Ring menu by Syvkal (menu tournant). Ce que je veux, c'est que normalement, le menu apparaît tel quel: [spoiler][url=http://www.hostingpics.net/viewer.php?id=392713ringmenu1.jpg][img]http://img4.hostingpics.net/pics/392713ringmenu1.jpg[/img][/url][/spoiler] Moi je veux que le script est une ligne permettant de faire apparaître une image lorsque l'on appelle le menu


[url=http://www.hostingpics.net/viewer.php?id=848601Joke.png][img]http://img15.hostingpics.net/pics/848601Joke.png[/img][/url]

Wanoklox

Novice
Wanoklox
  • Messages : 46

Modification de script II


mar. 20 août 2013 - 13h51

Ah c'est sur VX Ace, donc je peux pas t'aider désolée.

Kirah

Adepte
Kirah
  • Messages : 268

Modification de script II


mar. 20 août 2013 - 13h53

Non, c'est sur Vx x)


[url=http://www.hostingpics.net/viewer.php?id=848601Joke.png][img]http://img15.hostingpics.net/pics/848601Joke.png[/img][/url]

Ssozi

Expert
Ssozi
  • Messages : 1166

Modification de script II


mar. 20 août 2013 - 16h06

Je te fais ça [b]Edit :[/b] Tiens, le script était un peu mal fichu par endroit. J'ai juste modifié ce qui était en rapport avec le background et ça marche. Je t'ai rajouté un paramètre dans la configuration "Use_background". Tu mets true pour avoir une image de fond, et false pour garder la map en fond. Il faut juste mettre une image nommée "Background" dans le dossier système [spoiler][code] #============================================================================== # ** Ring Menu #------------------------------------------------------------------------------- # by Syvkal # Version 1.1 # 06-23-08 #============================================================================== #===================================================# # ** C O N F I G U R A T I O N S Y S T E M ** # #===================================================# # Amount of frames for Startup Animation STARTUP_FRAMES = 20 # Amount of frames for Movement Animation MOVING_FRAMES = 15 # Radius of the Menu Ring RING_R = 75 # Disabled icon to display when disabled ICON_DISABLE= Cache::picture('Icon_Disable') # Use_Background Use_background = false #-------------D-O---N-O-T---T-O-U-C-H---------------# class Scene_Title < Scene_Base alias game_objects_original create_game_objects def create_game_objects game_objects_original #-------------D-O---N-O-T---T-O-U-C-H---------------# # As this script allows you to make a custom Menu I thought to make it easier # I would make it possible to add extra Menu Options from here # All you need to do is specify the Text to display, the icon and the command # The command must be in a STRING # Simply add to the array below : $game_ring_menu = [ # Menu Option 0 eg. Item [Vocab::item, Cache::picture('Icon_Items'), "$scene = Scene_Item.new"], # Menu Option 1 eg. Skill [Vocab::skill, Cache::picture('Icon_Skills'), "start_actor_selection", "$scene = Scene_Skill.new(@status_window.index)"], # Menu Option 2 eg. Equip [Vocab::equip, Cache::picture('Icon_Equip'), "start_actor_selection", "$scene = Scene_Equip.new(@status_window.index)"], # Menu Option 3 eg. Status [Vocab::status, Cache::picture('Icon_Status'), "start_actor_selection", "$scene = Scene_Status.new(@status_window.index)"], #---------------------------------------------------# # ** I N S E R T M O R E H E R E ** # #---------------------------------------------------# # Preferably Insert your custom Menu Options Here # Otherwise the existing Menu Options will return to wrong point on the Menu # Menu Option 4 eg. Save ["Missions", Cache::picture('Icon_Save'), "$scene = Scene_Quest.new"], # Menu Option 5 eg. Load ["Équipe", Cache::picture('Icon_party'), "$scene = Scene_PartyForm.new"], # Menu Option 6 eg. Bestiary ["Bestiaire", Cache::picture('Icon_Bestiaire'), "$scene = Scene_Bestiary.new"], # Menu Option 7 eg. Load ["Synchro", Cache::picture('Icon_bar'),"start_actor_selection", "$scene = Scene_SkillRing.new(@status_window.index)"], # Menu Option 8 eg. End Game [Vocab::game_end, Cache::picture('Icon_End'), "$scene = Scene_End.new"] ] # <--- Do no Delete This #===================================================# # ** E N D C O N F I G U R A T I O N ** # #===================================================# end end #============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # Edited to add Ring Menu #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias initialize_original initialize alias start_selection_original start_actor_selection alias end_selection_original end_actor_selection #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(menu_index = 0, move = true) @move = move initialize_original(menu_index) end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super if Use_background @fond = Sprite.new @fond.bitmap = Cache.system("Background") else create_menu_background end create_command_window @gold_window = Window_Gold.new(0, 360) @location_window = Window_location.new(0, 0) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super @fond.dispose if @fond dispose_menu_background if ! @fond @command_window.dispose @gold_window.dispose @status_window.dispose if @status_window @location_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_window.update if @status_window @location_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window commands = [] for i in 0...$game_ring_menu.size commands.push($game_ring_menu[i][0]) end icons = [] for i in 0...$game_ring_menu.size icons.push($game_ring_menu[i][1]) end @command_window = Window_RingMenu.new(232, 164, commands, icons, @move, @menu_index) if $game_party.members.size == 0 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end if $game_system.save_disabled @command_window.disable_item(4) end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_status_window names = [] chars = [] for i in 0...$game_party.members.size names[i] = $game_party.members[i].name chars[i] = $game_party.members[i] end @status_window = Window_RingMenu.new(255, 200, names, chars, true, $game_party.last_actor_index, true) 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 eval($game_ring_menu[@command_window.index][2]) end end #-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @command_window.visible = false create_status_window if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end #-------------------------------------------------------------------------- # * End Actor Selection #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @command_window.visible = true @status_window.dispose if @status_window @status_window = nil end #-------------------------------------------------------------------------- # * Update Actor Selection #-------------------------------------------------------------------------- def update_actor_selection 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 eval($game_ring_menu[@command_window.index][3]) end end end #============================================================================== # ** Scene_File #------------------------------------------------------------------------------ # Edited to return to the menu properly when loading #============================================================================== class Scene_File alias return_scene_original return_scene def return_scene if @from_title $scene = Scene_Title.new elsif @from_event $scene = Scene_Map.new else if @saving $scene = Scene_Menu.new($game_ring_menu.size - 3) else $scene = Scene_Menu.new($game_ring_menu.size - 2) end end end end #============================================================================== # ** Scene_End #------------------------------------------------------------------------------ # Edited to return to the menu properly due to loading being added #============================================================================== class Scene_End alias return_scene_original return_scene def return_scene $scene = Scene_Menu.new($game_ring_menu.size - 1) end end #============================================================================== # ** Window_Location #------------------------------------------------------------------------------ # This class shows the current map name. #============================================================================== class Window_location < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 160, (WLH*2) + 32) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear $maps = load_data("Data/MapInfos.rvdata") @map_id = $game_map.map_id @currmap = $maps[@map_id].name self.contents.font.color = system_color self.contents.draw_text(0, -4, 128, 32, "Location :") self.contents.font.color = normal_color self.contents.draw_text(0, -4+WLH, 128, 32, @currmap, 1) end end #============================================================================== # ** Window_RingMenu #------------------------------------------------------------------------------ # This Window creates a Ring Menu system #============================================================================== class Window_RingMenu < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :index attr_reader :item_max #-------------------------------------------------------------------------- # * Refresh Setup #-------------------------------------------------------------------------- START = 1 WAIT = 2 MOVER = 3 MOVEL = 4 #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(center_x, center_y, commands, items, move = true, index = 0, character = false) super(0, 0, 544, 416) self.contents = Bitmap.new(width-32, height-32) self.opacity = 0 @move = move @char = character @startup = STARTUP_FRAMES @commands = commands @item_max = commands.size @index = index @items = items @disabled = [] for i in 0...commands.size-1 @disabled[i] = false end @cx = center_x @cy = center_y start_setup refresh end #-------------------------------------------------------------------------- # * Start Setup #-------------------------------------------------------------------------- def start_setup @mode = START @steps = @startup end #-------------------------------------------------------------------------- # * Disable index # index : item number #-------------------------------------------------------------------------- def disable_item(index) @disabled[index] = true end #-------------------------------------------------------------------------- # * Determines if is moving #-------------------------------------------------------------------------- def animation? return @mode != WAIT end #-------------------------------------------------------------------------- # * Determine if cursor is moveable #-------------------------------------------------------------------------- def cursor_movable? return false if (not visible or not active) return false if (@opening or @closing) return false if animation? return true end #-------------------------------------------------------------------------- # * Move cursor right #-------------------------------------------------------------------------- def cursor_right @index -= 1 @index = @items.size - 1 if @index < 0 @mode = MOVER @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # * Move cursor left #-------------------------------------------------------------------------- def cursor_left @index += 1 @index = 0 if @index >= @items.size @mode = MOVEL @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if self.active if cursor_movable? last_index = @index if Input.repeat?(Input::DOWN) or Input.repeat?(Input::RIGHT) cursor_right end if Input.repeat?(Input::UP) or Input.repeat?(Input::LEFT) cursor_left end if @index != last_index Sound.play_cursor end end refresh end end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear case @mode when START refresh_start when WAIT refresh_wait when MOVER refresh_move(1) when MOVEL refresh_move(0) end rect = Rect.new(18, 196, self.contents.width-32, 32) self.contents.draw_text(rect, @commands[@index], 1) end #-------------------------------------------------------------------------- # * Refresh Start Period #-------------------------------------------------------------------------- def refresh_start d1 = 2.0 * Math::PI / @item_max d2 = 1.0 * Math::PI / @startup for i in 0...@item_max j = i - @index if @move r = RING_R - 1.0 * RING_R * @steps / @startup d = d1 * j + d2 * @steps else r = RING_R d = d1 * j end x = @cx + ( r * Math.sin( d ) ).to_i y = @cy - ( r * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = WAIT end end #-------------------------------------------------------------------------- # * Refresh Wait Period #-------------------------------------------------------------------------- def refresh_wait d = 2.0 * Math::PI / @item_max for i in 0...@item_max j = i - @index x = @cx + ( RING_R * Math.sin( d * j ) ).to_i y = @cy - ( RING_R * Math.cos( d * j ) ).to_i draw_item(x, y, i) end end #-------------------------------------------------------------------------- # * Refresh Movement Period #-------------------------------------------------------------------------- def refresh_move( mode ) d1 = 2.0 * Math::PI / @item_max d2 = d1 / MOVING_FRAMES d2 *= -1 if mode != 0 for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + ( RING_R * Math.sin( d ) ).to_i y = @cy - ( RING_R * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = WAIT end end #-------------------------------------------------------------------------- # * Draw Item # x : draw spot x-coordinate # y : draw spot y-coordinate # index : item number #-------------------------------------------------------------------------- def draw_item(x, y, index) if @char if @index == index draw_character(@items[index].character_name, @items[index].character_index , x, y) if @mode == WAIT draw_actor_hp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 270, true) draw_actor_mp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 180, false) draw_actor_exp_ring(@items[index], @cx, @cy-16, 50, 6, 155, 12, false) end else draw_character(@items[index].character_name, @items[index].character_index , x, y, false) end else rect = Rect.new(0, 0, @items[index].width, @items[index].height) if @index == index self.contents.blt( x, y, @items[index], rect ) if @disabled[@index] self.contents.blt( x, y, ICON_DISABLE, rect ) end else self.contents.blt( x, y, @items[index], rect, 128 ) end end end end #============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # Edited to allow disabled character icons #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Character Graphic #-------------------------------------------------------------------------- def draw_character(character_name, character_index, x, y, enabled = true) return if character_name == nil bitmap = Cache.character(character_name) sign = character_name[/^[\!\$]./] if sign != nil and sign.include?('$') cw = bitmap.width / 3 ch = bitmap.height / 4 else cw = bitmap.width / 12 ch = bitmap.height / 8 end n = character_index src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, enabled ? 255 : 128) end end[/code][/spoiler]


Wanoklox

Novice
Wanoklox
  • Messages : 46

Modification de script II


mar. 20 août 2013 - 16h19

[quote]Non, c'est sur Vx x)[/quote] Pareil, je connais pas les différences VX/XP niveau scripts, en plus j'ai pas les logiciels sur mon PC donc je peux pas tester si ça fonctionne.

Ssozi

Expert
Ssozi
  • Messages : 1166

Modification de script II


mar. 20 août 2013 - 16h40

[quote="Wanoklox"]Pareil, je connais pas les différences VX/XP niveau scripts, en plus j'ai pas les logiciels sur mon PC donc je peux pas tester si ça fonctionne. [/quote] Serait-ce un manque de confiance en moi? Normalement ça marche ^^


Wanoklox

Novice
Wanoklox
  • Messages : 46

Modification de script II


mar. 20 août 2013 - 17h13

Non non, c'était pour dire que du coup j'pouvais pas faire grand chose pour son code.

Kirah

Adepte
Kirah
  • Messages : 268

Modification de script II


mar. 20 août 2013 - 17h49

Biward, es-tu un ange tomber du ciel !? Mais comment te le dire... Merci Grâce à toi je vais pouvoir faire ce que je voulais faire en ayant fais cette demande Allez un petit aperçu du rendu^^: [spoiler][url=http://www.hostingpics.net/viewer.php?id=873953Sanstitre.png][img]http://img11.hostingpics.net/pics/873953Sanstitre.png[/img][/url][/spoiler]


[url=http://www.hostingpics.net/viewer.php?id=848601Joke.png][img]http://img15.hostingpics.net/pics/848601Joke.png[/img][/url]

Ssozi

Expert
Ssozi
  • Messages : 1166

Modification de script II


mar. 20 août 2013 - 17h51

De rien, ça m'a fait plaisir de t'aider ! ^^ Et ça rend bien ton menu


RitoJS

6307
RitoJS
  • Messages : 6307

Modification de script II


mar. 20 août 2013 - 17h52

[color=#FF8000]Je déplaces. +5 pouains pour Biward.[/color]


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