Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: TheKiLLeR en 2 Abril 2008, 22:45 PM

Título: actualizacion automatica
Publicado por: TheKiLLeR en 2 Abril 2008, 22:45 PM
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
Título: Re: actualizacion automatica
Publicado por: Thaorius en 3 Abril 2008, 15:51 PM
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
Título: Re: actualizacion automatica
Publicado por: TheKiLLeR en 3 Abril 2008, 16:26 PM
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
Título: Re: actualizacion automatica
Publicado por: Thaorius en 3 Abril 2008, 19:11 PM
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
Título: Re: actualizacion automatica
Publicado por: TheKiLLeR en 3 Abril 2008, 19:44 PM
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