sottogilde gdrcd 5.2 postato il 18/08/2013 18:22:27 nel forum programmazione, gdrcd e open source
Salve a tutti, spero che qualcuno possa aiutarmi almeno a risolvere questo problema che non credo sia assai semplice. Io ci ho perso l'intera notte dietro e ancora non ne sono venuto a capo.
Quello che vorrei fare è creare delle gilde sottoposte ad un ruolo di un'altra gilda. Mi spiego meglio con un esempio. Supponiamo ci siano quattro gilde (A,B,C,D) così composte:
- gilda A: Re, Papa
- gilda B: Nobile, Barone, Marchese, etc
- gilda C: Vescovo, Camerlengo, Prete, etc
- gilda D: Contadino, Banchiere, Disoccupato, etc
Chi ricopre il ruolo di Re deve poter gestire sia la gilda B sia la gilda D, mentre il Papa deve gestire la gilda C. Questo è un esempio, ci sono ruoli che dovrebbero arrivare a gestire anche 5 o 6 gilde.
Ho fatto varie prove, ma nessuna di esse è andata a buon fine. Non so nemmeno se la strada che ho intrapreso è la più semplice o se ce n'è una più veloce. Vi spiego quello che ho fatto io fino ad ora.
1) ho creato un campo id_ruolocapo (int(4), not null) nella tabella gilda: questo campo servirebbe ad indicare a quale ruolo è sottoposta la gilda (quindi, nell'esempio di prima, se il Re ha id=2 nella tabella della gilda riguardante la gilda B ci sarebbe id_ruolocapo=2)
2) prendendo come esempio il menu a tendina per spostarsi velocemente tra le mappe, ho creato il codice per far comparire, nella pagina di gestione delle gilde, un menu a tendina in cui sono presenti tutti i ruoli presenti suddivisi per gilda:
Pagine → 1
19/08/2013 12:06:16
Non so quali sono le tue esigenze di gioco, ma riorganizzando un po' le cose potresti evitare di dover programmare creando solo tre gilde:
- gilda A: Re, Papa
- gilda B: Re, Nobile, Barone, Marchese, Contadino, Banchiere, Disoccupato ecc.
- gilda C: Papa, Vescovo, Camerlengo, Prete ecc.
Questa soluzione prevede che Re e Papa facciano parte di due gilde, una che racchiude solo loro due ed un'altra in cui sono Capogilda (la gilda B per il Re e la gilda C per il Papa). Ma se vuoi che tutti i giocatori facciano parte di una sola gilda potresti eliminare la gilda A, e prevedere un regolamento che disciplini i rapporti fra Re e Papa.
19/08/2013 22:40:33 e modificato da astro991 il 19/08/2013 23:36:43
Innanzitutto grazie per aver risposto.
Ci avevo pensato anche io ad una cosa simile, ma non posso farlo. Infatti, come ho scritto, ci sono ruoli di alcune gilde che avrebbero sotto di loro anche 5 o 6 gilde. Inoltre, continuando con l'esempio di prima, il Nobile (ossia il ruolo più importante dopo il Re) avrebbe il controllo della sua gilda, così come, per esempio, il Banchiere della sua. Facendo nel modo che hai proposto te, quando il Nobile va ad amministrare la gilda si trova a poter assumere/licenziare anche il Re e quelli che dovevano essere i componenti della gilda D, e non va bene.
Forse l'esempio che ho fatto non spiega bene il problema, quindi provo a spiegarmi meglio facendo un esempio sull'antica Roma, come ho fatto in un altro topic. Prendi, per esempio, una gilda composta dai soli prefetti (annona, urbe, vigili, etc). Sotto di sé il praefectus urbis avrebbe, per esempio, la gilda dei sarti (con la sua gerarchia interna, con a capo il Sarto Mastro), quella dei fabbri (con la sua gerarchia interna, con a capo il Fabbro Mastro), e altre. Di certo non posso né creare in tutte il ruolo "praefectus urbis" perché tutti possono appartenere ad una sola gilda, e nemmeno posso unirle perché il Sarto Mastro deve appartenere alla gilda dei sarti e deve poter gestire solo i sarti, così come il Fabbro Mastro deve appartenere alla gilda dei fabbri e deve poter gestire solo i fabbri.
Inoltre, se prendiamo in considerazione il periodo imperiale, tutti i prefetti sarebbero sottoposti all'imperatore.
La soluzione da te proposta quindi non è adatta al mio caso purtroppo.
Edito perché mi sono accorto di un errore. Sono riuscito nel primo intento, ossia farmi stampare nella tabella della gestione gilde quello che volevo, ossia il nome del ruolo a cui la gilda è sottoposta. Ora ho due problemi che non riesco a risolvere
1) il codice mi stampa il nome del ruolo ma non l'id del ruolo; infatti, quando vado nel db a controllare vedo che il campo nome_ruolocapo è pieno come dovrebbe essere, mentre il campo id_ruolocapo è fisso 0, ossia non mi stampa l'id del ruolo corrispondente. Il codice è questo:
21/08/2013 22:04:31 e modificato da astro991 il 21/08/2013 22:06:49
Ma io mi chiedo: vi fa così schifo rispondere ai miei topic? Perché vedo che rispondete a tutti, anche a quelli che chiedono "cosa significa 'login'?" e gli rispondete in migliaia, mentre a me non risponde nessuno. Ci sono dei topic che ho aperto l'anno scorso ancora lì senza che nessuno abbia mai risposto, così come alcuni aperti qualche settimana fa. Vorrei tanto sapere perché a me non rispondete. Per ottenere una risposta ad un vecchissimo topic ho dovuto riportarlo in vita un anno dopo averlo aperto (e ringrazio ouroboros che mi ha risposto, così come ringrazio baboomba per aver risposto a questo topic).
E dopo questo sfogo personale (anche se davvero mi piacerebbe sapere perché nessuno risponde mai ai miei topic) torniamo a parlare dell'argomento di questa discussione, alla quale sto rispondendo solamente io. Sono riuscito a risolvere un altro problema, ma ora son davvero bloccato. Nella pagina per amministrare le gilde ho fatto così:
21/08/2013 22:36:16
Ma infatti non era rivolto a te lo sfogo, anche perché vedo che se puoi rispondi e aiuti, e per questo ti ringrazio.
Io ci sto impazzendo da giorni su questa cosa, e mi son venute in mente invenzioni piano piano, ma ora purtroppo son bloccato davvero, non capisco dove sbaglio :-(
23/08/2013 07:30:30
Sono riuscito a capire dove stanno alcuni errori, ma ancora non riesco a risolverli. Andiamo per ordine.
Problema 1
C'era il problema che se io lasciavo vuoto il campo "ruolocapo" nella gilda con "id=1", allora mi diceva che non potevo amministrare le gilde. In pratica, il codice considerava esclusivamente la gilda con "id=1". Ho fatto così:
24/08/2013 12:13:33 e modificato da ilgrandeinverno il 24/08/2013 12:42:54
24/08/2013 18:44:59
Innanzitutto grazie per aver risposto. Ci son una cosa però che mi è poco chiara:
25/08/2013 02:47:17
25/08/2013 05:11:21
Questa è una cosa che già mi è stata detta, e alla quale ho già risposto in un topic a suo tempo, ma lo ripeto anche qui.
Questo account non è solo mio, lo condividiamo io e mio fratello. Di conseguenza, alcuni topic li apro io ed altri li apre lui. Quindi non tutti i topic qui presenti sono stati aperti da un'unica persona.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
I dati del generatore di rank sono stati aggiornati!