1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
| # -----------------------------------------------------------------------------
# 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.
# ~ 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 |