Exp nella scheda
Exp nella scheda postato il 06/08/2009 20:47:24 nel forum programmazione, open source e hosting
Salve a tutti^^
sto riscontrando dei problemi nel vedere assegnati i punti exp nelle schede dei pg. La bacheca apposita funziona e gli incrementi dei punti appaiono nella loro "cronologia" dedicata, però nel valore sulla schermata principale della scheda questi non compaiono.
Qualcuno saprebbe dirmi se a parte il codice ci possa essere qualche altra cosa che non va?
Grazie mille!
Pagine → 1 2
06/08/2009 23:47:52
vlada ha scritto: Salve a tutti^^
sto riscontrando dei problemi nel vedere assegnati i punti exp nelle schede dei pg. La bacheca apposita funziona e gli incrementi dei punti appaiono nella loro "cronologia" dedicata, però nel valore sulla schermata principale della scheda questi non compaiono.
Qualcuno saprebbe dirmi se a parte il codice ci possa essere qualche altra cosa che non va?
Grazie mille!
Devi andare nel DB, tabella personaggio, i campi esperienza ed explibera sono di tipo int: devi modificare in float altrimenti i mezzi punti non vengono aggiunti.
Il problema è che se hai già attribuito px ai personaggi devi fare la somma e reinserirli: non ricalcola in automatico i punti :p
07/08/2009 18:30:47 e modificato da vlada il 07/08/2009 18:33:26
orientia ha scritto:
Devi andare nel DB, tabella personaggio, i campi esperienza ed explibera sono di tipo int: devi modificare in float altrimenti i mezzi punti non vengono aggiunti.
Il problema è che se hai già attribuito px ai personaggi devi fare la somma e reinserirli: non ricalcola in automatico i punti :p
Abbiamo fatto quanto hai detto, ma ancora le cose non funzionano ç____ç
Sti dannati exp non ne vogliono sapere di andare a posto!
Qualcuno potrebbe per cortesia farmi un esempio del codice giusto da inserire?
Perchè a questo punto non so più nemmeno se quello è giusto <.<''
08/08/2009 00:39:48 e modificato da orientia il 08/08/2009 00:43:21
vlada ha scritto: [quote]orientia ha scritto:
Devi andare nel DB, tabella personaggio, i campi esperienza ed explibera sono di tipo int: devi modificare in float altrimenti i mezzi punti non vengono aggiunti.
Il problema è che se hai già attribuito px ai personaggi devi fare la somma e reinserirli: non ricalcola in automatico i punti :p
Abbiamo fatto quanto hai detto, ma ancora le cose non funzionano ç____ç
Sti dannati exp non ne vogliono sapere di andare a posto!
Qualcuno potrebbe per cortesia farmi un esempio del codice giusto da inserire?
Perchè a questo punto non so più nemmeno se quello è giusto <.<''[/quote]
Ti ho riportato la soluzione al bug che avevo riscontrato io, però ora mi viene il dubbio che ce ne fosse anche un altro di cui non ricordo...
Se provi a inserire dei punti (a qualcuno che non ne ha), dopo le modifiche che ti ho scritto di provare a fare, vengono inseriti in scheda?
08/08/2009 10:48:01
No, affatto.
La bacheca per l'assegnaione pare funzionare, ma alla fine i punti che uno mette non compaiono nella scheda del pg.
Non so più dove sbattere la testa a questo punto.
08/08/2009 11:53:29 e modificato da orientia il 08/08/2009 11:58:21
Allora, se i punti che metti ai pg sono mezzi punti questi non compaiono finchè non modifichi scheda.php togliendo il "floor"
quindi trasformi:
<tr ><td width=60><b>Esperienza:</b></td><td width=20><b> <?= floor($rs["Esperienza"]) ?></b></td></tr>
<tr ><td width=60><b>Libera:</b></td><td width=20> <b> <?= floor($rs["Explibera"]) ?></b></td></tr>
così:
<tr ><td width=60><b>Esperienza:</b></td><td width=20><b> <?= ($rs["Esperienza"]) ?></b></td></tr>
<tr ><td width=60><b>Libera:</b></td><td width=20> <b> <?= ($rs["Explibera"]) ?></b></td></tr>
A me sembra di ricordare che bacheca.php non avesse bugs riguardo all'inserimento dei punti e che gli unici due bugs che c'erano fossero quello nel db (che lavorando con i numeri interi non addizionava i mezzi punti) e quello del "floor" che arrotonda il numero dei punti all'intero di valore inferiore.
A questo punto, comunque, in scheda non ti comparirà la somma dei punteggi che trovi nella tabella dell'esperienza perchè in scheda.php non viene visualizzata la somma dei punti della tabella "punti" del db (che è quella che visualizzi in scheda5.php) ma il campo "esperienza" della tabella "personaggio" del db. Questo campo viene aggiornato quando inserisci i punti nella bacheca punti e l'addizione dovrebbe funzionare solo da dopo che hai fatto la modifica da "int" a "float". Di conseguenza quello che dovresti controllare è se dopo queste modifiche mettendo 0.5 punti ad un pg(indipendentemente da quanti punti in totale dovrebbe avere in totale) questi 0.5 gli compaiono in scheda se non accade è probabile che il problema sia in bacheca.php (ma ho rapidamente confrontato il file che ho io e quello di gdrcd extreme e mi sembra che non avevo fatto modifiche lì).
08/08/2009 14:23:49 e modificato da vlada il 08/08/2009 16:19:24
Grazie mille per le soluzioni offerte Orientia, sei stata preziosissima.
Abbiamo provato di tutto ma continua a non funzionare, io non so più dove mettere le mani sigh...ç__ç
Ho ricaricato i file di gdrcd extreme originali perchè avevo paura che magari il codice modificato da me fosse errato, ma neanche così funziona, con la soluzione proposta da Orientia nemmeno....sto impazzendo e pensare che praticamente il gdr è finito ma sto problema sta minando alla base le mie speranze...help! ç__ç
Inoltre sul DB nn mi compare l'esperienza libera ma solamente l'esperienza normale...boh sn proprio una frana 🆘
09/08/2009 11:02:23 e modificato da shadow91 il 09/08/2009 11:03:55
mmh, ma io non ho capito una cosa, se vai nel DB il campo relativo all'exp del personaggio viene modificato?
Ti spiego meglio:
Se tu assegni al PG Tizio 10 punti exp, ed il pg Tizio, prima dell'assegnazione ne aveva 5, il totale dovrebbe fare 15.
Se entri nel DB nel campo exp relativo al PG tizio ti compare il valore 15 o no?
***EDIT***
Ho corretto alcuni errori nella battitura per rendere il testo più leggibile xD
09/08/2009 11:07:26 e modificato da dottor gregory denis il 09/08/2009 16:17:09
Ciao non buttarti giù... ti dò due soluzioni che potrebbero essere interessanti ^^
Prova a controllare se nella variabile esperienza che dovrebbe essere
<?= $Esperienza?>
non è colorata, quindi ti stampa un numero nero indi per cui, aggiungi un <font color>
<font color=red><?= $Esperienza?></font>
Oppure, controlla se la tua esperienza è stata messa all'interno di una tabella, e magari ti sei dimenticata di apprire un tag <tr> o <td> quindi, per ovvi motivi non compare (capita spesso anche a me, facendo così ti dovrebbe apparire in alto):
Errato:
<table><tr><?=$Esperienza?></td></tr>
Corretto:
<table><tr><td><?=$Esperienza?></td></tr>
Fammi sapere... se non ti funziona, ti scrivo altre soluzioni ^^
09/08/2009 11:27:05
Da quello che ho capito anche se non ti assegna i punti all'esperienza del pg le varie assegnazioni punti nella tabella punti compaiono giusto.
Se usi l'extreme la parte di codice che fa l'assegnaizone punti si trova in bacheca.php che riceve i dati dal form in nuovabacheca.php.
Precisamente la parte dei punti inizia alla riga: 154 con il seguente codice:
#----- CASO IN CUI SONO INSERITI PUNTI ESPERIENZA -----
if ($Punti == 1) {
# Passo 1 ---> Aggiornare al contrario i punti esperienza relativi al messaggio
$MySql = "SELECT * FROM Punti WHERE IDMessaggioAraldo = '$IDMsg'";
$Result1 = mysql_query($MySql);
#echo $MySql.'<br>';
while ($rs1 = mysql_fetch_array($Result1)) {
$MySql = "UPDATE Personaggio SET Esperienza = Esperienza - '".$rs1['Esperienza']."' WHERE Nome = '".pars($rs1['Nome'])."'";
$Result2 = mysql_query($MySql);
#echo $MySql.'<br>';
}
$rs1->close;
# Passo 2 ---> Cancellare tutti i punti registrati relativi al messaggio
$MySql = "DELETE FROM Punti WHERE IDMessaggioAraldo = '$IDMsg'";
$Result = mysql_query($MySql);
#echo $MySql.'<br>';
# Passo 3 ---> Aggiungere i punti esperienza relativi al messaggio in input
for ($i = 1; $i <= 20; $i++) {
if (($_POST["Nome$i"] != '') && ($_POST["Esperienza$i"] != 0)) {
$MySql = "INSERT INTO Punti (Nome, Esperienza, DataEvento, IDMessaggioAraldo)";
$MySql .= " VALUES ('".$_POST["Nome$i"]."', '".$_POST["Esperienza$i"]."', '".strftime("%Y-%m-%d %H:%M:%S")."', '$IDMsg')";
$Result = mysql_query($MySql);
#echo $MySql.'<br>';
$MySql = "UPDATE Personaggio SET Esperienza = Esperienza + '".$_POST["Esperienza$i"]."', Explibera = Explibera + '".$_POST["Esperienza$i"]."' WHERE Nome = '".$_POST["Nome$i"]."'";
$Result = mysql_query($MySql);
#echo $MySql.'<br>';
}
}
}
}
se ti mette i punti nella tabella dei px ma non ti aggiorna i px del giocatore sicuramente c'è qualche problema nella query che ti ho segnato in grassetto.
Il mio consiglio è di far stampare la query a video rimuovendo l'# segno di commento dall'echo $Mysql in maniera da poter vedere gia a videoi possibili errori come mancanza di variabili ecc.
Visto che comunque la query sopra che assegna i punti nella tabella punti ti funziona e che mi dici che nella tabelle parsonaggio ti compare solo l'esperienza e non l'explibera mi fa pensare che il problema sia li e che la query di update non funzioni per quello.
Per verificare compunque quale è il problema una volta stampata a video la query copiala, apri il phpmyadmin che ti fornisce l'host o che hai installato in locale, e incollala per farla eseguire dal phpmyadmin e vedere che tipo di errore ti da
09/08/2009 13:37:03
Grazie a tutti per le soluzioni proposte, ma nessuna per adesso sta funzionando. Stiamo provando ancora ad aggiustare tutto.
Se nemmeno così dovesse funzionare rifaremo tutto da capo, ma non per questo demorderemo.
Grazie ancora a tutti!
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Storie di Agarthi ↗
RAID Shadow Legends ↗
Tiles Survive ↗
Sea of Conquest ↗
World of the Sea Battle ↗
Imperion ↗
Enlisted ↗