Punti cultura
Punti cultura postato il 19/01/2012 13:44:42 nel forum programmazione, open source e hosting e modificato da argorath il 19/01/2012 15:57:47
Per la creazione della tabella punti cultura (pacchetto gdrcd), qual'è la query corretta per l'accrescimento automatico degli stessi?
Nel pacchetto da questa:
ALTER TABLE `Personaggio` ADD `UltimaEsp` DATETIME DEFAULT '2000-01-01 00:00:00' NOT NULL ;
Ma così facendo spunta la data di oggi precisa al secondo, non i punti :D!
Mi potete aiutare? ^_^
Pagine → 1
19/01/2012 16:08:55
I punti che indichi nella query sembrano essere i punti esperienza. Non so che patch stai usando che ti ha fornito quella query, ma di certo quella ti serve solo una volta al momento dell'installazione, non serve per far funzionare quello che vuoi.
La risposta che cerchi non sta nelle query, ma nel codice PHP
19/01/2012 16:11:50
Ho applicato alla lettera questo pacchetto:
https://www.gdr-online.com/download_dettaglio.asp?id=95
Non riesco a trovare l'errore però :(
19/01/2012 16:25:45
Quale versione di GDRCD stai usando?
Quel pacchetto non funziona con GDRCD5.x
Funziona con GDRCD 3
Se stai usando GDRCD3, devi semplicemente segire le istruzioni riportate, ti dice di inserire un certo codice nelal pagina presenti.php in un punto specifico, se lo inserisci correttamente dovrebbe funzionare. (non è esattamente il miglior pezzo di codice che io abbia mai visto....ma dovrebbe andare)
19/01/2012 16:35:26
E invece non va. In scheda spunta questo parametro:
2012-01-19 16:25:14
Per questo ho pensato ad un difetto di query
19/01/2012 17:19:56 e modificato da argorath il 19/01/2012 17:20:20
Questo è l'intero tool.
esp_up.php
<?
# per modificare il lasso di tempo in cui fare acquisire l'esperienza cambiare il valore "10" di base in quello deciderato nella riga qui sotto
$MySql = "SELECT UltimaEsp, (DATE_ADD(UltimaEsp, INTERVAL 10 MINUTE) < NOW()) AS Tempo FROM Personaggio WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$Tempo_ok = $rs['Tempo'];
$UltimaEsp = $rs['UltimaEsp'];
$rs->close;
if ($Tempo_ok ==1) {
$MySql = "UPDATE Personaggio SET Esperienza = Esperienza + '1' WHERE Nome = '".$Login."'";
$Result = mysql_query($MySql);
$MySql = "UPDATE Personaggio SET UltimaEsp = NOW() WHERE Nome = '".$Login."'";
$Result = mysql_query($MySql);
}
?>
Istruzioni:
Il Tool istallato correttamente permetterà di avere un aumento dell'esperienza del personaggio di un punto ogni 10 minuti (di base ma la quantità di tempo può facilmente essere cambiata).
1) Caricare i seguenti file nella cartella principale:
esp_up.php
---------------------------
2) Fare la seguente query nel Database (Crea il campo nella tabella Personaggio dove verrà memorizzata la data dell'ultima esperienza acquisita)
/INIZIO QUERY/
ALTER TABLE `personaggio` ADD `UltimaEsp` DATETIME DEFAULT '2000-01-01 00:00:00' NOT NULL ;
/FINE QUERY/
---------------------------
3) Nel pagina presenti.php (o qualsiasi sia la pagina nella quale controllate che non si abbia ricevuto nuovi messaggi) inserite questa riga di codice subito prima del tag </body> (una delle ultime righe):
/INIZIO CODICE/
<? include ('esp_up.php'); ?>
/FINE CODICE/
---------------------------
Il pacchetto viene rilasciato secondo licenza OpenSource esattamente come avviene per GDR-CD. Inoltre non verrà fornita assistenza, in quanto il materiale è da intendersi ad uso di programmatori.
Non mi assumo nessuna responsabilità per eventuali malfunzionamenti.
.:§Aranchan§:.
Premettendo di essere un vile profano, non riesco a trovare l'errore.
19/01/2012 18:07:00
Quando dici che "in scheda mi spunta la data" cosa intendi esattamente? Dove ti spunta, così a caso dentro alla pagina, in corrispondenza di una voce in particolare, o cosa?
Il codice della patch non va inserito nella scheda e scrive date solamente nel campo UltimaEsp, quindi a meno che tu non stia stampando sulla scheda il campo UltimaEsp, non si capisce come possa farti una cosa del genere.
19/01/2012 23:00:36
Il gioco su cui l'ho montato è gdrcd 3.0 quindi dovrebbe andare.
Ho montato il pacchetto bene, non so programmare ma so gestire il codice.
Ho inserito in scheda semplicemente il parametro:
<?= $rs["UltimaEsp"] ?>
e spunta:
Cultura: 2012-01-19 22:59:57 (e si aggiorna dopo i 10 minuti che, in realtà, dovrebbero aggiornare i punti cultura! :D)
19/01/2012 23:17:08
argorath ha scritto:
Ho inserito in scheda semplicemente il parametro:
<?= $rs["UltimaEsp"] ?>
e spunta:
Cultura: 2012-01-19 22:59:57 (e si aggiorna dopo i 10 minuti che, in realtà, dovrebbero aggiornare i punti cultura! :D)
Hai frainteso lo scopo della patch allora.
Il campo UltimaEsp è un campo di utilità tecnica, non deve essere mai stampato sulla scheda, perchè quel campo tiene traccia di quando è stata l'ultima volta che i punti esperienza sono stati innalzati.
Questa patch non fa nient'altro, non implementa nessun sistema di punti alternativo a quello dei punti esperienza. L'unica cosa che fa è far salire i punti esperienza (che sono già stampati in scheda di default, ed esistono già senza la patch e sono immagazzinati nel campo Esperienza del database) di una unità ogni 10 minuti che l'utente è online, all'incirca.
19/01/2012 23:25:56 e modificato da argorath il 19/01/2012 23:30:01
Ahhh :D ok! Ci sono allora!
Ora che ho compreso il meccanismo sono riuscito a far funzionare tutto alla perfezione!
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!
State of Survival ↗
World of Tanks ↗
Crossout ↗
Project Entropy ↗
War Thunder ↗
Sea of Conquest ↗
World of Warship ↗
Exclusive Villa GdR ↗
The Coven ↗