Le azioni che tutti conoscono; cumulabili! postato il 30/04/2007 17:06:05 nel forum programmazione, gdrcd e open source
allora ragazzi per far guadagnare ai miei utenti qualche moneta, sto implementando una miniera nel mio gioco; il fatto è che non riesco e ditemi se mi complico la vita di mio, a rendre le azioni cumolabili xke il tempo e le date per me sono impossibili dal punto di vista del php ovvero non le capisco xD x i piu esperti posto qui il mio codice :P
<?php session_start();
include ('inc/parametri.inc.php');
include ('inc/controllo.php');
include ('inc/open2.php');
include ('inc/controlloesilio.php');
function Tempo($tim)
{
return(strftime("%d/%m/%Y %H:%M", strtotime($tim)));
}
include ("inc/header.html.inc.php");
$sold=array('0','0','0','10','0','0','0','30','0','0','0','30','45','10');
$sold1=rand(1,14);
$soldi=$sold[$sold1];
switch($soldi)
{
case 0:
$sx="nessuna";
$sx1="Non hai";
$sx2="moneta";
break;
case 10:
case 30:
case 0:
$sx=$soldi;
$sx1="Hai";
$sx2="monete";
break;
}
?>
<html>
<head>
<title>Miniera Narsil</title>
</head>
<body bgcolor="#000000">
<p> </p>
<table border="1" width="54%" id="table1" align="center" bgcolor="#000000">
<tr>
<td height="226">
<p align="center"><img border="0" src="img/miniera/md1.jpg" width="150" height="240" align="right">
<font color="#FF6600" size="7" face="Times New Roman"><img border="0" src="img/miniera/ms1.jpg" width="150" height="240" align="left">Miniera</font>
<p align="center">
<a href="miniera.php" target="_self"><img border="0" src="img/miniera/min1.gif" width="136" height="128"></a>
<p align="center">
<?php
$MySql = "SELECT UltimoMiniera FROM Personaggio WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$LM = $rs["UltimoMiniera"];
$rs->close;
function check_time($time)
{
list($data, $ora) = explode(" ", $time);
list($anno, $mese, $giorno) = explode("-", $data);
list($ore, $min, $sec) = explode(":", $ora);
$time = mktime($ore, $min, $sec, $mese, $giorno, $anno);
$timeouts = 60;
$timeout = time() - $timeouts;
if($time < $timeout)
return true;
else
return false;
}
// $lm deve essere in formato UNIX TIME STAMP
if (!check_time($LM))
{
echo "<script language='javascript'>alert('Puoi fare una azione ogni minuto, riprova piu tardi.');</script>";
}
else
{
echo "<center><font color=\"#FF6600\" size=\"1\">".$sx1." trovato ".$sx." ".$sx2." d'oro...</font></p></center>";
if($soldi >= 10)
{
$sql01="UPDATE Personaggio SET UltimoMiniera = NOW(), Soldi = Soldi + '$soldi' WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($sql01);
$MySql = "
INSERT INTO LogFinanza (Nome, Somma, Tipo, DataEvento, Nota)
VALUES('".pars($Login)."', '".$sx."', '8', '".strftime("%Y-%m-%d %H:%M:%S")."', 'Ricavo Miniera Narsil')";
$Result = mysql_query($MySql);
}
$MySql = "UPDATE Personaggio SET UltimoMiniera = NOW() WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($MySql);
}
?>
</td></tr></table></body></html>
in poche parole volevo fare in modo da nn scrivere NOW() nel DB ma la data vecchia aumentata di due minuti ^^
ditemi se sono pazzo da legare!!
Ps.:scusate eventuali errori nella scrittura, ma sto scrivendo con un dito xD ho l'altra mano occupata xD
Pagine → 1
30/04/2007 17:22:02
non e' un problema banale, essendo il php di per se stateless, ovvero senza memoria delle esecuzioni precedenti, devi crearti un algorirmo, che dovra' coinvolgere il database, in cui ti salvi lo stato attuale del lavoro.
30/04/2007 22:51:58
mr_faber dire il vero delle informazioni le abbiamo no?
ovvero: la data salvata sul database, il nostro NOW e la funzione che controlla se la data fra le due è maggiore di 1 min ;P
ora mi domando, invece di inserire NOW() che torna nella tabella sotto forma di :
$MySql = "UPDATE Personaggio SET UltimoMiniera = NOW() WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($MySql);
non si potesse formulare altrimenti la querry per implemantare di cui sopra!
02/05/2007 17:46:26
Magari se qualcuno ci avesse capito qualcosa di quel che vuoi fare.. un esempino no? :)
02/05/2007 20:48:48
Scusa ma non essendo la mia madrelingua faccio fatica a spiegarmi per bene xD
allora per es:
jerry va in miniera alle 20:00; l'ultimo suo ingresso nel gioco è stato fatto alle 18:00 [ le ore trascorse sn 2 e le azioni (che sarebbero una per min) sarebbero 120 ] ora con il mio scipt preme sul bottone della miniera e la data che gli viene salvata nel DB saranno le 20:00. Io invece vorrei che sarebbero le 18:01 [ in questo modo il pg potra fare altre 119 azioni ]
premesso che al loghin l'ora venga aggiornata^^
03/05/2007 09:26:41
ma scusa e' corretto che venga scritto le 20:00 nel db i lfatto e' che dovresti avere un campo che dice che jerry ha acquisito 120 azioni e quando clicca sul bottone in miniera per lavorare gli scali un'azione .
cosi' poi se jerry entra alle 22 ha altre 120 azioni l'ora gli si setta a 22 e le azioni a 239
03/05/2007 11:59:11
oh beh non centra se e ' utile o meno e' un aiuto ehhe su piu' buono :P
07/05/2007 02:46:26
;P ho provato ad avverare quanto su detto ma incappo in un probelma e non so se di formattazione o di logica x.x
ho fatto una cosa del genere per aumentare i punti delle azioni appena si entra nella pagina ma la "funzione" non funge xD
ovviamente ho creato azioni nella tabella personaggio^^
$MySql = "SELECT * FROM Personaggio WHERE Nome = '".pars($Login)."'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$LM = $rs["UltimoMiniera"];
$AZ = $rs["Azioni"];
$rs->close;
//calcolo da diff in minuti
$adesso = time();
$prima = time($rs["Azioni"]);
$diffadesso = $adesso-$prima;
$minuti = floor($diffadesso/60);
//faccio la somma
$AX = $minuti+$AZ;
ho provato a venir causa ma non ho davvero capito perche non funzionasse ;P ho messo questa stringa per testare
echo 'ultimo miniera = '.$LM.'<br>azioni = '.$AZ.'<br>adesso -ora- ='.$adesso.'<br>differenza = '.$diffadesso.'<br>minuti = '.$minuti.'<br>somma = '.$AX.'';
e mi da questo per es come print!
ultimo miniera = 2007-05-07 02:40:50
azioni = 0
adesso -ora- =1178498678
differenza = 0
minuti = 0
somma = 0
09/05/2007 16:39:40
com'è kinley sei morto ç_ç
Pagine → 1
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!