RPG Fusion
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

 

 RGSS2 -> QuickSave

Aller en bas 
AuteurMessage
Invité
Invité
Anonymous



RGSS2 -> QuickSave Empty
MessageSujet: RGSS2 -> QuickSave   RGSS2 -> QuickSave EmptyLun 13 Juin 2011, 16:21

Ce petit module est très facile à utiliser et plutot que fournir un système de save super perfectionné, je préfère donner des outils de conception (notamment via les évenements) très faciles et modulable:
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
end
Je me suis basé sur le système de base, évidemment, pour ne pas faire de réécriture inutile [Don hypocrite]
Revenir en haut Aller en bas
 
RGSS2 -> QuickSave
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RGSS2] Rpg Maker VX Online

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Fusion :: BANQUE DU CODE :: Antre des Scripts :: Divers-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser