Salvare dati di personaggi differenti.
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Salvare dati di personaggi differenti.
Avevo in mente di creare un semplice gioco, in cui il giocatore possa "scegliere" il tipo di drago (fuoco, ghiaccio...) e procedendo nel gioco le nuove abilità. Ho già tutta la grafica che mi serve, ma prima di procedere, vorrei sapere se è possibile fare quanto segue:
I dati del pg sono creati da variabili: global_1class, global_1mxhp, global_1ability1, global_1ability2
global_1class definisce la classe.
global_1ability1, global_1ability2, vi sono assegnati dei numeri, che rappresentano l'abilità "n", la quale a sua volta varia a seconda dei global_1class.
Oltre a poter salvare il gioco, vorrei che il giocatore potesse cliccare su "salva il tuo drago" e creare così due file di testo (txt) o qualsiasi altro tipo in cui vengano riportate le seguenti righe:
IL PRIMO FILE
global_1class = global_1class
global_1mxhp = global_1mxhp
global_1ability1 = global_1ability1
global_1ability2 = global_1ability2
ES:
global_1class = 1
global_1mxhp = 500
global_1ability1 = 3
global_1ability2 = 5
IL SECONDO FILE
global_2class = global_1class
global_2mxhp = global_1mxhp
global_2ability1 = global_1ability1
global_2ability2 = global_1ability2
ES:
global_2class = 1
global_2mxhp = 500
global_2ability1 = 3
global_2ability2 = 5
In pratica scrivere il nome della variabile sia con 1 in un file e con 2 nell'altro. Così, copiando e sostituendo il secondo file nella directory del gioco di un altro computer che abbia gli stessi due files del proprio drago, facendo partire il gioco si possa fare quanto segue:
Multiplayer > main dragon: carica il drago 1, ovvero il file chiamato 1 dove ci sono i dati di un giocatore, e sostituisce le variabili con i dati inseriti nel testo.
secondary dragon: carica il drago 2, ovvero il file chiamato 1 dove ci sono i dati dell'altro giocatore, e sostituisce le variabili con i dati inseriti nel testo.
Poi nello stesso computer, con comandi diversi, due persone possono far combattere i loro draghi, che appariranno identici a come sono nel loro pc.
La domanda è semplice: come faccio?
I dati del pg sono creati da variabili: global_1class, global_1mxhp, global_1ability1, global_1ability2
global_1class definisce la classe.
global_1ability1, global_1ability2, vi sono assegnati dei numeri, che rappresentano l'abilità "n", la quale a sua volta varia a seconda dei global_1class.
Oltre a poter salvare il gioco, vorrei che il giocatore potesse cliccare su "salva il tuo drago" e creare così due file di testo (txt) o qualsiasi altro tipo in cui vengano riportate le seguenti righe:
IL PRIMO FILE
global_1class = global_1class
global_1mxhp = global_1mxhp
global_1ability1 = global_1ability1
global_1ability2 = global_1ability2
ES:
global_1class = 1
global_1mxhp = 500
global_1ability1 = 3
global_1ability2 = 5
IL SECONDO FILE
global_2class = global_1class
global_2mxhp = global_1mxhp
global_2ability1 = global_1ability1
global_2ability2 = global_1ability2
ES:
global_2class = 1
global_2mxhp = 500
global_2ability1 = 3
global_2ability2 = 5
In pratica scrivere il nome della variabile sia con 1 in un file e con 2 nell'altro. Così, copiando e sostituendo il secondo file nella directory del gioco di un altro computer che abbia gli stessi due files del proprio drago, facendo partire il gioco si possa fare quanto segue:
Multiplayer > main dragon: carica il drago 1, ovvero il file chiamato 1 dove ci sono i dati di un giocatore, e sostituisce le variabili con i dati inseriti nel testo.
secondary dragon: carica il drago 2, ovvero il file chiamato 1 dove ci sono i dati dell'altro giocatore, e sostituisce le variabili con i dati inseriti nel testo.
Poi nello stesso computer, con comandi diversi, due persone possono far combattere i loro draghi, che appariranno identici a come sono nel loro pc.
La domanda è semplice: come faccio?
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
-
- GMI Advanced
- Messaggi: 2093
- Iscritto il: 19/12/2010, 16:17
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Standard
- Contatta:
Re: Salvare dati di personaggi differenti.
Si puo'. Guarda sul manuale i file ini. Se hai problemi chiedi pure.
♥♥♥♥♥♥

♥♥♥♥♥♥

♥♥♥♥♥♥
Spoiler
- Vallo92
- GMI Advanced
- Messaggi: 1508
- Iscritto il: 15/07/2011, 20:26
- Specialità: Grafico
- Uso: GM:Studio 2
- Contatta:
Re: Salvare dati di personaggi differenti.
Se può esseri d'aiuto ecco la parte del manuale dedicata ai file .ini: http://ziocrocifisso.github.io/ManualeG ... 3_ini.htmlSolid Snake ha scritto:Si puo'. Guarda sul manuale i file ini. Se hai problemi chiedi pure.
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
ok grazie, vedrò cosa riesco a fare.
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
quindi mi servono:
ini_read_real(section,key,default)
ini_write_real(section,key,value)
cosa devo sostituire alle voci section, key, default e value
?
ini_read_real(section,key,default)
ini_write_real(section,key,value)
cosa devo sostituire alle voci section, key, default e value

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
- Vallo92
- GMI Advanced
- Messaggi: 1508
- Iscritto il: 15/07/2011, 20:26
- Specialità: Grafico
- Uso: GM:Studio 2
- Contatta:
Re: Salvare dati di personaggi differenti.
Dovrebbe essere abbastanza chiaro dall'esempio riportato nel manuale:Barnack ha scritto:quindi mi servono:
ini_read_real(section,key,default)
ini_write_real(section,key,value)
cosa devo sostituire alle voci section, key, default e value?
Codice: Seleziona tutto
[Form]
Top=100
Left=100
Caption=Il miglior gioco di sempre
[Game]
MaxScore=12324
Quindi:
ini_read_real(section [sezione dove andare a "leggere"],key [chiave da andare a "leggere"],default [inserisci un valore che GM va a leggere se la chiave indicata non ne ha già uno])
ini_write_real(section [sezione dove andare a "scrivere"],key [chiave da andare a "scrivere"],value [valore da andare a "scrivere").
Pero di essere stato chiaro!

-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
ok, ora è più chiaro. Credo che ci riuscirò. Comunque, per chiarire l'idea, vorrei che i personaggi funzionassero un po' come gli skylanders, spero di raggiungere questo risultato.
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
- Vallo92
- GMI Advanced
- Messaggi: 1508
- Iscritto il: 15/07/2011, 20:26
- Specialità: Grafico
- Uso: GM:Studio 2
- Contatta:
Re: Salvare dati di personaggi differenti.
Non ho mai giocato a Skylanders, ma da quello che ho capito leggendo il primo post penso che non avrai molti problemi nel creare un sistema di salvataggio del genere.
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
Prima di tutto ho creato un file ini con il testo seguente:
DragonA.ini:
[character]
atk1=0
poi ho fatto:
Left click su "salva drago1" > esegui script:
ini_open(dragonA)
ini_write_real(character,atk1,global_atk1)
ini_close()
nel gioco mi dice quanto segue:
ERROR in
action number 1
of Mouse Event for Left Button
for object savdrg1:
Error in code at line 1:
ini_open(dragonA)
^
at position 10: Unknown variable dragonA
Potreste scrivermi cosa devo mettere nello script event please? non capisco dove sbaglio...
DragonA.ini:
[character]
atk1=0
poi ho fatto:
Left click su "salva drago1" > esegui script:
ini_open(dragonA)
ini_write_real(character,atk1,global_atk1)
ini_close()
nel gioco mi dice quanto segue:
ERROR in
action number 1
of Mouse Event for Left Button
for object savdrg1:
Error in code at line 1:
ini_open(dragonA)
^
at position 10: Unknown variable dragonA
Potreste scrivermi cosa devo mettere nello script event please? non capisco dove sbaglio...
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
-
- GMI Advanced
- Messaggi: 2093
- Iscritto il: 19/12/2010, 16:17
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Standard
- Contatta:
Re: Salvare dati di personaggi differenti.
L'errore ti dice cosa c'e che non va
Variabile dragonA sconosciuta. Il nome di un file deve essere completo e soprattutto deve essere una stringa.

Codice: Seleziona tutto
ERROR in
action number 1
of Mouse Event for Left Button
for object savdrg1:
Error in code at line 1:
ini_open(dragonA)
^
at position 10: Unknown variable dragonA
Codice: Seleziona tutto
ini_open("DragonA.ini")

♥♥♥♥♥♥

♥♥♥♥♥♥

♥♥♥♥♥♥
Spoiler
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
ah, avevo provato con .ini, ma mi ero scordato le virgolette
grazie mille

grazie mille
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
ERROR in
action number 1
of Mouse Event for Left Button
for object salva:
Error in code at line 2:
ini_write_real(dragon1,name,global.dragon_name)
^
at position 17: Unknown variable dragon1
Ora che manca? Devo mettere ogni singola voce con le virgolette?
Ho creato un file ini con nome dragon1.ini, contenuto quanto segue:
[dragon1]
name=0
race=0
level=0
points=0
[stats]
hp=0
atk=0
def=0
[attacks]
1atk=0
2atk=0
Devo mettere la parentesi quadra?... manca sempre qualche pezzo...
action number 1
of Mouse Event for Left Button
for object salva:
Error in code at line 2:
ini_write_real(dragon1,name,global.dragon_name)
^
at position 17: Unknown variable dragon1
Ora che manca? Devo mettere ogni singola voce con le virgolette?
Ho creato un file ini con nome dragon1.ini, contenuto quanto segue:
[dragon1]
name=0
race=0
level=0
points=0
[stats]
hp=0
atk=0
def=0
[attacks]
1atk=0
2atk=0
Devo mettere la parentesi quadra?... manca sempre qualche pezzo...
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
-
- GMI Advanced
- Messaggi: 2093
- Iscritto il: 19/12/2010, 16:17
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Standard
- Contatta:
Re: Salvare dati di personaggi differenti.
Esattamente.Barnack ha scritto: Ora che manca? Devo mettere ogni singola voce con le virgolette?
♥♥♥♥♥♥

♥♥♥♥♥♥

♥♥♥♥♥♥
Spoiler
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
[general]
name=0
race=0
Tutte le voci vengono cambiate, anzi, le voci con una variabile.
Purtroppo però, le voci name e race non variano.
Ho provato, sia così:
ini_write_real("general","name","global.dragon1_name")
ini_write_real("general","race","global.dragon1_race")
Che così:
ini_write_real("general","name",global.dragon1_name)
ini_write_real("general","race",global.dragon1_race)
ma non funziona in alcun modo
name=0
race=0
Tutte le voci vengono cambiate, anzi, le voci con una variabile.
Purtroppo però, le voci name e race non variano.
Ho provato, sia così:
ini_write_real("general","name","global.dragon1_name")
ini_write_real("general","race","global.dragon1_race")
Che così:
ini_write_real("general","name",global.dragon1_name)
ini_write_real("general","race",global.dragon1_race)
ma non funziona in alcun modo
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Salvare dati di personaggi differenti.
Ovvio che non funziona, stai usando ini_write_real, che serve a scrivere numeri nel file ini, per questo ti ritrovi due bei 0 al posto dei valori.
Usa ini_write_string.
Vorrei però farti notare che quando si programma non ha senso andare a caso, perché non funzionerà mai. Inutile quindi provare con o senza virgolette, quello che devi fare é leggere nel manuale o altrove cose significano le virgolette e capire cosa serve nel tuo caso.
Usa ini_write_string.
Vorrei però farti notare che quando si programma non ha senso andare a caso, perché non funzionerà mai. Inutile quindi provare con o senza virgolette, quello che devi fare é leggere nel manuale o altrove cose significano le virgolette e capire cosa serve nel tuo caso.
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
ok, grazie.
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
un'ultima cosa, prima di immergermi nel profondo della creazione di questo gioco.
è possibile fare sì che il nome del file ini corrisponda ad una variabile?
con get string ho preso il nome del personaggio, che viene sostituito alla voce name nel file ini.
Ma se volessi che con il sinistro del mouse sul pulsante "salva drago" venisse creato un file ini con nome "global.dragon1_name.ini", come dovrei fare?
Ovviamente poi dovrò anche creare il pulsante di caricamento, in cui si chiede al giocatore di inserire il nome del drago da caricare, così che, scrivendone il nome (es: "gatto"), venga aperto il file gatto.ini, e poi presi i dati da quel file...
è possibile fare sì che il nome del file ini corrisponda ad una variabile?
con get string ho preso il nome del personaggio, che viene sostituito alla voce name nel file ini.
Ma se volessi che con il sinistro del mouse sul pulsante "salva drago" venisse creato un file ini con nome "global.dragon1_name.ini", come dovrei fare?
Ovviamente poi dovrò anche creare il pulsante di caricamento, in cui si chiede al giocatore di inserire il nome del drago da caricare, così che, scrivendone il nome (es: "gatto"), venga aperto il file gatto.ini, e poi presi i dati da quel file...
Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Salvare dati di personaggi differenti.
Il nome del file lo puoi indicare direttamente tu come stringa (es: ini_open("mio_file.ini") oppure può essere una stringa contenuta in una variabile:
Trovo piuttosto scomodo inoltre far inserire al giocatore il nome del file ini da aprire. Perché invece non gli fai scegliere direttamente il file? Esiste la funzione get_open_filename per questo.
Codice: Seleziona tutto
//crea un file ini chiamato Grisu.ini
global.nome_drago = "Grisu";
ini_open(global.nome_drago+".ini");
-
- Membro attivo
- Messaggi: 341
- Iscritto il: 03/09/2013, 13:26
- Specialità: Programmazione
- Uso: GM:Studio 1.4 Pro
- Contatta:
Re: Salvare dati di personaggi differenti.
Bellissimo! Grazie mille, sapevo che game maker era versatile, ma non avrei mai pensato che fosse così TANTO versatile 

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif
Spoiler
Chi c’è in linea
Visitano il forum: Nessuno e 24 ospiti