[Botta&Risposta]Esempio inventario LITE

Tutorial, videotutorials ed esempi creati da noi
Rispondi
Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

[Botta&Risposta]Esempio inventario LITE

Messaggio da Homunculus »

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

Avatar utente
minezatos
Membro attivo
Messaggi: 277
Iscritto il: 22/07/2011, 14:03
Località: Cagliari, Sardegna, Italia
Contatta:

Re: [Botta&Risposta]Esempio inventario LITE

Messaggio da minezatos »

Siiiiiii :banana: :banana: :banana: :banana:
Grazie!

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: [Botta&Risposta]Esempio inventario LITE

Messaggio da Homunculus »

minezatos testamelo su GM lite, ho controllato le funzioni ma avendo la pro se mi é sfuggito qualcosa non riesco a vederlo. Grazie

Avatar utente
minezatos
Membro attivo
Messaggi: 277
Iscritto il: 22/07/2011, 14:03
Località: Cagliari, Sardegna, Italia
Contatta:

Re: [Botta&Risposta]Esempio inventario LITE

Messaggio da minezatos »

Homunculus ha scritto:minezatos testamelo su GM lite, ho controllato le funzioni ma avendo la pro se mi é sfuggito qualcosa non riesco a vederlo. Grazie
Mi dice errore, quando carica il gioco

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: [Botta&Risposta]Esempio inventario LITE

Messaggio da Homunculus »

Mi piace la precisione del tuo messaggio.. Dimmi che errore

Avatar utente
minezatos
Membro attivo
Messaggi: 277
Iscritto il: 22/07/2011, 14:03
Località: Cagliari, Sardegna, Italia
Contatta:

Re: [Botta&Risposta]Esempio inventario LITE

Messaggio da minezatos »

Run time error, non parte il gioco

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: [Botta&Risposta]Esempio inventario LITE

Messaggio da Homunculus »

Altri che hanno sto prpblema? A me va senza problemi anche importando il gmres, ma ho pur sempre gm 8.1

Avatar utente
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

Messaggio da guidox »

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. :D )

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. 8) Ora posso dire di poter utilizzare le ds_list con la lite. :lol:
Ultima modifica di guidox il 29/07/2011, 18:02, modificato 2 volte in totale.
Immagine

Immagine

Avatar utente
minezatos
Membro attivo
Messaggi: 277
Iscritto il: 22/07/2011, 14:03
Località: Cagliari, Sardegna, Italia
Contatta:

Re: [Botta&Risposta]Esempio inventario LITE

Messaggio da minezatos »

Chiunque usa il .gmres deve ricreare le font perchè quelle della 8.1 non vanno su 8

Avatar utente
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

Messaggio da pacmino »

non occorre rifare i font, basta reimpostare il range dei caratteri, inoltre bisogna modificare le lettere accentate nei messaggi di testo
Immagine

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: [Botta&Risposta]Esempio inventario LITE

Messaggio da Homunculus »

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?

Avatar utente
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

Messaggio da pacmino »

sì ho provato :D

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

Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti