nuki Humain sans histoire
Messages : 9 Date d'inscription : 19/06/2011
| Sujet: Module QuickSave Dim 19 Juin - 14:15 | |
| Lien Original Blog FunkyWork :: QuicksaveDescriptionModule permettant de s'affranchir du système de sauvegarde normal. Il s'utilise au moyen de méthodes facilements accessibles. InstallationIl suffit de coller le script au dessus de la portion de code Main. UtilisationQuicksave::load(id) -> Charge une partie sur un slot (id) de 1 à 4 Quicksave::save(id) -> Sauvegarde une partie sur un slot (id) de 1 à 4 Quicksave::copy(to, into) -> Copie un slot(to) de 1 à 4 sur un autre slot (into) de 1 à 4 Quicksave::erase(id) -> Supprime un slot (id) de 1 à 4 Quicksave::exist?(id) -> retourne true ou false si un fichier existe ou pas selon son ID Il est possible de modifier la valeur de MAX_SLOT pour dépasser le nombre max (par défaut 4) de sauvegardes. Autuer: Nuki - Code:
-
#Module complémentaire pour la gestion des sauvegarde #Auteur: Nuki #Liste des méthodes utilisables #============================================================= # Quicksave::load(id) -> Charge une partie sur un slot (id) de 1 à 4 # Quicksave::save(id) -> Sauvegarde une partie sur un slot (id) de 1 à 4 # Quicksave::copy(to, into) -> Copie un slot(to) de 1 à 4 sur un autre slot (into) de 1 à 4 # Quicksave::erase(id) -> Supprime un slot (id) de 1 à 4 # Quicksave::exist?(id) -> retourne true ou false si un fichier existe ou pas selon son ID # Quicksave::extract(id) -> retourne un tableau de donnée minimaliste #============================================================= #Les méthodes peuvent être appelée à partir d'un Evenement module Quicksave MAX_SLOT = 4 #charge une partie a partir d'un block def self.load(id_save) id_save = 1 if id_save < 1 id_save = Quicksave::MAX_SLOT if id_save > Quicksave::MAX_SLOT file = Quicksave::make_filename(id_save) file = File.open(file, "rb") characters = Marshal.load(file) Graphics.frame_count = Marshal.load(file) last_bgm = Marshal.load(file) last_bgs = Marshal.load(file) $game_system = Marshal.load(file) $game_message = Marshal.load(file) $game_switches = Marshal.load(file) $game_variables = Marshal.load(file) $game_self_switches = 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.version_id != $data_system.version_id $game_map.setup($game_map.map_id) $game_player.center($game_player.x, $game_player.y) end file.close $scene = Scene_Map.new RPG::BGM.fade(1500) Graphics.fadeout(60) Graphics.wait(40) last_bgm.play last_bgs.play end #sauvegarde une partie sur un block def self.save(id_save) id_save = 1 if id_save < 1 id_save = Quicksave::MAX_SLOT if id_save > Quicksave::MAX_SLOT file = Quicksave::make_filename(id_save) file = File.open(file, "wb") characters = [] for actor in $game_party.members characters.push([actor.character_name, actor.character_index]) end $game_system.save_count += 1 $game_system.version_id = $data_system.version_id last_bgm = RPG::BGM::last last_bgs = RPG::BGS::last Marshal.dump(characters, file) Marshal.dump(Graphics.frame_count, file) Marshal.dump(last_bgm, file) Marshal.dump(last_bgs, file) Marshal.dump($game_system, file) Marshal.dump($game_message, file) Marshal.dump($game_switches, file) Marshal.dump($game_variables, file) Marshal.dump($game_self_switches, 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) file.close end #Copie colle une slot sur une autre def self.copy(to, into) to = 1 if to < 1 to = Quicksave::MAX_SLOT if to > Quicksave::MAX_SLOT into = 1 if into < 1 into = Quicksave::MAX_SLOT if into > Quicksave::MAX_SLOT if to != into file = Quicksave::make_filename(to) file = File.open(file, "rb") characters = Marshal.load(file) Graphics.frame_count = Marshal.load(file) last_bgm = Marshal.load(file) last_bgs = Marshal.load(file) game_system = Marshal.load(file) game_message = Marshal.load(file) game_switches = Marshal.load(file) game_variables = Marshal.load(file) game_self_switches = 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.version_id != $data_system.version_id game_map.setup(game_map.map_id) game_player.center(game_player.x, game_player.y) end file.close file = Quicksave::make_filename(into) file = File.open(file, "wb") characters = [] for actor in game_party.members characters.push([actor.character_name, actor.character_index]) end game_system.save_count += 1 game_system.version_id = $data_system.version_id last_bgm = RPG::BGM::last last_bgs = RPG::BGS::last Marshal.dump(characters, file) Marshal.dump(Graphics.frame_count, file) Marshal.dump(last_bgm, file) Marshal.dump(last_bgs, file) Marshal.dump(game_system, file) Marshal.dump(game_message, file) Marshal.dump(game_switches, file) Marshal.dump(game_variables, file) Marshal.dump(game_self_switches, 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) file.close end end #Supprime/vide un slot sauvegarde def self.erase(id_save) id_save = 1 if id_save < 1 id_save = Quicksave::MAX_SLOT if id_save > Quicksave::MAX_SLOT file = Quicksave::make_filename(id_save) File.delete(file) end #Verifie si une sauvegarde existe def self.exist?(id_save) id_save = 1 if id_save < 1 id_save = Quicksave::MAX_SLOT if id_save > Quicksave::MAX_SLOT file_name = Quicksave::make_filename(id_save) return File.exist?(file_name) end #Extrait les données a afficher d'un slot #retourne un HASH def self.extract(id_save) id_save = 1 if id_save < 1 id_save = Quicksave::MAX_SLOT if id_save > Quicksave::MAX_SLOT file = Quicksave::make_filename(id_save) file = File.open(file, "rb") characters = Marshal.load(file) frame_count = Marshal.load(file) last_bgm = Marshal.load(file) last_bgs = Marshal.load(file) game_system = Marshal.load(file) game_message = Marshal.load(file) game_switches = Marshal.load(file) game_variables = Marshal.load(file) game_self_switches = 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.version_id != $data_system.version_id game_map.setup(game_map.map_id) game_player.center(game_player.x, game_player.y) end file.close valeur = Hash.new total_sec = frame_count/Graphics.frame_rate hour = total_sec / 60 / 60 min = total_sec / 60 % 60 sec = total_sec % 60 time_string = sprintf("%02d:%02d:%02d", hour, min, sec) valeur["temps"] = time_string valeur["lieu"] = game_party.place valeur["niveau"] = game_party.members[0].level valeur["pas"] = game_party.steps return valeur end #Crée le nom d'un fichier d'une sauvegarde # Cette méthode n'est pas à utiliser en dehors de son contexte, elle ne sers que le développement. def self.make_filename(id_save) return "Save#{id_save}.rvdata" end | |
|
Ninchat Ninchat
Messages : 316 Date d'inscription : 06/05/2011
Les Âmes Vos Âmes: (1/100)
| Sujet: Re: Module QuickSave Lun 20 Juin - 10:27 | |
| Merci, ça peut etre pratique.
| |
|