[Botta&Risposta]Esempio inventario LITE
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
[Botta&Risposta]Esempio inventario LITE
Su richiesta ho rivisto il mio esempio di inventario (che trovate qui http://gmitalia.altervista.org/gmi_foru ... f=5&t=3088) in modo che potesse essere utulizzato anche con la versione lite di game maker. In realtà l'ho rifatto da zero, e tutta la parte "database" della versione pro é stata per ragioni di praticità rimossa e sostituita con oggetti.
Utilizzo
Tutto l'inventario é gestito tramite array, non serve però manipolarli direttamente, ci sono decine di scripts per gestire tutti gli aspetti dell'iventario. Sono tutti commentati e spiegati, quindi la prima cosa da fare sarebbe dare un'occhiata a quelli.
Creazione degli oggetti
Prima di tutto vanno creati gli oggetti. Si deve creare un oggetto per ogni elemento che si vuole (spada,roccia,scudo ecc..). Questi oggetti devono avere item_obj come parent ed essere persistenti (in modo che non vengano distrutti da una room all'altra), e almeno le seguenti variabili: max_amount (numero massimo di oggetti di questo tipo in inventario),stackable (true se sono cumulabili, false se ogni oggetti occupa uno spazio suo nell'iventario). Il resto é opzionale, nell'esempio ho inserito valore, nome e descrizione. Il create va ereditato da item_obj tramite l'uso della funzione event_inherited();
Inizializzazione e creazione dell'inventario
Una volta creati gli oggetti, si deve inizializzare il sistema chiamando inventory_init(). Va fatto una sola volta, non é più necessario chiamare questa funzione in futuro. Poi si crea uno o più inventari con inventory_create(size), dove size é il numero di spazi massimi dell'inventario. La funzione ritorna l'id dell'inventario da usare per le funzioni successive.
Inserimento di oggetti
Per inserire oggetti si chiama in seguito la funzione inventory_add(id_inv,oggetto,quantità) dove id_inv é l'id dell'inventario create con inventory_create,oggetto é un object figlio di item_obj, e quantità si spiega da solo. Se l'inventario é pieno non viene inserito niente, se la quantità é troppo alta vengono inseriti oggetti finché é pieno.
Da tenere presente
Gli array globali non possono essere cancellati in game maker. Le funzioni di cancellazione dell'inventario distruggono semplicemente le istanze, ma non svuotano gli array, di conseguenza se il gioco prevede la creazione ad oltranza di inventari, va considerato l'utilizzo della funzione inventory_reset per resettare tutti gli inventari e permettere di sovrascrivere.
Download Esempio inventario LITE
File gmres per versioni di GM8 precedenti alla 8.1 Nota: da 8.0 a 8.1 hanno cambiato i font, se usate il gmres dovete cancellare e rifare i font con lo stesso nome
Utilizzo
Tutto l'inventario é gestito tramite array, non serve però manipolarli direttamente, ci sono decine di scripts per gestire tutti gli aspetti dell'iventario. Sono tutti commentati e spiegati, quindi la prima cosa da fare sarebbe dare un'occhiata a quelli.
Creazione degli oggetti
Prima di tutto vanno creati gli oggetti. Si deve creare un oggetto per ogni elemento che si vuole (spada,roccia,scudo ecc..). Questi oggetti devono avere item_obj come parent ed essere persistenti (in modo che non vengano distrutti da una room all'altra), e almeno le seguenti variabili: max_amount (numero massimo di oggetti di questo tipo in inventario),stackable (true se sono cumulabili, false se ogni oggetti occupa uno spazio suo nell'iventario). Il resto é opzionale, nell'esempio ho inserito valore, nome e descrizione. Il create va ereditato da item_obj tramite l'uso della funzione event_inherited();
Inizializzazione e creazione dell'inventario
Una volta creati gli oggetti, si deve inizializzare il sistema chiamando inventory_init(). Va fatto una sola volta, non é più necessario chiamare questa funzione in futuro. Poi si crea uno o più inventari con inventory_create(size), dove size é il numero di spazi massimi dell'inventario. La funzione ritorna l'id dell'inventario da usare per le funzioni successive.
Inserimento di oggetti
Per inserire oggetti si chiama in seguito la funzione inventory_add(id_inv,oggetto,quantità) dove id_inv é l'id dell'inventario create con inventory_create,oggetto é un object figlio di item_obj, e quantità si spiega da solo. Se l'inventario é pieno non viene inserito niente, se la quantità é troppo alta vengono inseriti oggetti finché é pieno.
Da tenere presente
Gli array globali non possono essere cancellati in game maker. Le funzioni di cancellazione dell'inventario distruggono semplicemente le istanze, ma non svuotano gli array, di conseguenza se il gioco prevede la creazione ad oltranza di inventari, va considerato l'utilizzo della funzione inventory_reset per resettare tutti gli inventari e permettere di sovrascrivere.
Download Esempio inventario LITE
File gmres per versioni di GM8 precedenti alla 8.1 Nota: da 8.0 a 8.1 hanno cambiato i font, se usate il gmres dovete cancellare e rifare i font con lo stesso nome
- minezatos
- Membro attivo
- Messaggi: 277
- Iscritto il: 22/07/2011, 14:03
- Località: Cagliari, Sardegna, Italia
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
Siiiiiii
Grazie!
Grazie!
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
minezatos testamelo su GM lite, ho controllato le funzioni ma avendo la pro se mi é sfuggito qualcosa non riesco a vederlo. Grazie
- minezatos
- Membro attivo
- Messaggi: 277
- Iscritto il: 22/07/2011, 14:03
- Località: Cagliari, Sardegna, Italia
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
Mi dice errore, quando carica il giocoHomunculus ha scritto:minezatos testamelo su GM lite, ho controllato le funzioni ma avendo la pro se mi é sfuggito qualcosa non riesco a vederlo. Grazie
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
Mi piace la precisione del tuo messaggio.. Dimmi che errore
- minezatos
- Membro attivo
- Messaggi: 277
- Iscritto il: 22/07/2011, 14:03
- Località: Cagliari, Sardegna, Italia
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
Run time error, non parte il gioco
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
Altri che hanno sto prpblema? A me va senza problemi anche importando il gmres, ma ho pur sempre gm 8.1
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
Tho! Anche a me era venuta un idea simile, stavo rifacendo le funzioni ds_list con la lite... stavo giusto ora per provare se funzionava con il tuo esempio.
PS: La comodità che è che puoi creare script che vanno a sostituirsi alle funzioni di gm, non devi neppure cambiargli nome(visto che il mio pc sta a riparare lo sto facendo sul portatile in cui ho solo la lite. )
EDIT: Nooo usi le ds_map in quell' esempio. xD
Va bhè ho fatto cmq un bel lavoro, ora faccio il ds_list_shuffle.
EDIT2: Fatto. Ora posso dire di poter utilizzare le ds_list con la lite.
PS: La comodità che è che puoi creare script che vanno a sostituirsi alle funzioni di gm, non devi neppure cambiargli nome(visto che il mio pc sta a riparare lo sto facendo sul portatile in cui ho solo la lite. )
EDIT: Nooo usi le ds_map in quell' esempio. xD
Va bhè ho fatto cmq un bel lavoro, ora faccio il ds_list_shuffle.
EDIT2: Fatto. Ora posso dire di poter utilizzare le ds_list con la lite.
Ultima modifica di guidox il 29/07/2011, 18:02, modificato 2 volte in totale.
- minezatos
- Membro attivo
- Messaggi: 277
- Iscritto il: 22/07/2011, 14:03
- Località: Cagliari, Sardegna, Italia
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
Chiunque usa il .gmres deve ricreare le font perchè quelle della 8.1 non vanno su 8
- pacmino
- GMI Guru
- Messaggi: 2569
- Iscritto il: 03/06/2009, 16:38
- Specialità: Scazzato cronico
- Uso: GM:Studio 2
- Località: Seconda stella a destra questo è il cammino e poi dritto, fino al mattino...
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
non occorre rifare i font, basta reimpostare il range dei caratteri, inoltre bisogna modificare le lettere accentate nei messaggi di testo
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
Abbiamo visto che font importati da 8.1 in 8.0 se non rifatti buttano un "Unexpected error when running the game", non credo sia solo una questione di reimpostare. Hai provato?
- pacmino
- GMI Guru
- Messaggi: 2569
- Iscritto il: 03/06/2009, 16:38
- Specialità: Scazzato cronico
- Uso: GM:Studio 2
- Località: Seconda stella a destra questo è il cammino e poi dritto, fino al mattino...
- Contatta:
Re: [Botta&Risposta]Esempio inventario LITE
sì ho provato
se importo inventory_lite_resources.gmres o utilizzo il gmk convertito dal gm81 nel range dei font il primo valore è segnato in rosso, reimpostando i valori accettati da gm8 si avvia normalmente senza dare errore
rimane solo da correggere i messaggi che hanno delle lettere accentate tipo più unità eccetera, i message box vengono visualizzati comunque anche se presentano caratteri strani al posto della lettera accentata
l'importazione delle risorse in GM8 è consentita solo nella pro non so se in GM81 (che non uso) anche la lite può importare le risorse
allego il gmk con le correzioni (strano ne sono stati caricati due di gmk, ma sono uguali)
se importo inventory_lite_resources.gmres o utilizzo il gmk convertito dal gm81 nel range dei font il primo valore è segnato in rosso, reimpostando i valori accettati da gm8 si avvia normalmente senza dare errore
rimane solo da correggere i messaggi che hanno delle lettere accentate tipo più unità eccetera, i message box vengono visualizzati comunque anche se presentano caratteri strani al posto della lettera accentata
l'importazione delle risorse in GM8 è consentita solo nella pro non so se in GM81 (che non uso) anche la lite può importare le risorse
allego il gmk con le correzioni (strano ne sono stati caricati due di gmk, ma sono uguali)
- Allegati
-
[L’estensione gmk è stata disattivata e non può essere visualizzata.]
-
[L’estensione gmk è stata disattivata e non può essere visualizzata.]
Chi c’è in linea
Visitano il forum: Nessuno e 28 ospiti