Hola, estoy empezando en esto de php diseñando un pekeño juego, nada importante, es de penales, donde el jugador al registrarse elige ser arkero o delantero y va mejorando su habilidad hasta llegar a la máxima que es 10, bien, el tema es que yo quiero que los jugadores mejoren o suban 1 de habilidad por hora, y sin necesidad que el user esté logueado, sería algo como: cada 60 min, sumar 1 a la habilidad de todos los jugadores sin estar logueados cada uno.
Cómo se logra eso? o dónde puedo conseguir data sobre ese tema?
Saludos y gracias
Cada vez que el usuario pida una pagina, actualiza su cuenta.
O sea:
1) Usuario crea cuenta(Al crearse cuenta, pones un campo en la db con la hora(vease time()).
2) Cuando el usuario pide cualquier pagina estando logueado llamas a update_cuenta()
3) update_cuenta o como se llame, resta el retorno de time() con el valir de la db. El resultado es el tiempo que paso desde la ultima actualizacion. Entonces agarra y calcula cuantas habilidades o l oque sea correspondan y agregalas.
Cualqueir duda pregunta.
Un Saludo
Ya entendí, o sea que por ejemplo, el usuario actualizó por última vez a las 16hs, y entra de nuevo a las 20hs, la página tiene que calcular cuántos intervalos de una hora pasaron y actualizar la db de acuerdo a esos intervalos, entonces tendría que usar un sistema con mes, día, hora y minutos, por si pasan días o incluso meses de no acceder a la cuenta.
Gracias por la ayuda, ya voy a contar cómo me fue.
Saludos
nono, 1 solo campo en la db. Lo llenas con lo que te reotrne una llamada a time(). Esta funcion devuelve el offset en segundos desde el unix epoch.
Saludos
investigué sobre la función time()
y logré hacer algo así:
<?php
echo "<br>fecha vieja: ".$fecha1=1207230000; //de acá va a tomar el dato de la DB.
$fechaactual=time();
$diferencia=($fechaactual-$fecha1)/60;
echo "<br>fecha actual: ".$fechaactual."<br />";
echo "diferencia: ".($fechaactual-$fecha1);
echo "<br>minutos que pasaron desde la última comprobación: ".$diferencia;
while($diferencia > 60 or $diferencia ==60){
echo "<br>pasaron mas de 60 min, se actualiza y da el sobrante"; //realiza la actualización de la db con los nuevos datos y la fecha de la última actualizacion cada vez que se cumpla la condición del while.
$diferencia=($diferencia-60);
echo "<br>se actualizará de nuevo en: ".(60 - $diferencia)." minutos";
}
?>
básico y sin la parte donde accede a la db, pero es la idea, por si le sirve a alguien.
Saludos y gracias