Autosauvegarde
Ven 11 Juil 2008 - 13:26
Bonjour !
Auteur :
Moon
Screen :
Script :
Infos supp' :
A mettre au dessus de Main.
Auteur :
Moon
Screen :
Script :
- Code:
# -----------------------------------------------------------------------------
# Auto Save Script by Moon V 1.3 |
# -----------------------------------------------------------------------------
# RPGMAKERVX.org forum topic: |
# http://www.rpgmakervx.net/index.php?showtopic=1842 |
# -----------------------------------------------------------------------------
# Tradução: Randal Br - Feito sob autorização do autor.
# Distribuido apenas no fórum RPG Maker Brasil - Www.rpgmakerbrasil.com.br
# -----------------------------------------------------------------------------
#~ V 1.2
#~ ~Corrigido o erro em que o jogo trava quando o script tenta salvar o jog enquanto
#~ mostra uma mensagem
#~ V 1.3
#~ ~Atualização de tempo entre o salvamento
#~ . Antes era x*4 e agora é X*5 (você pode configurar X abaixo)
#~ ~O scritp não sava o jogo se o salvamento for desligado.
#~ ~Uma atualização pequena no switch de controle
#~ . Se o switch de controle for 0 não serpa preciso o switch.
#===============================================================
#
# rpgmakervx.1fr1.net
#
#===============================================================
# ~ Customisation
# ~ Personnalisation
module Moon
module AutoSave
# Permet d'enregistrer l'emplacement choisi, qui sera utilisé par le script
# Pour rendre l'auto-sauvetage la partie.
ASR = 4
# Cet ensemble c'est le nom du fichier sauvegardé.
ASN = "Autosave.rvdata"
# Cela affichera le menu de chargement, généralement dans "#numéro de dossier"
# Mais le script va afficher le nom que vous inscrivez ici
ASN2 = "Autosauvegarde"
# Si AMSG_ON est définie sur "true" ça va afficher un message dans chaque
# Autosauvegarde
AMSG_ON = true
# Reglez le message si dessous comme vous le voulez :
AMSG = "Auto-Sauvegarde terminée"
# Combien sur combien de temps le jeu va être sauvegardé ?
# Un point est équivalent à 5 secondes
# Si vous entrez 10, le jeu sera sauvegardé automatiquement toutes les 50 secondes.
SPS = 1
# C'est le Changement de contrôle.
# Ceci est un nombre d'un interrupteur. Elle se contrôle automatiquement. Si l'
# interrupteur OFF configuré dans le script fera que le jeu ne sera pas autosauvegardé
# Si la IFSW est réglé sur 0 => pas besoin de changement de contrôle.
IFSW = 1
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 * 300
@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
file = File.open(@savefile_windows[@index].filename, "wb")
else
file = Moon::AutoSave::ASN
end
write_save_data(file)
file.close
return_scene
end
def create_savefile_windows
@savefile_windows = []
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
end
@item_max = 4
end
end
Infos supp' :
A mettre au dessus de Main.
Re: Autosauvegarde
Sam 12 Juil 2008 - 16:24
Pourrais-tu expliquer ce que fait ce script, car je ne vois pas, excuse moi, précisément ce que fait ce script, pour moi, autosauvegarde, signifie que le jeu est automatiquement sauvegardé sans avoir besoin de le faire avec le menu.
Re: Autosauvegarde
Sam 12 Juil 2008 - 17:07
Regarde les indications sont en français dans le script.
Ce script permet au jeu de sauvegarder automatiquement et périodiquement sur le 4ème bloc de sauvegarde sans passer par le menu.
Ce script permet au jeu de sauvegarder automatiquement et périodiquement sur le 4ème bloc de sauvegarde sans passer par le menu.
_________________
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum