AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



-35%
Le deal à ne pas rater :
-35% sur la machine à café Expresso Delonghi La Specialista Arte
359.99 € 549.99 €
Voir le deal

Partagez
 

 [VX] Auto Save

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Guiroh
Vagabond Lv.5
Vagabond Lv.5
Guiroh


Inscrit le : 24/06/2009
Messages : 76

[VX] Auto Save Empty
MessageSujet: [VX] Auto Save   [VX] Auto Save Icon_minitimeLun 29 Juin 2009 - 12:37

Bonjour à tous, j'ai remarqué que le script d'auto sauvegarde n'existe plus sur ce forum. J'ai trouvé sur un site anglais le script Autosave V 1.6

Je l'ai traduit, c'est mon premier script traduit et je suis pas bilingue, je crains qu'il y ai quelque problème de traduction mais normalement vous devrez comprendre.

Il y a deux script Auto Save script V 1.6 et More savefiles 1.10. Il faut installer les deux scripts ( j'ai pas réussit à faire marcher Auto Save script V 1.6 tout seule )

Pour l'installation, créé un script au dessus de Main ( sur Main faites insérer ). Donnez lui comme nom Auto Save script V 1.6. Et copier/coller le script si dessous.

Code:
#~ -----------------------------------------------------------------------------
#~                      Auto Save script V 1.6                       
#~ -----------------------------------------------------------------------------
#~  Créé par Moon et ERZENGEL
#~  http://www.rpgmakervx.com/
#~  Traduit par Guiroh
#~  http://rpg-maker-vx.bbactif.com/forum.htm
#~ -----------------------------------------------------------------------------
#~ V 1.6
#~  Some Fixes.
#~ V 1.5
#~  Vous pouvez maintenant avoir plus de slot de sauvegarde.
#~  Pour cela il faut mettre le script More savefiles 1.10 au dessus de Auto Save script V 1.6

#~ Customiser
module Moon
  module AutoSave
    #~ Vous pouvez choisir le slot de sauvegarde
    #~ que vous utiliserez. ( 1 : première sauvegarde )
    ASR = 2
   
    #~ Ce sera le nom de la sauvegarde.
    ASN = "Autosave.rvdata"
   
    #~ Vous pouvez choisir le nom de l'autosauvegarde qui s'affichera sur le menu "continuer"
    ASN2 = "Autosave"
   
    #~ Si AMSG_ON est "true" alors sur evry Auto save le message sera
    #~ stocké dans AMSG
    AMSG_ON = true
    #~ Le message affiché pendant le jeu, vous pouvez le modifier.
    AMSG = "Sauvergarde automatique effectué."
   
    #~ Combien de fois le jeu sera automatiquement sauvegardé ?
    #~ Un point est égal à une seconde.
    #~
    SPS = 1
   
    #~ C'est pour contrôler le Swich
    #~ Il s'agit du numéreau du switch. Ce switch contrôle le script Auto Save
    #~ Si l'interrupteur est sur OFF le script  Auto Save ne fonctionnera pas
    #~ Autre ~ Il sauvegardera :)
    #~ Si le IFSW est 0 il ne sera pas nécessaire de changer le switch.
    IFSW = 0
 
    #~ Supprimer la sauvegarde après le chargement ?
    DTSAL = false
  end
end

class Scene_Map < Scene_Base
  alias autoSave_start start
  def start
    autoSave_start
   
    @i = 0
  end
 
  alias autoSave_update update
  def update
    autoSave_update
    @a = $game_message.visible
    @b = $game_switches[Moon::AutoSave::IFSW]
    @b = true if Moon::AutoSave::IFSW == 0
    @c = $game_system.save_disabled
    if @a == false && @b == true && @c == false     
      @i += 1
      if @i > Moon::AutoSave::SPS * Graphics.frame_rate * 5
        @i = 0
        file = File.open(Moon::AutoSave::ASN, "wb")
        $game_message.texts.push(Moon::AutoSave::AMSG) if Moon::AutoSave::AMSG_ON
        write_save_data(file)
        file.close
      end
    end
  end
 
  def write_save_data(file)
    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)
  end
end

class Window_SaveFile < Window_Base
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    if @file_index + 1 != Moon::AutoSave::ASR
    name = Vocab::File + " #{@file_index + 1}"
    else
    name = Moon::AutoSave::ASN2
    end
    self.contents.draw_text(4, 0, 200, WLH, name)
    @name_width = contents.text_size(name).width
    if @file_exist
      draw_party_characters(152, 58)
      draw_playtime(0, 34, contents.width - 4, 2)
    end
  end
end

class Scene_File < Scene_Base
  def do_save
    if @index != Moon::AutoSave::ASR-1
    file = File.open(@savefile_windows[@index].filename, "wb")
    else
    file = File.open(Moon::AutoSave::ASN, "wb")
    end
    write_save_data(file)
    file.close
    return_scene
  end

  alias do_load2 do_load
  def do_load
    do_load2
    File.delete(@savefile_windows[@index].filename) if ((@index == Moon::AutoSave::ASR-1) && (Moon::AutoSave::DTSAL))
  end
 
  def create_savefile_windows
    @savefile_windows = []
    @top_row = 0
    if ERZSAVE::MAXSAVEFILES == nil
    for i in 0..3
      if i != Moon::AutoSave::ASR - 1
      @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
      else
      @savefile_windows.push(Window_SaveFile.new(i, Moon::AutoSave::ASN))
      end
    @item_max = 4
    end
    else
    for i in 0..(ERZSAVE::MAXSAVEFILES - 1)     
      if i != Moon::AutoSave::ASR - 1
      @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
      else
      @savefile_windows.push(Window_SaveFile.new(i, Moon::AutoSave::ASN))
      end
      @item_max = ERZSAVE::MAXSAVEFILES
    end
  end
  end
end

class Scene_Title < Scene_Base
  alias check_continue_moon_auto_save check_continue
  def check_continue
    check_continue_moon_auto_save
    @continue_enabled2 = (Dir.glob(Moon::AutoSave::ASN).size > 0)
    @continue_enabled = @continue_enabled2 if @continue_enabled == false
  end
end

Maintenant, il faut créer un script au DESSUS de Auto Save script V 1.6 ( sur Auto Save script V 1.6 faites insérer ). Donnez lui comme nom More savefiles 1.10. Pous copier/coller le script si dessous :

Code:
#==============================================================================
# ** More savefiles 1.10 (http://erzvx.de.ms/scripts/moresavefiles.txt)
#------------------------------------------------------------------------------
# Créé par ERZENGEL
# Traduit par Guiroh ( enfin plus ou moins...)
#==============================================================================

module ERZSAVE
# Le nombre maximun de slot sauvegarde (vous pouvez le modifier)
MAXSAVEFILES = 20
# Montant maximun que le joueur peut mettre (-1 = infinité )
MAXSAVEAMOUNT = -1
end

#==============================================================================
# ** Window_SaveFile
#------------------------------------------------------------------------------
# This window displays save files on the save and load screens.
#==============================================================================

class Window_SaveFile < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# file_index : sauvegarde le fichier index (0 à la valeur de MAXSAVEFILES)
# filename : filename
#--------------------------------------------------------------------------
def initialize(file_index, filename)
super(0, 56 + file_index % ERZSAVE::MAXSAVEFILES * 90, 544, 90)
@file_index = file_index
@filename = filename
load_gamedata
refresh
@selected = false
end
end

#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
# This class performs the save and load screen processing.
#==============================================================================

class Scene_File
#--------------------------------------------------------------------------
# * Début du traitement
#--------------------------------------------------------------------------
def start
  super
  @file_max = ERZSAVE::MAXSAVEFILES
  create_menu_background
  @help_window = Window_Help.new
  create_savefile_windows
  if @saving
    @index = $game_temp.last_file_index
    @help_window.set_text(Vocab::SaveMessage)
  else
    @index = self.latest_file_index
    @help_window.set_text(Vocab::LoadMessage)
  end
  @savefile_windows[@index].selected = true
  @page_file_max = ((416 - @help_window.height) / 90).truncate
  for i in 0...@file_max
    window = @savefile_windows[i]
    if @index > @page_file_max - 1
    if @index < @file_max - @page_file_max - 1
      @top_row = @index
      window.y -= @index * window.height
    elsif @index >= @file_max - @page_file_max
      @top_row = @file_max - @page_file_max
      window.y -= (@file_max - @page_file_max) * window.height
    else
    @top_row = @index
    window.y -= @index * window.height
    end
    end
    window.visible = (window.y >= @help_window.height and
    window.y < @help_window.height + @page_file_max * window.height)
  end
end
#--------------------------------------------------------------------------
# *    Créer la fenêtre "Enregistrer le fichier"
#--------------------------------------------------------------------------
def create_savefile_windows
  @top_row = 0
  @savefile_windows = []
  for i in 0...@file_max
    @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
  end
end
#--------------------------------------------------------------------------
# * Déplacer le curseur vers la bas
# wrap : Wraparound ( jupe ? ) permis
#--------------------------------------------------------------------------
def cursor_down(wrap)
  if @index < @file_max - 1 or wrap
    @index = (@index + 1) % @file_max
    for i in 0...@file_max
      window = @savefile_windows[i]
      if @index == 0
        @top_row = 0
        window.y = @help_window.height + i % @file_max * window.height
      elsif @index - @top_row > @page_file_max - 1
        window.y -= window.height
      end
      window.visible = (window.y >= @help_window.height and
      window.y < @help_window.height + @page_file_max * window.height)
    end
    if @index - @top_row > @page_file_max - 1
      @top_row += 1
    end
  end
end
#--------------------------------------------------------------------------
# * Déplacer le curseur vers le haut
# wrap : Wraparound ( jupe ? ) permis
#--------------------------------------------------------------------------
def cursor_up(wrap)
  if @index > 0 or wrap
    @index = (@index - 1 + @file_max) % @file_max
    for i in 0...@file_max
      window = @savefile_windows[i]
      if @index == @file_max - 1
        @top_row = @file_max - @page_file_max
        window.y = @help_window.height + i % @file_max * window.height
        window.y -= (@file_max - @page_file_max) * window.height
      elsif @index - @top_row < 0
        window.y += window.height
      end
      window.visible = (window.y >= @help_window.height and
      window.y < @help_window.height + @page_file_max * window.height)
    end
    if @index - @top_row < 0
      @top_row -= 1
    end
    end
  end
end

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs the menu screen processing.
#==============================================================================

class Scene_Menu
#--------------------------------------------------------------------------
# * Début du traitement
#--------------------------------------------------------------------------
alias erz_saveslots_start start
def start
  if $game_system.save_count >= ERZSAVE::MAXSAVEAMOUNT and ERZSAVE::MAXSAVEAMOUNT >= 0
    $game_system.save_disabled = true
  end
  erz_saveslots_start
end
end

Et voila, créé par Moon et ERZENGEL. A citer dans les crédits. Pour Guiroh, c'est facultatif...


Quelques images :

Spoiler:
Revenir en haut Aller en bas
kordarr
Templier Lv.15
Templier Lv.15
kordarr


Masculin Age : 34
Inscrit le : 11/12/2008
Messages : 1278

[VX] Auto Save Empty
MessageSujet: Re: [VX] Auto Save   [VX] Auto Save Icon_minitimeLun 29 Juin 2009 - 13:09

Coeur ...sauvegarde automatique...J'adore tout simplement, merci du partage.
Revenir en haut Aller en bas
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

[VX] Auto Save Empty
MessageSujet: Re: [VX] Auto Save   [VX] Auto Save Icon_minitimeLun 29 Juin 2009 - 13:11

Ouais !
Pas mal ça
Revenir en haut Aller en bas
Contenu sponsorisé




[VX] Auto Save Empty
MessageSujet: Re: [VX] Auto Save   [VX] Auto Save Icon_minitime

Revenir en haut Aller en bas
 

[VX] Auto Save

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» [VX] Neo Save System V
» [VX] Zelda Save System
» CACAO Save script
» [ADD-ON SBS] Auto Battle
» [VX] Auto-téléportation

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Sauvegarde-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit