Jordinateur Blob
Nombre de messages : 260 Localisation : Devant mon ordinateur !(enfin sa dépend, peut-être avec ma copine aussi ^^) Humeur/Caractère : Aller a l'école T_T Date d'inscription : 12/05/2006
| Sujet: Nouveau menu de sauvegardes Dim 21 Mai - 2:23 | |
| Il remplacera votre fenêtre de sauvegarde pour afficher une images de la carte ou la sauvegarde a été effectué, ainsi que le temps de jeu : (joli n'est ce pas ) D'abord créer un nouveau dossier dans votre projet (avec les fichiers appellés "Game", et nommé le "Saves". :arrow:REMPLACER (dans Scene_Title) : - Code:
-
for i in 0..3 if FileTest.exist?("Save#{i+1}.rxdata") @continue_enabled = true end end Par : - Code:
-
or i in 0..99 if FileTest.exist?("Saves/Save#{i+1}.rxdata") @continue_enabled = true end end Puis créer un nouveau script au dessus de "main", et nommé le "Advance Save Menu" : - Code:
-
#===================================== # ■ ASM - advanced save menu #------------------------------------------------------------------------------ # by squall // squall@loeher.zzn.com # monday the 28th of november 2005 # # Allows to have up to 99 files. # Files are stored inside of the folder 'Saves' inside of the game's folder. # Don't forget to create that folder if it doesn't already exist. #======================================
#====================================== # ■ Window_File #------------------------------------------------------------------------------ # This window shows a list of recorded save files. #======================================
class Window_File < Window_Selectable #-------------------------------------------------------------------------- # ● initialize #-------------------------------------------------------------------------- def initialize() super(0, 64, 320, 416) self.contents = Bitmap.new(width - 32, 99 * 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize index = $game_temp.last_file_index == nil ? 0 : $game_temp.last_file_index self.index = index @item_max = 99 refresh end #-------------------------------------------------------------------------- # ● refresh the window #-------------------------------------------------------------------------- def refresh time_stamp = Time.at(0) for i in 0...99 filename = "Saves/Save#{i + 1}.rxdata" self.contents.draw_text(1, i * 32, 32, 32, (i + 1).to_s, 1) if FileTest.exist?(filename) size = File.size(filename) if size.between?(1000, 999999) size /= 1000 size_str = "#{size} Ko" elsif size > 999999 size /= 1000000 size_str = "#{size} Mo" else size_str = size.to_s end time_stamp = File.open(filename, "r").mtime date = time_stamp.strftime("%d/%m/%Y") time = time_stamp.strftime("%H:%M") self.contents.draw_text(38, i * 32, 120, 32, date) self.contents.draw_text(160, i * 32, 100, 32, time) self.contents.draw_text(0, i * 32, 284, 32, size_str, 2) end end end end
#====================================== # ■ Window_FileStatus #------------------------------------------------------------------------------ # This window shows the status of the currently selected save file #======================================
class Window_FileStatus < Window_Base #-------------------------------------------------------------------------- # ● initialize #-------------------------------------------------------------------------- def initialize(save_window) super(320, 64, 320, 416) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = $fontsize @save_window = save_window @index = @save_window.index rect = Rect.new(x + 16, y + (height - 32) / 2 + 16, width - 32, (height - 32) / 2) @viewport = Viewport.new(rect) @viewport.z = z + 10 refresh end #-------------------------------------------------------------------------- # ● dispose the map and the window #-------------------------------------------------------------------------- def dispose tilemap_dispose @viewport.dispose super end #-------------------------------------------------------------------------- # ● refresh the window #-------------------------------------------------------------------------- def refresh self.contents.clear tilemap_dispose filename = "Saves/Save#{@index + 1}.rxdata" return unless FileTest.exist?(filename) file = File.open(filename, "r") Marshal.load(file) frame_count = Marshal.load(file) for i in 0...6 Marshal.load(file) end party = Marshal.load(file) Marshal.load(file) map = Marshal.load(file) for i in 0...party.actors.size actor = party.actors[i] x = i % 2 * 144 + 4 y = i / 2 * 64 draw_actor_name(actor, x + 40, y) draw_actor_level(actor, x + 40, y + 32) draw_actor_graphic(actor, x + 10, y + 50) end total_sec = frame_count / Graphics.frame_rate hour = total_sec / 60 / 60 min = total_sec / 60 % 60 sec = total_sec % 60 text = sprintf("%02d:%02d:%02d", hour, min, sec) map_name = load_data("Data/MapInfos.rxdata")[map.map_id].name self.contents.font.color = system_color self.contents.draw_text(4, 128, 120, 32, "Played Time ") self.contents.draw_text(4, 160, 120, 32, "Location ") self.contents.draw_text(128, 128, 16, 32, ":") self.contents.draw_text(128, 160, 16, 32, ":") self.contents.font.color = normal_color self.contents.draw_text(144, 128, 120, 32, text) self.contents.draw_text(144, 160, 120, 32, map_name)
@tilemap = Tilemap.new(@viewport) @tilemap.tileset = RPG::Cache.tileset(map.tileset_name) for i in 0..6 autotile_name = map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = map.data @tilemap.ox = map.display_x / 4 + 176 @tilemap.oy = map.display_y / 4 + 148 end #-------------------------------------------------------------------------- # ● tilemap_dispose #-------------------------------------------------------------------------- def tilemap_dispose unless @tilemap == nil @tilemap.tileset.dispose for i in 0..6 @tilemap.autotiles[i].dispose end @tilemap.dispose @tilemap = nil end end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- def update @tilemap.update if @tilemap != nil if @index != @save_window.index @index = @save_window.index refresh end super end end
#==================================== # ■ Scene_File #------------------------------------------------------------------------------ # Base scene for load and save menus. #====================================
class Scene_File #-------------------------------------------------------------------------- # ● initialize the scene #-------------------------------------------------------------------------- def initialize(help_text) @help_text = help_text end #-------------------------------------------------------------------------- # ● main #-------------------------------------------------------------------------- def main @help_window = Window_Help.new @help_window.set_text(@help_text) @file_window = Window_File.new @status_window = Window_FileStatus.new(@file_window) Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @help_window.dispose @file_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- def update @help_window.update @file_window.update @status_window.update if Input.trigger?(Input::C) decision $game_temp.last_file_index = @file_index return end if Input.trigger?(Input::B) cancel return end end #-------------------------------------------------------------------------- # ● return the selected file's name #-------------------------------------------------------------------------- def filename return "Saves/Save#{@file_window.index + 1}.rxdata" end end
#==================================== # ■ Scene_Save #------------------------------------------------------------------------------ # Save menu #====================================
class Scene_Save < Scene_File #-------------------------------------------------------------------------- # ● initialize the save menu #-------------------------------------------------------------------------- def initialize super("Select a file to record your progress.") end #-------------------------------------------------------------------------- # ● decision key pressed #-------------------------------------------------------------------------- def decision $game_system.se_play($data_system.save_se) file = File.open(filename, "wb") write_save_data(file) file.close if $game_temp.save_calling $game_temp.save_calling = false $scene = Scene_Map.new return end $scene = Scene_Menu.new(4) end #-------------------------------------------------------------------------- # ● cancel key pressed #-------------------------------------------------------------------------- def cancel $game_system.se_play($data_system.cancel_se) if $game_temp.save_calling $game_temp.save_calling = false $scene = Scene_Map.new return end $scene = Scene_Menu.new(4) end #-------------------------------------------------------------------------- # ● save the current data into the selected file #-------------------------------------------------------------------------- def write_save_data(file) characters = [] for i in 0...$game_party.actors.size actor = $game_party.actors[i] characters.push([actor.character_name, actor.character_hue]) end Marshal.dump(characters, file) Marshal.dump(Graphics.frame_count, file) $game_system.save_count += 1 $game_system.magic_number = $data_system.magic_number Marshal.dump($game_system, file) Marshal.dump($game_switches, file) Marshal.dump($game_variables, file) Marshal.dump($game_self_switches, file) Marshal.dump($game_screen, file) Marshal.dump($game_actors, file) Marshal.dump($game_party, file) Marshal.dump($game_troop, file) Marshal.dump($game_map, file) Marshal.dump($game_player, file) end end
#====================================== # ■ Scene_Load #------------------------------------------------------------------------------ # Load menu #======================================
class Scene_Load < Scene_File #-------------------------------------------------------------------------- # ● initialize the menu #-------------------------------------------------------------------------- def initialize $game_temp = Game_Temp.new $game_temp.last_file_index = 0 latest_time = Time.at(0) for i in 0..99 filename = "Saves/Save#{i + 1}.rxdata" if FileTest.exist?(filename) file = File.open(filename, "r") if file.mtime > latest_time latest_time = file.mtime $game_temp.last_file_index = i end file.close end end super("Select a file to load.") end #-------------------------------------------------------------------------- # ● decision key pressed #-------------------------------------------------------------------------- def decision unless FileTest.exist?(filename) $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.load_se) file = File.open(filename, "rb") read_save_data(file) file.close $game_system.bgm_play($game_system.playing_bgm) $game_system.bgs_play($game_system.playing_bgs) $game_map.update $scene = Scene_Map.new end #-------------------------------------------------------------------------- # ● cancel key pressed #-------------------------------------------------------------------------- def cancel $game_system.se_play($data_system.cancel_se) $scene = Scene_Title.new end #-------------------------------------------------------------------------- # ● load the selected file #-------------------------------------------------------------------------- def read_save_data(file) characters = Marshal.load(file) Graphics.frame_count = Marshal.load(file) $game_system = Marshal.load(file) $game_switches = Marshal.load(file) $game_variables = Marshal.load(file) $game_self_switches = Marshal.load(file) $game_screen = Marshal.load(file) $game_actors = Marshal.load(file) $game_party = Marshal.load(file) $game_troop = Marshal.load(file) $game_map = Marshal.load(file) $game_player = Marshal.load(file) if $game_system.magic_number != $data_system.magic_number $game_map.setup($game_map.map_id) $game_player.center($game_player.x, $game_player.y) end $game_party.refresh end end
| |
|
Zelda_PL Blob Jaune
Nombre de messages : 797 Age : 31 Localisation : En train d'éliminé les deadras de Cyrodiil Date d'inscription : 09/05/2006
| Sujet: Re: Nouveau menu de sauvegardes Dim 21 Mai - 3:13 | |
| Vraiment cool !!!
Tu l'est trouve où ! | |
|
Jordinateur Blob
Nombre de messages : 260 Localisation : Devant mon ordinateur !(enfin sa dépend, peut-être avec ma copine aussi ^^) Humeur/Caractère : Aller a l'école T_T Date d'inscription : 12/05/2006
| Sujet: Re: Nouveau menu de sauvegardes Dim 21 Mai - 11:56 | |
| C'est vrai que je me demande où je les trouve des fois Enfin ne t'occupe pas du où et du comment je les trouve, contente toi de les admirer pleinement C'est vrais que là je suis fier de moi, il est classe Il y en a pleins d'autres aussi génial que celui ci que prochainement je vais poster | |
|
Contenu sponsorisé
| Sujet: Re: Nouveau menu de sauvegardes | |
| |
|