Jump to content
Rpg²S Forum

Memorizzazione permanente switch e variabili


mikb89
 Share

Recommended Posts

Permanent Switches & Variables 1.2

Descrizione

Con questo script potrete far sì che i valori di determinate switch e variabili vengano memorizzati in modo da restare tali in nuova partita e caricamento.

Utile per esempio se si vuole aggiungere un Nuovo gioco +, cambiando una switch appena finito il gioco, oppure un sistema di punteggio alto tramite variabile o magari per memorizzare delle opzioni.

 

Funzionalità

Si possono utilizzare sia singoli elementi che range multipli rapidamente.

È possibile scegliere un nominativo personalizzato per i dati.

 

Autore

mikb89

 

Istruzioni per l'uso

Creare una nuova voce sopra Main ed inserire lo script.

Nel caso di incompatibilità, provare a spostarla più in alto.

 

Script

 

# Permanent Switches & Variables v. 1.2
# VX Ace version
# by mikb89

# Dettagli:
#  Questo script permette di memorizzare determinate switch e variabili in un
#   file a parte, facendo sì che i loro valori rimangano gli stessi per ogni
#   nuova partita e caricamento.
#  Utile per esempio se si vuole aggiungere un Nuovo gioco +, cambiando una
#   switch appena finito il gioco, oppure un sistema di punteggio alto tramite
#   variabile o magari per memorizzare delle opzioni.

# Configurazioni:
module PERMASV
 PERMANENT_SWITCHES = [1...10, 20]
 PERMANENT_VARIABLES = [50..10]
  # Elencare le switch e variabili che si vogliono conservare.
  # È possibile separare i valori con virgole (1, 2, 30) oppure scegliere un
  #  range di valori multipli usando due o tre puntini:
  # 1...10 -> (3 puntini) prende tutti i valori da 1 a 9;
  # 50..100 -> (2 puntini) prende tutti i valori da 50 a 100.
  # Come mostrato sopra i tre metodi sono combinabili fra loro ^^
 FILE_NAME = "Data.rvdata2"
  # Qui il nome del file salvato con switch e variabili permanenti.
  # Mantenendo l'estensione .rvdata2, si confonderà di più con gli altri file
  #  di salvataggio.
  # Attenti a non mettere Save nel nome perché altrimenti lo considererà come
  #  un salvataggio normale e abiliterà il comando Continua dal menu anche se
  #  non sono effettivamente presenti salvataggi tradizionali.
end

#Codename: permasv

($imported ||= {})[:mikb89_permasv] = true

# License:
# - You can ask me to include support for other scripts as long as these scripts
#   use the $imported[script] = true;
# - You can modify and even repost my scripts, after having received a response
#   by me. For reposting it, anyway, you must have done heavy edit or porting,
#   you can't do a post with the script as is;
# - You can use my scripts for whatever you want, from free to open to
#   commercial games. I'd appreciate by the way if you let me know about what
#   you're doing;
# - You must credit me, if you use this script or part of it.

module DataManager
 def self.save_permasv
   File.open(PERMASV::FILE_NAME, "wb") do |file|
     Marshal.dump(make_save_permasv, file)
   end
 end
 def self.load_permasv
   begin
     File.open(PERMASV::FILE_NAME, "rb") do |file|
       extract_save_permasv(Marshal.load(file))
     end
   rescue
   end
 end
 def self.make_save_permasv
   cont = {}
   for sw in PERMASV::PERMANENT_SWITCHES
     cont["s#{sw}".to_sym] = $game_switches[sw]
   end
   for va in PERMASV::PERMANENT_VARIABLES
     cont["v#{va}".to_sym] = $game_variables[va]
   end
   return cont
 end
 def self.extract_save_permasv(cont)
   for sw in PERMASV::PERMANENT_SWITCHES
     $game_switches[sw] = (cont["s#{sw}".to_sym] rescue false)
   end
   for va in PERMASV::PERMANENT_VARIABLES
     $game_variables[va] = (cont["v#{va}".to_sym] rescue 0)
   end
 end
end

class Game_Switches
 alias_method(:getS_b4_permasv, :[]) unless method_defined?(:getS_b4_permasv)
 alias_method(:setS_b4_permasv, :[]=) unless method_defined?(:setS_b4_permasv)
 def [](switch_id)
   DataManager.load_permasv
   getS_b4_permasv(switch_id)
 end
 def []=(switch_id, value)
   setS_b4_permasv(switch_id, value)
   DataManager.save_permasv
 end
end

class Game_Variables
 alias_method(:getV_b4_permasv, :[]) unless method_defined?(:getV_b4_permasv)
 alias_method(:setV_b4_permasv, :[]=) unless method_defined?(:setV_b4_permasv)
 def [](variable_id)
   DataManager.load_permasv
   getV_b4_permasv(variable_id)
 end
 def []=(variable_id, value)
   setV_b4_permasv(variable_id, value)
   DataManager.save_permasv
 end
end

Visibile anche

 

Bugs e Conflitti Noti

N/A

 

Template compilato con Script Templater.

Script!

 

Roba scritta, guide:

 

Applicazioni:

 

Progetti!

http://img69.imageshack.us/img69/2143/userbarctaf.png http://img641.imageshack.us/img641/5227/userbartemplateb.pnghttp://i46.tinypic.com/ac6id0.png

Link to comment
Share on other sites

Ah quella che chiedevano per il nuovo gioco più! D:

Ottimo, ottimo :3

^ ^

(\_/)
(^ ^) <----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

Sì, mi sembra non ci sia uno script del genere, eppure dei valori che rimangono invariati da partita a partita possono servire a un sacco di cose :D

 

Grazie Guardian :3

 

Spero se ne possa fare un buon uso ^^

O vabè, mi accontenterei anche di un uso, pure senza il buon xD

Però se c'è è meglio sisi

Script!

 

Roba scritta, guide:

 

Applicazioni:

 

Progetti!

http://img69.imageshack.us/img69/2143/userbarctaf.png http://img641.imageshack.us/img641/5227/userbartemplateb.pnghttp://i46.tinypic.com/ac6id0.png

Link to comment
Share on other sites

  • 1 year later...

Ho provato ad inserire questo script nel mio progetto ed ha incrementato il lag in modo esponenziale.

Da 60 fps standard a cui ha sempre girato il gioco con questo script inserito calava a 3 fps.

Togliendo lo script tornava tutto alla normalità, probabilmente c'è da rivedere qualche riga di codice (:

Link to comment
Share on other sites

Ste, sicuro che nella mappa non ci sia una variabile o un evento impostato come permanente che tramite un processo in parallelo scrive continuamente sul disco?

"Io non volevo solo partecipare alle discussioni. Volevo avere il potere di farle fallire" [cit.]

http://holyres.altervista.org/UserBoard/BannerOverdrive35.png
http://holyres.altervista.org/UserBoard/Cap3.png

http://www.indiexpo.net/signature/578.png

Miei script per RPG Maker VX Ace:


*NB Tutti i miei script sono protetti da licenza CC - BY http://i.creativecommons.org/l/by/3.0/88x31.png

Questa licenza permette a terzi di distribuire, modificare, ottimizzare ed utilizzare la tua opera come base, anche commercialmente, fino a che ti diano il credito per la creazione originale. Questa è la più accomodante delle licenze offerte. É raccomandata per la diffusione e l'uso massimo di materiali coperti da licenza.

 

 



I miei tutorial:


Come distribuire il gioco - e anche come creare un'installazione professionale!
RGSS in pillole - Guida completa e facile all'RGSS2 e RGSS3 per novizi ed esperti
Come mappare con VX (e VX Ace) - guida base all'uso degli strumenti del mapping
Loop delle musiche - come tagliarle in modo da far venire musiche continue senza interruzioni finali
Creare backup dei progetti - per evitare di uccidervi dopo un errore che ha fatto perdere tutto!

Link to comment
Share on other sites

Allora forse non ho ben capito come utilizzarlo :/

Perchè se non imposto nessuna switch o variabile non lagga:

http://i62.tinypic.com/2d7bvns.png

se invece tra le switch imposto la numero 100, lagga.

Eppure io la switch 100 non la vado a toccare in nessun modo :/

 

Ah, anche perchè lagga in qualsiasi altra mappa, non solo in una

Edited by Ste
Link to comment
Share on other sites

Ste, prova a mettere questo codice nel gioco:

class Game_Switches
  alias_method(:set_switch, :[]=)
  def []=(switch_id, value)
    set_switch(switch_id, value)
    msgbox("Modificata switch #{switch_id}")
  end
end

è un semplice codice che ti avvisa con una messagebox ogni qualvolta una switch viene cambiata, almeno così sei sicuro di non aver dimenticato qualche evento parallelo allo sbaraglio.

Per qualsiasi motivo non aprite questo spoiler.

 

 

Ho detto di non aprirlo !

 

 

Se lo apri ancora esplode il mondo.

 

 

Aaaaaa è un vizio.

 

 

Contento? Il mondo è esploso, sono tutti morti

per colpa della tua curiosità .

 

 

Vuoi che ti venga anche il morbillo, la varicella e l'AIDS???

 

 

O bravo ora sei un malato terminale e nessuno

ti puo curare, sono tutti morti !

 

 

Se clicchi ancora una volta il PC esplode.

 

 

E dai smettila !!

 

Uff!! Hai cliccato tante volte che ho dovuto sostituirlo con un codebox.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://s8.postimg.org/yntv9nxld/Banner.png

http://img204.imageshack.us/img204/8039/sccontest3octpl3.gif

Link to comment
Share on other sites

Eh sì, appare continuamente il messaggio che la switch 100 è stata modificata.

A questo punto penso che probabilmente possa essere un conflitto di script...

 

EDIT: escludo il conflitto di script perchè ho appena provato eliminando dal progetto ogni script... e non cambia nulla. Le switch impostate per essere permanenti vengono continuamente modificate.

Edited by Ste
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...