[GDRCD 5.4]Oggetti personalizzabili dai personaggi
[GDRCD 5.4]Oggetti personalizzabili dai personaggi postato il 09/06/2019 17:16:11 nel forum programmazione, open source e hosting e modificato da mime il 11/06/2019 00:32:30
Ciao a tutti,
sto cercand di modificar eil sistema di gestione degli oggi per far si che una volta che sono stati creati gli oggetti standard dalla gestione, chi li compri o quando vengono assegnati ad un pg questo possa andare a migliorare i punteggi o parametri di quell'oggetto.
Come prima cosa ho identificato il file di gestione_mercato.inc.php
dove viene permesso di creare gli oggeti. Che per quanto mi serve sono oggetti con caratteristihe base. quindi standardizzati, uguali per tutti. Come il sistema di gdrcd fa già ora.
Ho creato una modifica alla tabella del db clgpersonaggiooggetto ed ora quando assegno un oggetto questo viene salvato in tale tabella assegnandogli un ulteriore id univoco.
Il mio intento era quello di aggiungere tutti i campi della tabella oggetto alla tabella clgpersonaggiooggetto che con l'assegnazione di un id univoco è come se ora avessi un oggetto unico per ogni personaggio. In questa maniera le modifiche ai parametri che il personaggio decide di aumentare al suo oggetto sarebbero salvate nella tabella clgpersonaggiooggetto e non nella tabella del db oggetto.
Il problema è che quando vado a fare l'assegnazione funziona tutto ma non riesco a far trasferire durante l'assegnazione i valori base dalla tabella del db oggetto alla tabella clgpersonaggiooggetto.
Mi da errore e dice che i campi non hanno valore.
E' un problema di select secondo me.
riporto il codice che secondo me andrebbe modificato per permettere di selezionare i valori della tabella oggetto che dovrebbero essere trasferiti alla tabella clgpersonaggiooggetto al momento dell'assegnazione.
/*Se e' stato richiesto di assegnare un oggetto al mercato o ad un PG*/
if ((gdrcd_filter('get',$_POST['op'])=='assign') && (gdrcd_filter('num',$_POST['num_oggetti'])>0)){
if ($_POST['give_item']=='mercato')
{
$result = gdrcd_query("SELECT id_oggetto FROM mercato WHERE id_oggetto = ".$_POST['id_oggetto']."", 'result');
if (gdrcd_query($result, 'num_rows')>0)
{
gdrcd_query($result, 'free');
$query="UPDATE mercato SET numero = ".gdrcd_filter('num',$_POST['num_oggetti'])." WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])."";
} else
{
$query="INSERT INTO mercato (id_oggetto, numero) VALUES (".gdrcd_filter('num',$_POST['id_oggetto']).", ".gdrcd_filter('num',$_POST['num_oggetti']).")";
}
gdrcd_query($query);
} else {
$result=gdrcd_query("SELECT id_oggetto FROM clgpersonaggiooggetto WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])." AND nome = '".gdrcd_filter('in',$_POST['give_item'])."'", 'result');
if (gdrcd_query($result, 'num_rows')>0)
{
gdrcd_query($result, 'free');
$query="UPDATE clgpersonaggiooggetto SET numero = numero + ".gdrcd_filter('num',$_POST['num_oggetti'])." WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])." AND nome = '".gdrcd_filter('in',$_POST['give_item'])."'";
} else {
$query="INSERT INTO clgpersonaggiooggetto (nome, id_oggetto, cariche, numero) VALUES ('".gdrcd_filter('in',$_POST['give_item'])."', ".gdrcd_filter('num',$_POST['id_oggetto']).", ".gdrcd_filter('num',$_POST['cariche_oggetto']).", ".gdrcd_filter('num',$_POST['num_oggetti']).")";
}
gdrcd_query($query);
}
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}
}
secondo me dovrei modificare questa query:
$result=gdrcd_query("SELECT id_oggetto FROM clgpersonaggiooggetto WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])." AND nome = '".gdrcd_filter('in',$_POST['give_item'])."'", 'result');
per permettere di richiamare anche i valori di tale query:
$loaded_item=gdrcd_query("SELECT * FROM oggetto WHERE id_oggetto=".gdrcd_filter('num',$_POST['load_item'])."");
il problema è che non riesco a fondere le due query.
Qualcuno potrebbe aiutarmi?
Grazie mille in anticipo!
Pagine → 1
10/06/2019 21:21:55
$query="INSERT INTO clgpersonaggioggetto (nome, id_oggetto, cariche, numero ) VALUES ('".gdrcd_filter('in',$_POST['give_item'])."', ".gdrcd_filter('num',$_POST['id_pokemon']).", ".gdrcd_filter('num',$_POST['cariche_oggetto']).", ".gdrcd_filter('num',$_POST['num_oggetti'])." )" AND "INSERT INTO clgpersonaggioggetto (tipo1, tipo2) SELECT tipo1, tipo2 from oggetto";
Scusate se riscrivo ma facendo vari tentativi così non mi da alcun errore ma non mi trasferisce i dati pre caricati ed esistenti nella tabella oggetto nella tabella clgpersonaggioggetto. Posso chiedere aiuto per capire come mai non mi trasferisce i contenuti da una tabella all'altra?
Grazie mille
10/06/2019 23:22:37
Forse non ho capito bene quello che vuoi fare, ma se non ricordo male quando fai le query su clgpersonaggio la voce nome nel DB corrisponde al nome del possessore dell'oggetto.
Che dato gli stai passando con "give_item"?
10/06/2019 23:46:16
seth2016 ha scritto: Forse non ho capito bene quello che vuoi fare, ma se non ricordo male quando fai le query su clgpersonaggio la voce nome nel DB corrisponde al nome del possessore dell'oggetto.
Che dato gli stai passando con "give_item"?
non so, io quella parte non l'ho toccata. L'inserimento dell'oggetto e l'assegnazione in clgpersonaggiogetto avviene ma non mi trasporta i dati contenuti nella tabella degli oggetti.
quindi l'assegnazione avviene ma quando va ad assegnare l'oggetto per i campi che ho aggiunto per rendere gli oggetti unici e personalizzabili dal singolo pc non vengono trasferiti i dati base che ho caricato di tale oggetto nella tabella oggetto. Per quei campi mi mette tutti campi vuoti.
11/06/2019 00:29:43
allora può essere che è una cosa che non conosco io. Partiamo dagli albori :). Che versione GDRCD stai usando?
11/06/2019 00:32:04 e modificato da mime il 11/06/2019 00:33:15
seth2016 ha scritto: allora può essere che è una cosa che non conosco io. Partiamo dagli albori :). Che versione GDRCD stai usando?
GDRCD 5.4 ;)
Scusate dovevo magari specificarlo nel titoloç_ç
Ho modificato il titolo così magari è più chiaro semplice per tutti^^
11/06/2019 00:39:40 e modificato da seth2016 il 11/06/2019 00:47:24
ah è nel mercato che stai lavorando.
Praticamente se ho capito i giocatori comprano un dato oggetto che poi deve portare le sue caratteristiche all'interno della lista clgpersonaggiooggetto. Quali voci vuoi portare su clgpersonaggiooggetto?
La tabella clgpersonaggiooggetto hai scritto che l'hai modificata per avere un id ad hoc per ogni oggetto ad ogni entry. Come è la sua struttura attuale?
Considera che così su due piedi questa è una query che dovrebbe controllare se un oggetto con lo stesso ID_oggetto è già presente.
$result=gdrcd_query("SELECT id_oggetto FROM clgpersonaggiooggetto WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])." AND nome = '".gdrcd_filter('in',$_POST['give_item'])."'", 'result');
Ora devo andare, magari domani se riesco mi ci metto un po'. Buon lavoro!
11/06/2019 14:21:31
seth2016 ha scritto: ah è nel mercato che stai lavorando.
Praticamente se ho capito i giocatori comprano un dato oggetto che poi deve portare le sue caratteristiche all'interno della lista clgpersonaggiooggetto. Quali voci vuoi portare su clgpersonaggiooggetto?
La tabella clgpersonaggiooggetto hai scritto che l'hai modificata per avere un id ad hoc per ogni oggetto ad ogni entry. Come è la sua struttura attuale?
Considera che così su due piedi questa è una query che dovrebbe controllare se un oggetto con lo stesso ID_oggetto è già presente.
$result=gdrcd_query("SELECT id_oggetto FROM clgpersonaggiooggetto WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])." AND nome = '".gdrcd_filter('in',$_POST['give_item'])."'", 'result');
Ora devo andare, magari domani se riesco mi ci metto un po'. Buon lavoro!
si sto lavorando nella pagina: gestione_mercato.inc.php in sostanza il mio intento sarebbe quello di caricare degli oggetti con caratteristiche base. Quando poi assegno un oggetto questo viene inserito in cglpersonaggiooggetto che ha gli stessi campi di oggetto. Con una aggiunta di un id univoco. In modo che i personaggi potranno migliorare le caratteristiche base dell'oggetto come vogliono.
Il problema è che quando faccio l'assegnazione non riesco a far trasferire i dadi pre caricati nella tabella oggetto nella nuova assegnazione oggetto al pg in clgpersonaggiooggetto.
grazie mille per la collaborazione *,*
11/06/2019 22:26:25
secondo me conviene che tu, come gestore, gestisci l'oggetto con i suoi valori base (nel senso lo crei e lo metti al mercato).
Il giocatore compra l'oggetto base su servizi_mercato, quindi secondo me devi agire lì con le query per pushare i dati nella tabella clgpersonaggiooggetto. Però poi dovrai costruire una pagina di gestione oggetto per i giocatori che va a modificare clgpersonaggioggetto.
11/06/2019 23:32:12
seth2016 ha scritto: secondo me conviene che tu, come gestore, gestisci l'oggetto con i suoi valori base (nel senso lo crei e lo metti al mercato).
Il giocatore compra l'oggetto base su servizi_mercato, quindi secondo me devi agire lì con le query per pushare i dati nella tabella clgpersonaggiooggetto. Però poi dovrai costruire una pagina di gestione oggetto per i giocatori che va a modificare clgpersonaggioggetto.
Ma quello che dici non risolve il problema perchè o lo assegno al mercato o al pg comunque sia i campi in clgpersonaggioggetto rimangono vuoti.
Il problema sta nel momento dell'assegnazione nel trasferire i valori dell'oggetto dalla tabella oggetto alla tabella clgpersonaggiooggetto.
Poi ovvio che il pg avrà la sua pagina dove scegliere di personalizzare l'oggetto e tali modifiche andranno ad agire su clgpersonaggioggetto.
12/06/2019 21:31:53
ma hai già predisposto la tabella clgpersonaggioggetto con i campi modificabili dagli utenti? Perché a me non pare di aver visto nelle query precedenti che passavi valori (immagino i bonus caratteristica)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
New Orleans ↗
Seconda Era ↗
Tibia ↗
Sea of Conquest ↗
World of the Sea Battle ↗
Enlisted ↗
World of Warship ↗
Imperion ↗