Sistema di Crafting postato il 24/02/2012 21:51:28 nel forum programmazione, gdrcd, open source, hosting
Buonasera a tutti!
Vi scrivo per un problema "tecnico" per quanto riguarda il codice. Io stò cercando di creare un sistema di crafting in modo che dato un oggetto X + un oggetto Y si ottenga oggetto Z, e fatta la creazione, gli oggetti x ed y vengono eliminati. Il mio problema non +è a livello di codice, è un passaggio che ancora non ho iniziato, mi sono fatto uno schema, ma sono sicuro che o ho dimenticato qualcosa, o manca qualche parte.
Definisco le variabili degli oggetti x,y,z
Fare in modo che la variabile $oggetto_x equivalga ad un array di oggetti
Fare in modo che la variabile $oggetto_y equivalga ad un array di oggetti
Fare in modo che la variabile $oggetto_z equivalga ad un array di oggetti
Controllare se l'oggetto selezionato dall'utente è presente nell'array x
Se presente:
Controllare se l'oggetto(x) selezionato dall'utente è presente nella scheda oggetti
Controllare se l'oggetto selezionato dall'utente è presente nell'array y
Se presente:
Controllare se l'oggetto(y) selezionato dall'utente è presente nella scheda oggetti
Se i valori sono tutti veri, generare un oggetto_z, dall'array z
il mio problema è come far capire a PHP che oggettox+oggettoy devono dare un DETERMINATO oggettoz.
Per esempio, se io unisco un asta di legno e un pezzo di metallo lavorato devo ottenere una lancia, come far capire questo a PHP?
Devo forse creare più array con i diversi tipi di oggetti e quali si possono combinare? O devo definire variabile per variabile, ognuna delle quali associata ad un oggetto, con un determinato risultato?
Grazie in anticipo per eventuale aiuto, ci stò sclerando da più giorni ma... nada!
Pagine → 1
24/02/2012 23:26:13 e modificato da leoblacksoul il 24/02/2012 23:30:05
Il sistema ideato da nicodem è interessante. Ma è leggermente scomodo per via del sistema di ID che devono essere tutti potenze di due (è un numero che cresce troppo rapidamente, con 10 oggetti sei già arrivato a 1024)
E potrebbero esserci problemi nel caso in cui un oggetto creato potesse venire usato come materia prima per creare un altro oggetto. Il sistema di ID mostrerebbe delle debolezze e potrebbero venirsi a creare relazioni indesiderate tra oggetti
Una soluzione alternativa è:
Io personalmente mi farei aiutare dal Database, dato che la teoria dei database è già inquadrata sul rappresentare relazioni tra entità:
Ci servono almeno due tabelle:
Tabella 1: Oggetti: in questa tabella teniamo tutti i dati relativi agli oggetti singoli e anche ai prodotti finali delle combinazioni
Tabella 2: Produzione: questa tabella contiene 3 campi:
OID_1, OID_2 e OID_risultato
OID_1 e OID_2 contengono gli ID degli oggetti che possono essere accoppiati insieme
OID_risultato contiene l'ID dell'oggetto che viene creato dall'unione dei due.
Quando l'utente seleziona i due oggetti non dovrai fare altro che fare una query:
SELECT OID_risultato FROM Produzione WHERE (OID_1=$x AND OID_2=$y) OR (OID_1=$y AND OID_2=$x)
se la query ritorna un ID allora sai che la produzione può essere fatta, se non ritorna nulla non può essere fatta. Ovviamente devi sempre controllare che $x e $y siano dell'intentario dell'utente.
Non credo ci sia modo di fare il craftin gin modo dinamico senza impostare a mano tutte le possibili combinazioni. Il modo probabilmente c'è ma sarebbe molto complicato e dovrebbe basarsi sulle caratteristiche e sulla natura degli oggetti.
25/02/2012 00:19:23
Grazie delle risposte ragazzi, sono entrambi metodi affascinanti ema soprattutto li proverò entrambi :D
Concentrandosi sul primo
25/02/2012 08:15:27
sisi quoto il sistema con la tabella sql.
anche perchè cosi basterà che ti fai una query del tipo
select oggetto_z from oggetticreati where oggetto_x = "$oggetto_x" and oggetto_y = "$oggetto_y"
poi fai un mysql_num_rows cosi vedi se esiste o meno se esiste fai la query di delete die due oggetti se no metti l'alert di errore.
molto più semplice degli oggetto con id. oltretutto è un sistema poco sicuro..
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
blackmirror ha recensito Apocalypse Requiem: Detroit
Dissendium Draconis: Modifiche e Implementazioni: Pozioni
Dark Genesis → Ascendi al cielo in Dark Genesis! Raduna potenti semidei, costruisci il tuo impero volante e scontrati in battaglie divine!
Le Cronache di Raja Dunia: Il Vuoto ed i suoi Principi Demoniaci
masters league si è accreditato come gestore di Masters League
I dati del generatore di rank sono stati aggiornati!
Ex Gratia GDR: Nuova Entità: Ichirei!
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Nyx Insight - Project S.E.T.: Possibili Rallentamenti del 16/08
neworleans ha aperto un annuncio di ricerca: New Orleans ricerca Giocatore
Storie di Esperia: Fiori cremisi
Nuovo Browser Game Calcio → Masters League
Hero Wars → Costruisci la tua squadra di eroi leggendari e domina il campo di battaglia! Strategia, tattica e potenza si scontrano in questo RPG ricco di azione!
Sea of Conquest: Evento con The King of Fighters XV! 🌊
Il genere Fantasy Orientale raggiunge i 700 giochi catalogati!
Hogwarts Express - Harry Potter GDR Forum: 🦉 Gazzetta del Castello – Speciale Fine Anno
Enlisted: Rendiamo Enlisted un posto migliore №71
Dark Genesis → Ascendi al cielo in Dark Genesis! Raduna potenti semidei, costruisci il tuo impero volante e scontrati in battaglie divine!
Seconda Era - Intervista alle gestrici del PbC fantasy Seconda Era - Le Terre Libere
Reami Dimenticati - Recensione del gdr ad ambientazione Dungeons and Dragons Reami Dimenticati
Moscow Chronicles - Intervista al gestore del GdR post-apocalittico Moscow Chronicles
Formati Libri - Libro: cartaceo, digitale o formato audio?
Ambientazione Gdr - La basi di partenza per creare l'ambientazione di un gioco di ruolo!
Starfleet Italy - Non è un gioco di ruolo, ma un gioco di narrazione: ognuno scrive un pezzo della storia..
Inquisizione - Intervista alla gestione di Inquisizione London Chronicles il play by chat ambientato in un oscura Londra
Regno delle Due Sicilie - Recensione del GDR storico del Regno delle due Sicilie.