[RISOLTO] Assegnare una chat a due mappe distinte postato il 31/01/2017 22:21:59 nel forum programmazione, gdrcd, open source, hosting e modificato da maclay il 08/02/2017 20:27:33
Salve a tutti!
Per questioni d'ambientazione, ho necessità di collegare una chat a due mappe diverse.
I problemi che ho riscontrato sono però due:
- l'ID delle chat è unico, quindi non posso creare due chat con il medesimo ID ed assegnarne una a ciascuna mappa;
- aggiungere un campo nella tabella "mappa" del db e poi sistemare il pannello di gestione per far sì che la chat venga assegnata a più di una mappa significa avere un posizionamento unico per entrambe le mappe, cosa che non è possibile.
Se qualche anima mia avesse la bontà di darmi una mano, gliene sarei eternamente grata!
01/02/2017 11:36:28 e modificato da rematore il 01/02/2017 11:50:19
Ciao, le mappe che vuoi collegare alla stessa chat le generi in maniera manuale, cioè attribuisci ad ogni chat un file php o html che contiene la logica(immagine mappa con le coordinate per il click) oppure usi la funzione mappaclick del gdrcd?
01/02/2017 19:43:16 e modificato da maclay il 01/02/2017 19:43:44
Uso la funzione nativa di gdrcd, quindi la procedura "standard":
- dal pannello di gestione mappe, credo la mappa;
- dal pannello di gestione luoghi, creo le chat, le assegno alle rispettive mappe e le posiziono;
02/02/2017 13:45:46 e modificato da rematore il 02/02/2017 13:59:49
Questa è la mia analisi, ovviamente non è oggettiva ogni sviluppatore fornisce la sua idea. Questa è la mia.
Fare quello che chiedi e farlo in maniera "pulita" senza forzare il codice, non è possibile per com'è imposto il gdrcd attualmente questo secondo la mia idea.
Preferisco evitare di complicare ancora di più il codice, quindi utilizzo ciò che ho a disposizione nel pacchetto base del gdrcd.
Questo metodo si avvale del campo "pagina associata" nel pannello gestione luoghi. Più precisamente, ogni volta che avrai bisogno di una chat collegata a più mappe(il metodo che segue prende un numero finito di mappe, il numero lo decidi tu) dovrai inserire come pagina associata questo valore seguito da questo pattern.
02/02/2017 14:39:42
Intanto, ti ringrazio per l'aiuto!
Ho seguito alla lettera le tue spiegazioni, ma purtroppo senza successo.
Se assegno la chat ad una mappa d'appartenenza, in questo caso quella che ha come ID 3, non appare nell'altra mappa specificata, ossia quella con ID 2.
Se non assegno invece alcuna mappa di appartenenza, la chat non appare da nessuna parte.
Ci sarebbe poi anche la questione del posizionamento. Ammettendo di riuscire a far funzionare il tutto, come specifico poi il posizionamento su ciascuna mappa? Perchè purtroppo non si troverebbero alle stesse coordinate in entrambe le mappe.
02/02/2017 16:13:00 e modificato da rematore il 02/02/2017 16:16:54
Allora, ti mostro il funzionamento del codice passo passo così mi dici se è quello che serve a te perché dal tuo messaggio penso d'aver interpretato male quello che hai chiesto.
Genero le mappe
(per comodità imposto posizione 2 ma non ha importanza per questo contesto)
Creo le "chat"
Stanza 1 ha la spunta sulla casella "chat" e la mappa di appartenenza è settata a "Mondo 1 (ID => 10) "
Stanza 2 ha la spunta sulla casella "chat" e la mappa di appartenenza è settata a "Mondo 2 (ID => 3) "
Stanza 3 ha la spunta sulla casella "chat" e la mappa di appartenenza è settata a "Mondo 3 (ID => 90) "
Creo la chat che stamperà la pagina con le mappe multiple
Stanza 2601 non ha la spunta sulla casella "chat", la mappa di appartenenza è settata a "Mondo 1" (per esempio) e pagina associata ha valore multimappa[90,3]
Funzionamento
Ora, cliccando sul link delle mappe Stanza 1, Stanza 2, Stanza 3 ho la chat normale, cliccando invece sul link Stanza 2601 mi stamperà la mappaclick con id 90 (quindi tutti i luoghi definiti nella mappa specifica) seguita dalla mappaclick con id 3 (ancora una volta, con tutti i luoghi definiti)
Questo è quello che ho capito da "ho necessità di collegare una chat a due mappe diverse."
02/02/2017 17:47:17
Allora mi sono spiegata male, perdonami :-(:-(
Quello che servirebbe a me è una chat che sia raggiungibile da due mappe diverse.
Esempio:
MAPPA 01 --> CHAT 01 <-- MAPPA 02
Mi rendo benissimo conto che la cosa potrebbe non essere fattibile e che ci sarebbero comunque dei problemi notevoli, (tipo: una volta che entro in chat, quando ne esco su che mappa mi ributta? Come sistemo il tutto perchè la chat in Mappa 01 venga posizionata a determinate coordinate ed in Mappa 02 ad altre?), ma ho pensato di sollevare la questione ugualmente, perchè potrebbe essere interessante e potrebbe avere anche delle applicazioni ugualmente interessanti.
03/02/2017 16:11:45 e modificato da rematore il 03/02/2017 16:18:19
Oh beh magari quel codice che ho implementato servirà a qualche altro utente.
Tornando al problema, questa è la mia soluzione. I problemi sollevati li risolve. Non è nemmeno troppo pesante perché, in un certo senso, si applica solo alle chat che sono condivise da più mappe.
La logica è semplice, una volta convertito il tipo dell'attribuito id_mappa (tabella mappa) in VARCHAR salvo gli id delle mappe associate a quella chat separati da una virgola.
Quando l'utente mi fa la richiesta tramite la mappaclick verifico che l'id della mappa richiesta è condiviso da altri luoghi se sì, lo cerco tra TUTTE le stanze del gdr che hanno mappa associate e dove lo trovo lo metto in prima posizione.
-- codice --
prima di leggere sotto, apri il db vai nella tabella mappa e cambia il tipo dell'attributo id_mappa in VARCHAR(255) (se non basta TEXT)
apri la cartella pages ed inserisci questo codice nel file mappaclick.inc.php
03/02/2017 19:43:15
Intanto, grazie di nuovo - soprattutto per la pazienza!
Prima di procedere con l'implementazione della tua soluzione, però, una domanda: sbaglio o l'auto_increment non può essere assegnato ad un varchar senza specificare l'attributo "unsigned"?
03/02/2017 20:06:17 e modificato da rematore il 03/02/2017 20:22:32
L'auto increment lo si usa con attributi di tipo intero, la stessa cosa vale per unsinged. Quest'ultimo specifica che il campo non può assumere valore negativo.
In questo caso io non ti ho detto di modificare il campo id della tabella mappa (che è auto increment), ti ho scritto di modificare il campo id_mappa che non deve essere auto increment e non deve essere int perché dovrà contenere uno o più id separati dalla virgola ecco il perché ti ho scritto di cambiare il tipo.
Comunque per maggior sicurezza fai un dump del tuo database prima della modifica
04/02/2017 02:26:20
Allroa ho fatto bene a chiedere, perchè avevo letto proprio male!
Ho implementato la tua soluzione è funziona tutto perfettamente, perfino il fatto che quando torno in mappa mi fa tornare a quella da cui sono entrata effettivamente in chat.
Ci sarebbe solo una piccola questione: le coordinate di posizionamento.
Al momento, posso determinarle solo una volta, quindi il link alla chat viene posizionato alle stesse coordinate in entrambe le mappe.
Credi sia possibile specificare due set di coordinate, una per ciascuna mappa?
Discussione seguita da
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!
Legacy of Magic: Gli Elementi Oscuri - La Nera Signora dell'Acqua
Pandora Upside Down High School → La prima scuola per sovrannaturali al mondo vi attende! Scoprite il vostro cammino Ancestrale relazionandovi con i compagni e le attività dei club
Il gestore di W40K Dathyar ha risposto alla recensione di dreamboy
dreamboy ha recensito W40K Dathyar
Metin2: Live ora: Server Boost Yohara e Twitch Drop
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!
Epic Wizardry RP: Changelog N. 4 - Epic Wizardry Rp
drongo ha recensito Il Grande Blu
Pirates of the Caribbean: Tides of War: Quarti di finale del torneo
DarkOrbit: Galactic Strife & Buono gratis 💥
Exclusive Villa GdR → Las Vegas, azzardo, vizi, soldi, intrighi... Più le sue luci sono scintillanti, più le sue ombre sono oscure. La città che non dorme mai, vi aspetta.
Legacy of Magic: Il vecchio e la mappa
outrunstaff ha risposto alla discussione: Project OutRun PbC
meleys ha aperto un annuncio di ricerca: Westeros GDR ricerca Tester
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, diventa quello che hai sempre cercato.
Crea le tue Mappe! - Due software gratuiti per creare mappe: RPG Map Editor e MapTool!
Google reCAPTCHA - Difendiamo i nostri giochi dai bot malevoli con Google reCAPTCHA!
X-Man City - Recensione del GDR ambientato nell'universo Marvel dei mutanti
Giochi Cyberpunk - Lista completa dei giochi di ruolo online cyberpunk
New World GDR - Intervista al gestore di New World GDR... il play by chat di One Piece!
Poteri delle Pietre - Le proprietà e i poteri delle Pietre!