Jump to content
Rpg²S Forum

*Save System Modificato


friday666
 Share

Recommended Posts

New Save System

Descrizione


Guardate lo screen...


Autore


by squall // squall@loeher.zzn.com - Tradotto da Reol 90



Allegati


SCREEEEEEEEEEEEEEEN


Istruzioni per l'uso


Andate in Scene_Title e cercate questo

for i in 0..3
if FileTest.exist?("Save#{i+1}.rxdata")
@continue_enabled = true
end
end

 


AGGIORNAMENTO

Per far si che lo script funzioni dovrete creare un nuova cartella e chiamarla Saves... altrimenti il save fallirà!

E' cambiatelo con questo

for i in 0..99
if FileTest.exist?("Saves/Save#{i+1}.rxdata")
@continue_enabled = true
end
end

 


poi lo script sopra main!


Bugs e Conflitti Noti


Mi sa che per questo script serva un versione più aggiornata di RMXP e forse non vi fungerà

 

#==============================================================================
# ■ ASM - advanced save menu
#------------------------------------------------------------------------------
# by squall // squall@loeher.zzn.com - Tradotto da Reol 90
# monday the 28th of november 2005
#
# Allows to have up to 99 files.
# Files are stored inside of the folder 'Saves' inside of the game's folder.
# Don't forget to create that folder if it doesn't already exist.
#
# Istruzioni in ita:
# Questo script permette di salvare fino a 99 slots.
# I file salvati si trovano nella cartella 'Saves' che dovrete creare
# all'interno della cartella principale del gioco.
# Non dimenticare di creare la cartella Saves, altrimenti il salvataggio fallirà.
#==============================================================================

#==============================================================================
# ■ Window_File
#------------------------------------------------------------------------------
#  Questa finestra mostra la lista degli slot salvati.
#==============================================================================

class Window_File < Window_Selectable
	#--------------------------------------------------------------------------
	# ● inizializza
	#--------------------------------------------------------------------------
	def initialize()
		super(0, 64, 320, 416)
		self.contents = Bitmap.new(width - 32, 99 * 32)
		index = $game_temp.last_file_index == nil ? 0 : $game_temp.last_file_index
		self.index = index
		@item_max = 99
		refresh
	end
	#--------------------------------------------------------------------------
	# ● aggiorna la finestra
	#--------------------------------------------------------------------------
	def refresh
		time_stamp = Time.at(0)
		for i in 0...99
			filename = "Saves/Save#{i + 1}.rxdata"
			self.contents.draw_text(1, i * 32, 32, 32, (i + 1).to_s, 1)
			if FileTest.exist?(filename)
				size = File.size(filename)
				if size.between?(1000, 999999)
					size /= 1000
					size_str = "#{size} Ko"
				elsif size > 999999
					size /= 1000000
					size_str = "#{size} Mo"
				else
					size_str = size.to_s
				end
				time_stamp = File.open(filename, "r").mtime
				date = time_stamp.strftime("%m/%Y")
				time = time_stamp.strftime("%H:%M")
				self.contents.draw_text(38, i * 32, 120, 32, date)
				self.contents.draw_text(160, i * 32, 100, 32, time)
				self.contents.draw_text(0, i * 32, 284, 32, size_str, 2)
			end
		end
	end
end

#==============================================================================
# ■ Window_FileStatus
#------------------------------------------------------------------------------
#  Questa finestra mostra lo stato degli attuali slot salvati selezionati.
#==============================================================================

class Window_FileStatus < Window_Base
	#--------------------------------------------------------------------------
	# ● inizializza
	#--------------------------------------------------------------------------
	def initialize(save_window)
		super(320, 64, 320, 416)
		self.contents = Bitmap.new(width - 32, height - 32)
		@save_window = save_window
		@index = @save_window.index
		rect = Rect.new(x + 16, y + (height - 32) / 2 + 16, width - 32, (height - 32) / 2)
		@viewport = Viewport.new(rect)
		@viewport.z = z + 10
		refresh
	end
	#--------------------------------------------------------------------------
	# ● dispone la mappa nella finestra
	#--------------------------------------------------------------------------
	def dispose
		tilemap_dispose
		@viewport.dispose
		super
	end
	#--------------------------------------------------------------------------
	# ● aggiorna
	#--------------------------------------------------------------------------
	def refresh
		self.contents.clear
		tilemap_dispose
		filename = "Saves/Save#{@index + 1}.rxdata"
		return unless FileTest.exist?(filename)
		file = File.open(filename, "r")
		Marshal.load(file)
		frame_count = Marshal.load(file)
		for i in 0...6
			Marshal.load(file)
		end
		party = Marshal.load(file)
		Marshal.load(file)
		map = Marshal.load(file)
		for i in 0...party.actors.size
			actor = party.actors[i]
			x = i % 2 * 144 + 4
			y = i / 2 * 64
			draw_actor_name(actor, x + 40, y)
			draw_actor_level(actor, x + 40, y + 32)
			draw_actor_graphic(actor, x + 10, y + 50)
		end
		total_sec = frame_count / Graphics.frame_rate
		hour = total_sec / 60 / 60
		min = total_sec / 60 % 60
		sec = total_sec % 60
		text = sprintf("%02d:%02d:%02d", hour, min, sec)
		map_name = load_data("Data/MapInfos.rxdata")[map.map_id].name
		self.contents.font.color = system_color
		self.contents.draw_text(4, 128, 120, 32, "Tempo di gioco ")
		self.contents.draw_text(4, 160, 120, 32, "Ti trovi in ")
		self.contents.draw_text(128, 128, 16, 32, ":")
		self.contents.draw_text(128, 160, 16, 32, ":")
		self.contents.font.color = normal_color
		self.contents.draw_text(144, 128, 120, 32, text)
		self.contents.draw_text(144, 160, 120, 32, map_name)
		
		@tilemap = Tilemap.new(@viewport)
		@tilemap.tileset = RPG::Cache.tileset(map.tileset_name)
		for i in 0..6
			autotile_name = map.autotile_names[i]
			@tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
		end
		@tilemap.map_data = map.data
		@tilemap.ox = map.display_x / 4 + 176
		@tilemap.oy = map.display_y / 4 + 148
	end
	#--------------------------------------------------------------------------
	# ● tilemap_dispose
	#--------------------------------------------------------------------------
	def tilemap_dispose
		unless @tilemap == nil
			@tilemap.tileset.dispose
			for i in 0..6
				@tilemap.autotiles[i].dispose
			end
			@tilemap.dispose
			@tilemap = nil
		end
	end
	#--------------------------------------------------------------------------
	# ● aggiorna
	#--------------------------------------------------------------------------
	def update
		@tilemap.update if @tilemap != nil
		if @index != @save_window.index
			@index = @save_window.index
			refresh
		end
		super
	end
end

#==============================================================================
# ■ Scene_File
#------------------------------------------------------------------------------
#  Scena di base per caricare e salvare.
#==============================================================================

class Scene_File
	#--------------------------------------------------------------------------
	# ● inizializza la scena
	#--------------------------------------------------------------------------
	def initialize(help_text)
		@help_text = help_text
	end
	#--------------------------------------------------------------------------
	# ● main
	#--------------------------------------------------------------------------
	def main
		@help_window = Window_Help.new
		@help_window.set_text(@help_text)
		@file_window = Window_File.new
		@status_window = Window_FileStatus.new(@file_window)
		Graphics.transition
		loop do
			Graphics.update
			Input.update
			update
			if $scene != self
				break
			end
		end
		Graphics.freeze
		@help_window.dispose
		@file_window.dispose
		@status_window.dispose
	end
	#--------------------------------------------------------------------------
	# ● aggiorna
	#--------------------------------------------------------------------------
	def update
		@help_window.update
		@file_window.update
		@status_window.update
		if Input.trigger?(Input::C)
			decision
			$game_temp.last_file_index = @file_index
			return
		end
		if Input.trigger?(Input::B)
			cancel
			return
		end
	end
	#--------------------------------------------------------------------------
	# ● Ritorna al nome dello slot selezionato
	#--------------------------------------------------------------------------
	def filename
		return "Saves/Save#{@file_window.index + 1}.rxdata"
	end
end

#==============================================================================
# ■ Scene_Save
#------------------------------------------------------------------------------
#  Save menu
#==============================================================================

class Scene_Save < Scene_File
	#--------------------------------------------------------------------------
	# ● Inizializza il Menu di Salvataggio
	#--------------------------------------------------------------------------
	def initialize
		super("Seleziona lo slot nel quale vuoi salvare.")
	end
	#--------------------------------------------------------------------------
	# ● Tasto premuto decisivo
	#--------------------------------------------------------------------------
	def decision
		$game_system.se_play($data_system.save_se)
		file = File.open(filename, "wb")
		write_save_data(file)
		file.close
		if $game_temp.save_calling
			$game_temp.save_calling = false
			$scene = Scene_Map.new
			return
		end
		$scene = Scene_Menu.new(4)
	end
	#--------------------------------------------------------------------------
	# ● cancella tasto premuto
	#--------------------------------------------------------------------------
	def cancel
		$game_system.se_play($data_system.cancel_se)
		if $game_temp.save_calling
			$game_temp.save_calling = false
			$scene = Scene_Map.new
			return
		end
		$scene = Scene_Menu.new(4)
	end
	#--------------------------------------------------------------------------
	# ● salva i dati attuali nello slot selezionato
	#--------------------------------------------------------------------------
	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

#==============================================================================
# ■ Scene_Load
#------------------------------------------------------------------------------
#  Carica il Menu
#==============================================================================

class Scene_Load < Scene_File
	#--------------------------------------------------------------------------
	# ● Inizializza il Menu
	#--------------------------------------------------------------------------
	def initialize
		$game_temp = Game_Temp.new
		$game_temp.last_file_index = 0
		latest_time = Time.at(0)
		for i in 0..99
			filename = "Saves/Save#{i + 1}.rxdata"
			if FileTest.exist?(filename)
				file = File.open(filename, "r")
				if file.mtime > latest_time
					latest_time = file.mtime
					$game_temp.last_file_index = i
				end
				file.close
			end
		end
		super("Select a file to load.")
	end
	#--------------------------------------------------------------------------
	# ● Tasto premuto decisivo
	#--------------------------------------------------------------------------
	def decision
		unless FileTest.exist?(filename)
			$game_system.se_play($data_system.buzzer_se)
			return
		end
		$game_system.se_play($data_system.load_se)
		file = File.open(filename, "rb")
		read_save_data(file)
		file.close
		$game_system.bgm_play($game_system.playing_bgm)
		$game_system.bgs_play($game_system.playing_bgs)
		$game_map.update
		$scene = Scene_Map.new
	end
	#--------------------------------------------------------------------------
	# ● cancella tasto premuto
	#--------------------------------------------------------------------------
	def cancel
		$game_system.se_play($data_system.cancel_se)
		$scene = Scene_Title.new
	end
	#--------------------------------------------------------------------------
	# ● Carica lo slot selezionato
	#--------------------------------------------------------------------------
	def read_save_data(file)
		characters = Marshal.load(file)
		Graphics.frame_count = Marshal.load(file)
		$game_system = Marshal.load(file)
		$game_switches = Marshal.load(file)
		$game_variables = Marshal.load(file)
		$game_self_switches = Marshal.load(file)
		$game_screen = Marshal.load(file)
		$game_actors = Marshal.load(file)
		$game_party = Marshal.load(file)
		$game_troop = Marshal.load(file)
		$game_map = Marshal.load(file)
		$game_player = Marshal.load(file)
		if $game_system.magic_number != $data_system.magic_number
			$game_map.setup($game_map.map_id)
			$game_player.center($game_player.x, $game_player.y)
		end
		$game_party.refresh
	end
end

 

 

(\__/)

(='.'=)

(")_(")

Questo è Bunny. Ho deciso di aiutarlo nella sua missione di conquista del mondo.

Compagni di Bunny unitevi a me!

 

http://img170.imageshack.us/img170/1858/pizzelartzzennm9.png

I chara da me postati: CLICCA QUI! PER XP - CLICCA QUI! PER XP(2) - CLICCA QUI! PER VX - CLICCA QUI! PER 2K/2K3!

I tileset da me postati:CLICCA QUI! PER XP

I Personaggi Completi da me postati: CLICCA QUI! PER XP

I Face da me postati: CLICCA QUI! PER XP

I Battlers da me postati: CLICCA QUI! PER XP!

Le Windowskin da me postate: CLICCA QUI! PER XP!

Risorse sonore da me postate: CLICCA QUI! PER SCARICARLE!

Guida al Ruby: CLICCA QUI! PER SCARICARLA!

Vi prego di inserirmi nei crediti...Grazie!

Link to comment
Share on other sites

Figus ^__^

Mo lo aggiungo... mmm mi sa che abbisogno di Sylaer per integrarlo con gli altri script però ^^;;;

"Giochiamo a: schiettezza o grande impresa eroica!"

Personaggio PBF: Lyriel
PN: 12/20
PV: 2/2
PA: 4 (5 col mantello d'acero)
Equipaggiamento:

Spada comune
Pugnale comune
Arco elfico (magico, ignifugo. Permette di colpire da lunghe distanze. Se distrutto si auto-restaura a fine battaglia. Le frecce scoccate con questo arco ottengono l'effetto dell'incantesimo Folata di vento permettendo di spazzare via piccoli oggetti e creature.)
Faretra con 20 frecce
Cappuccio
Armatura delle ombre borchiata (punti armatura 4, ignifuga, di notte +1 a furtività)
2 anelli di valore
Borsa comune (10 slot)

  • Corda
  • Penna e calamaio
  • Libro vuoto
  • Forma di formaggio
  • Mappa
  • Cannocchiale
  • Tagliola di ferro
  • Campanellino di Maia
  • Mantello d'Acero (+1PA): un mantello pesante di colore rossiccio che presenta dei motivi fiochi, dello stesso colore, a forma di foglie d'acero. E' dotato di un ampio cappuccio e può coprire completamente chi lo indossa. Se si resta fermi in un'area boschiva o tra un gruppo di alberi il mantello è in grado di celare completamente la presenza del possessore dando un grado di furtività pari a gr.5. Nel caso di bestie ed animali dalla visuale meno acuta, se il giocatore è già stato notato od ha notificato in qualche modo la sua presenza può gettarsi a terra tra un gruppo di foglie o tra i cespugli per scomparire completamente dalla visuale di tali nemici.

181 monete d'oro
Cintura porta coltelli (6 slot)

  • Coltello da lancio intarsiato
  • Coltello da lancio in metallo
  • Coltello da lancio in metallo

Campanellino di Maia




Se Lyriel, e solo lui, suona tre volte il campanellino può richiamare una creatura magica che combatterà al suo fianco al prezzo di 3 PN.
L'animale ha l'aspetto di un leopardo delle nevi, i suoi occhi sono viola e così gli artigli, i denti e la punta della coda. Questa è lunga e larga, molto folta e corposa. Il manto a differenza dei leopardi è tutto bianco, inoltre ha una folta criniera circolare intorno al collo a mo' di sciarpa e che si unisce con la sommità della fronte creando un cresta non molto alta pettinata all'indietro.
La creatura combatte indipendentemente dal possessore (il giocatore potrà descriverne il comportamento in battaglia e fuori, ma il master potrà riservarsi il diritto di far compiere alla creatura delle azioni per conto proprio).
La creatura non deve per forza stare vicino all'utilizzatore, ma può essere mandata lontano e tornare da lui su comando.
Lyriel e l'animale hanno un contatto mentale e possono comunicare anche a distanza.
Non vi è limite alla permanenza della creatura una volta evocata, però se i suoi PV raggiungono lo zero dovrà essere risvegliata magicamente da un mago od un curatore esperto. Lyriel può richiamare all'interno del campanellino la creatura quando essa non è impegnata in combattimento od in altre prove senza sforzi, ma dovrà spendere di nuovo 3 PN per richiamarla. Può continuare a combattere se Lyriel viene sconfitto.
L'animale vede bene anche di notte e se c'è nebbia.
Caratteristiche della creatura:
PV 2
PA 2
Atletica Gr.4
Furtività Gr.1
Attacco (tipo descritto dal giocatore nei limiti fisici di artigli e morso) di massimo Gr.5 può dichiarare DIRETTO su armature di cuoio o cuoio borchiato e MAGICO con tutti gli attacchi. Può dichiarare SONNO se artigli e denti viola entrano in contatto diretto con il sangue l'avversario. DIRETTO e SONNO sono due effetti, quindi come da regolamento solo uno può essere scelto. MAGICO può esser combinato con entrambi.
Malus: il campanellino deve tintinnare, quindi Lyriel suonandolo tradirà la sua presenza.
Il campanellino tutte le volte che viene suonato fa venire in mente Maia a Lyriel, quindi il giocatore dovrà scrivere una frase di almeno 3 parole per ricordare la bambina, ogni volta diversa, altrimenti l'evocazione non avrà esito.

 


Personaggio PBF: Wren
PN: 20/20
PV:2/2
PA:0


Borsa Comune

  • 3 filoni di pane
  • 4 mele
  • prosciutto
  • formaggio
  • coltello da cucina

 

Link to comment
Share on other sites

what is sylaer????

(\__/)

(='.'=)

(")_(")

Questo è Bunny. Ho deciso di aiutarlo nella sua missione di conquista del mondo.

Compagni di Bunny unitevi a me!

 

http://img170.imageshack.us/img170/1858/pizzelartzzennm9.png

I chara da me postati: CLICCA QUI! PER XP - CLICCA QUI! PER XP(2) - CLICCA QUI! PER VX - CLICCA QUI! PER 2K/2K3!

I tileset da me postati:CLICCA QUI! PER XP

I Personaggi Completi da me postati: CLICCA QUI! PER XP

I Face da me postati: CLICCA QUI! PER XP

I Battlers da me postati: CLICCA QUI! PER XP!

Le Windowskin da me postate: CLICCA QUI! PER XP!

Risorse sonore da me postate: CLICCA QUI! PER SCARICARLE!

Guida al Ruby: CLICCA QUI! PER SCARICARLA!

Vi prego di inserirmi nei crediti...Grazie!

Link to comment
Share on other sites

Magari WHO is Sylaer, è uno degli scripter migliori di Rpg2s (che tra l'altro ha fatto/modificato quasi tutti gli script del mio gioco), e ha anche una bottega.

 

Volete due giochi Completi e Seri fatti con RPG MAKER? Cliccate su...

www.raldon.altervista.org

 

Problemi con Raldon? Segnalali su...

www.raldon.forumfree.net

 

Partecipante al Rpg2s.net Game Contest 2008/2009

http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpg

Gioco in Sviluppo: Raldon

 

 

Posizioni raggiunte nei Contest

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest3Oct.gifhttp://img76.imageshack.us/img76/1260/destroy3gr3.pnghttp://img233.imageshack.us/img233/7186/comics2hd8.gifhttp://www.rpg2s.net/gif/GC_bestoftool3.gif

http://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio3.gifhttp://www.rpg2s.net/gif/GC_premio1.gifhttp://www.rpg2s.net/gif/GC_premio2.gifhttp://www.rpg2s.net/gif/GC_grafica3.gifhttp://www.rpg2s.net/gif/GC_programmazione3.gifhttp://www.rpg2s.net/gif/GC_programmazione1.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo3K.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2XP.gifhttp://www.rpg2s.net/awards/furordipopolo/Popolo2BEST.gif

http://www.rpg2s.net/awards/bestuser2.jpghttp://www.rpg2s.net/awards/bestmaker2.jpghttp://www.rpg2s.net/awards/mostpresent1.jpghttp://www.rpg2s.net/awards/mostproductive1.jpg

Link to comment
Share on other sites

ah ok...non avevo capito...mi fustigherò a vita per sta figura di merda!

(\__/)

(='.'=)

(")_(")

Questo è Bunny. Ho deciso di aiutarlo nella sua missione di conquista del mondo.

Compagni di Bunny unitevi a me!

 

http://img170.imageshack.us/img170/1858/pizzelartzzennm9.png

I chara da me postati: CLICCA QUI! PER XP - CLICCA QUI! PER XP(2) - CLICCA QUI! PER VX - CLICCA QUI! PER 2K/2K3!

I tileset da me postati:CLICCA QUI! PER XP

I Personaggi Completi da me postati: CLICCA QUI! PER XP

I Face da me postati: CLICCA QUI! PER XP

I Battlers da me postati: CLICCA QUI! PER XP!

Le Windowskin da me postate: CLICCA QUI! PER XP!

Risorse sonore da me postate: CLICCA QUI! PER SCARICARLE!

Guida al Ruby: CLICCA QUI! PER SCARICARLA!

Vi prego di inserirmi nei crediti...Grazie!

Link to comment
Share on other sites

what is sylaer????
Bene, qua mi confondono con un oggetto.
ah ok...non avevo capito...mi fustigherò a vita per sta figura di merda!

Gia fai bene.

Per curiosità Sylaer è nato dal nome Sylar che è il nome del antagonista nella serie del telefilm Heroes.

http://www.rpg2s.net/awards/bestscripter1.jpg

Se avete bisogno di modifiche, correzioni o creazioni da zero di script RGSS, allora visitate la mia bottega.

La bottega di Sylaer

Link to comment
Share on other sites

ti chiedo perdono...mi inchino hai tuoi piedi e ti chiedo pietà!!!

(\__/)

(='.'=)

(")_(")

Questo è Bunny. Ho deciso di aiutarlo nella sua missione di conquista del mondo.

Compagni di Bunny unitevi a me!

 

http://img170.imageshack.us/img170/1858/pizzelartzzennm9.png

I chara da me postati: CLICCA QUI! PER XP - CLICCA QUI! PER XP(2) - CLICCA QUI! PER VX - CLICCA QUI! PER 2K/2K3!

I tileset da me postati:CLICCA QUI! PER XP

I Personaggi Completi da me postati: CLICCA QUI! PER XP

I Face da me postati: CLICCA QUI! PER XP

I Battlers da me postati: CLICCA QUI! PER XP!

Le Windowskin da me postate: CLICCA QUI! PER XP!

Risorse sonore da me postate: CLICCA QUI! PER SCARICARLE!

Guida al Ruby: CLICCA QUI! PER SCARICARLA!

Vi prego di inserirmi nei crediti...Grazie!

Link to comment
Share on other sites

se nn ti piace non è un problema mio!!!

skerxo XD

cosa è che non ti piace?

(\__/)

(='.'=)

(")_(")

Questo è Bunny. Ho deciso di aiutarlo nella sua missione di conquista del mondo.

Compagni di Bunny unitevi a me!

 

http://img170.imageshack.us/img170/1858/pizzelartzzennm9.png

I chara da me postati: CLICCA QUI! PER XP - CLICCA QUI! PER XP(2) - CLICCA QUI! PER VX - CLICCA QUI! PER 2K/2K3!

I tileset da me postati:CLICCA QUI! PER XP

I Personaggi Completi da me postati: CLICCA QUI! PER XP

I Face da me postati: CLICCA QUI! PER XP

I Battlers da me postati: CLICCA QUI! PER XP!

Le Windowskin da me postate: CLICCA QUI! PER XP!

Risorse sonore da me postate: CLICCA QUI! PER SCARICARLE!

Guida al Ruby: CLICCA QUI! PER SCARICARLA!

Vi prego di inserirmi nei crediti...Grazie!

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...