Jump to content
Rpg²S Forum

*Save System


ProGM
 Share

Recommended Posts

Save System

Descrizione

è una modifica che permette di cancellare i salvataggi direttamente dal menu "carica gioco" e permette di impostare un autosave (cioè il gioco viene salvato automaticamente sull'ultimo slot usato ogni TOT tempo e compare un icona in basso a destra che lo segnala ^^)

 

Autore

ProGM

Allegati

:P

 

Istruzioni per l'uso
 

 Incollate lo script in una nuova classe, poi copiate l'immagine presente nella cartella Picture della demo in quella del vostro progetto. Per attivare l'auto-save da evento scrivete in un "chiama script":

 

 

#Save System
#by ProGM
class Scene_File
	def initialize(help_text)
		@help_text = help_text
	end
	def main
		# Make help window
		@help_window = Window_Help.new
		@help_window.set_text(@help_text)
		# Make save file window
		@savefile_windows = []
		for i in 0..3
			@savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
		end
		# Select last file to be operated
		@file_index = $game_temp.last_file_index
		@savefile_windows[@file_index].selected = true
		if self.is_a?(Scene_Load)
			@menu_sotto = Window_Command.new(160, ["A = Cancella File"])
			@menu_sotto.x = 450
			@menu_sotto.y = 0
			@menu_sotto.active = false
		end
		@conferma = Window_Command.new(160, ["Cancella", "Annulla"])
		@conferma.active = false
		@conferma.visible = false
		@conferma.opacity = 255
		@conferma.x = 300
		@conferma.y = 220
		@conferma.z = 9999
		# Execute transition
		Graphics.transition
		# Main loop
		loop do
			# Update game screen
			Graphics.update
			# Update input information
			Input.update
			# Frame update
			update
			# Abort loop if screen is changed
			if $scene != self
				break
			end
		end
		# Prepare for transition
		Graphics.freeze
		# Dispose of windows
		@conferma.dispose
		if self.is_a?(Scene_Load)
			@menu_sotto.dispose
		end
		@help_window.dispose
		for i in @savefile_windows
			i.dispose
		end
	end
	def update
		if Input.trigger?(Input::X)
			@confirm = true
		end
		if @confirm != true
			# Update windows
			@help_window.update
			for i in @savefile_windows
				i.update
			end
			# If C button was pressed
			if Input.trigger?(Input::C)
				# Call method: on_decision (defined by the subclasses)
				on_decision(make_filename(@file_index))
				$game_temp.last_file_index = @file_index
				return
			end
			# If B button was pressed
			if Input.trigger?(Input::B)
				# Call method: on_cancel (defined by the subclasses)
				on_cancel
				return
			end
			# If the down directional button was pressed
			if Input.repeat?(Input::DOWN)
				# If the down directional button pressed down is not a repeat,
				# or cursor position is more in front than 3
				if Input.trigger?(Input::DOWN) or @file_index < 3
					# Play cursor SE
					$game_system.se_play($data_system.cursor_se)
					# Move cursor down
					@savefile_windows[@file_index].selected = false
					@file_index = (@file_index + 1) % 4
					@savefile_windows[@file_index].selected = true
					return
				end
			end
			# If the up directional button was pressed
			if Input.repeat?(Input::UP)
				# If the up directional button pressed down is not a repeat、
				# or cursor position is more in back than 0
				if Input.trigger?(Input::UP) or @file_index > 0
					# Play cursor SE
					$game_system.se_play($data_system.cursor_se)
					# Move cursor up
					@savefile_windows[@file_index].selected = false
					@file_index = (@file_index + 3) % 4
					@savefile_windows[@file_index].selected = true
					return
				end
			end
		else
			if self.is_a?(Scene_Load)
				@conferma.update
				@conferma.active = true
				@conferma.visible = true
				if Input.trigger?(Input::C)
					if @conferma.index == 0
						if FileTest.exist?(make_filename(@file_index))
							File.delete(make_filename(@file_index))
						else
							$game_system.se_play($data_system.buzzer_se)
						end
					end
					@conferma.active = false
					@conferma.visible = false
					@confirm = nil
					$scene = Scene_Load.new
				end
			else
				@conferma.active = false
				@conferma.visible = false
				@confirm = nil
			end
		end
	end
	def make_filename(file_index)
		$game_temp.save_file = "Save#{file_index + 1}.rxdata"
		return "Save#{file_index + 1}.rxdata"
	end
end

class Game_Temp
	attr_accessor :save_file
	attr_accessor :auto_save
	alias old_initialize initialize
	def initialize
		@save_file = "Save1.rxdata"
		@auto_save = false
		old_initialize
	end
end
class Scene_Map
	def initialize
		@waiting = 0
	end
	alias old_update update
	def update
		if $game_temp.auto_save
			@waiting += 1
			if @waiting == 60
				@save_img.dispose unless @save_img == nil or @save_img.disposed?
			elsif @waiting >= 300
				auto_save
				@waiting = 0
				@save_img = Sprite.new
				@save_img.bitmap = RPG::Cache.picture("Saved.png")
				@save_img.x, @save_img.y = 608, 448
			end
		end
		old_update
	end
	def auto_save
		filename = $game_temp.save_file
		file = File.open(filename, "wb")
		write_save_data(file)
		file.close
	end
	def write_save_data(file)
		characters = []
		for i in 0...$game_party.actors.size
			actor = $game_party.actors[i]
			characters.push([actor.character_name, actor.character_hue])
		end
		Marshal.dump(characters, file)
		Marshal.dump(Graphics.frame_count, file)
		$game_system.save_count += 1
		$game_system.magic_number = $data_system.magic_number
		Marshal.dump($game_system, file)
		Marshal.dump($game_switches, file)
		Marshal.dump($game_variables, file)
		Marshal.dump($game_self_switches, file)
		Marshal.dump($game_screen, 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

 

 

Edited by Flame

Progetti:

 http://i.imgur.com/jmLkIqi.png

http://i54.tinypic.com/2rh4ojq.png

https://github.com/ProGM

 

Crea anche tu il tuo gioco per Game Boy!
http://rpg2s.net/gif/SCContest3Oct.gifhttp://www.rpg2s.net/img/fablecontest1st.pnghttp://i43.tinypic.com/1zokd2s.png


http://i.imgur.com/BEu6G.gif

http://i.imgur.com/H1ARhq7.gif

http://i.imgur.com/Af6ijZN.gif

AOT: Associazione Odiamo la Telecom:

http://i.imgur.com/aYJs89E.png

"4 gattini... 4 stelline... E le 4 paperelle non ci stavano :3"

Flame


http://i30.tinypic.com/i27ypj.png

Link to comment
Share on other sites

mmm

ho messo megaupload perchè era già uppata lì da un po' ^^

provvedo subito :P

 

EDIT: ma povca... è offline per manutenzione ._.

 

EDIT2: ho uppato sul mio dominio ._.

Progetti:

 http://i.imgur.com/jmLkIqi.png

http://i54.tinypic.com/2rh4ojq.png

https://github.com/ProGM

 

Crea anche tu il tuo gioco per Game Boy!
http://rpg2s.net/gif/SCContest3Oct.gifhttp://www.rpg2s.net/img/fablecontest1st.pnghttp://i43.tinypic.com/1zokd2s.png


http://i.imgur.com/BEu6G.gif

http://i.imgur.com/H1ARhq7.gif

http://i.imgur.com/Af6ijZN.gif

AOT: Associazione Odiamo la Telecom:

http://i.imgur.com/aYJs89E.png

"4 gattini... 4 stelline... E le 4 paperelle non ci stavano :3"

Flame


http://i30.tinypic.com/i27ypj.png

Link to comment
Share on other sites

  • 3 years later...
  • 3 months later...

Basta mettere nella cartella pictures un file grafico di piccole dimensioni e chiamarlo Saved.png

Dovrebbe andare così. E' l'icona che indica l'avvenuto salvataggio automatico.

^ ^

 

EDIT: ops non mi ero accorto che non era solo la demo, ma l'icona intera...beh se hai problemi a farlo funzionare esponili, non dovrebbe essere complicato, l'unico file che dovrebbe mancare è quell'icona che ti ho detto sopra.

^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...