Vagabond Lv.5
Inscrit le : 24/06/2009 Messages : 76
| Sujet: [VX] Auto Save Lun 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:
|
|
Templier Lv.15
Age : 34 Inscrit le : 11/12/2008 Messages : 1278
| Sujet: Re: [VX] Auto Save Lun 29 Juin 2009 - 13:09 | |
| ...sauvegarde automatique...J'adore tout simplement, merci du partage. |
|
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: [VX] Auto Save Lun 29 Juin 2009 - 13:11 | |
| |
|
| Sujet: Re: [VX] Auto Save | |
| |
|