esperienza automatica postato il 11/12/2007 23:27:02 nel forum programmazione, gdrcd e open source
Allora ragazzi, premettendo che uso gdrcd extreme, io vorrei mettere l'esperienza automatica a tempo...
Ho scaricato il pacchetto aggiuntivo da questo sito che mi permette di fare questo, ed ho seguito passo passo le sue indicazioni.....
Ho caricato la pagina esp_up.php, creato il campo "UltimaEsp"nel database,nella scheda personaggio, e inserito questra stringa nel file "presenti.php" : <? include ('esp_up.php'); ?>
Risultato? l'exp mi va....però ho un problema.....
Per cambiare il tempo, cioè ogni quanti minuti si guadagna un punto exp dovrei modificare questa stringa,cambiando il "10" con il numero di minuti che voglio...:
$MySql = "SELECT UltimaEsp, (DATE_ADD(UltimaEsp, INTERVAL 10 MINUTE) < NOW()) AS Tempo FROM Personaggio WHERE Nome = '".pars($Login)."'";
L'ho fatto, ma mi aumenta sempre di 1 ogni 10 minuti...come mai?e inoltre mi si aggiunge solo quando clikko su "aggiorna" nella land, se altrimenti apro solo la scheda, non mi calcola il punto appena guadagnato...
Grazie!
Pagine → 1 2
12/12/2007 11:23:32
Capisco...però strano perchè se il codice funziona(visto che alla fine l'exp la prendo), dovrebbe fare quello che gli dico io....se cambio i minuti dovrebbe cambiarli effettivamente e non lasciare i 10 di impostazione.
Poi riguardo i pacchetti, ho scaricato anche quello del messaggio di benvenuto e funziona bene....strano!
Cmq allora come posso fare per l'exp?devo proprio riscrivere il codice o mi basta qualche modifica per lasciare la stessa stringa su extreme?
Grazie
12/12/2007 13:46:06
Prova a scrivere qui la stringa che hai modificato, magari cosi- si potrebbe avere idea di cosa non vada. Comunque stai andando contro la licenza di gdrcd.
12/12/2007 14:05:08
contro la licenza?perchè?
cmq innanzitutto ho caricato questo file chiamato 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);
}
?>
poi ho creato il campo UltimaEsp nel database, nella cartella Personaggio....e infine ho inserito questo codice nel file presenti.php , proprio prima del tag di chiusura </body>
<? include ('esp_up.php'); ?>
Tutto qui!
12/12/2007 17:01:42
Perche' la licenza originale invita espressamente a non introdurre meccanismi che premino il tempo diconnessione degli utenti.
12/12/2007 17:43:01
<?
# 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);
}
?>
Allora, ho evidenziato due parametri. Nel primo, devi immettere il tempo che ci dev'essere tra un aggiornamento di exp e l'altro, nel secondo invece devi mettere la quantità di esperienza che deve aggiungere. E' semplice, almeno mi sembra corretto.
12/12/2007 18:14:32
Grazie darck...solo che il problema è che io quello l'ho fatto, ma se ne strafrega e continua a dare exp ogni 10 minuti...anche se io ho messo "3"!!
Per quanto riguarda la licenza...è vero hai ragione...ma un modo per dare l'exp dobbiamo pur metterlo no? E cmq io preferire l'exp assegnata ad ogni invio...cioè quando "ruoli" ti viene data l'exp...però non so come si faccia e sui pacchetti di questo sito ho trovato solo questa....però se devo levarla...non so, dimmi te!
12/12/2007 18:23:11
tramite le bacheche si assegna l'exp. se vai a crea bacheca vedi ch ec'è un checkbox in cui mi pare ci sia scritto punti esperienza o assegna punti na roba simile. cmq in poche parole si deve creare una bacheca che permette a chi inserisce un mesaggio di inserire l'exp da assegnare ai pg che vuoi
12/12/2007 18:33:33 e modificato da raistlins87 il 12/12/2007 18:41:08
Si lo so e quella bacheca l'ho già creata...mi funziona e tutto ok (anche se vorrei sapere se cè il modo di aumentare i punti massimi da dare...la scala va da -5 a +10...cioè se possibile io vorrei da 0 a 50), però quello che intendevo è che non posso dare exp solo tramite quest....cioè cosi appena si fa una quest vanno tutti la...bisognerebbe fare moltissime quest e sarebbero tutte troppo affollate perchè la gente si fionderebbe a farle visto che sono l'unico modo per prendere exp!!
Cmq ragazzi mi correggo....il codice sopra descritto mi va...anche il fattore tempo....solo che il problema è questo:
mettiamo che metto 1 punto ogni minuto, se gioco,sto alla mappa,guardo la scheda o qualsiasi altra cosa l'exp non aumenta...mi aumenta solo se clicco "aggiorna" sul menù della land....quindi se ogni minuti aggiorno mi mette l'exp, altrimenti niente!!!
12/12/2007 20:07:10
nono ogni minuto mette l'exp ma anche se aggiorni dopo due minuti ti ritrovi 2 punti. fai una prova a e vedi. cmq per l'exp devi trovare tu dei modi per dare exp ai pg.
12/12/2007 20:30:36
ok ho risolto....sono sempre le cavolate che ti danno problemi per giorni e giorni!
Grazie a tutti!
Pagine → 1 2
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!