用户未登录时更新


Update when the user is not logged in

$timeNow = time();
$timeExpire = $timeNow + 10;
$User = $con->query("SELECT * FROM players WHERE Username='".$_SESSION['Username']."'");
$UserInfo = $User->fetch_object();
if($timeNow >= $UserInfo->TimeExpire) {
    echo "Wood Gathered";
    $con->query("UPDATE players SET Wood = Wood+5 WHERE Username='".$_SESSION['Username']."'");
    $con->query("UPDATE players SET Time = '".$timeNow."' WHERE Username='".$_SESSION['Username']."'");
    $con->query("UPDATE players SET TimeExpire = '".$timeExpire."' WHERE Username='".$_SESSION['Username']."'");
}

即使用户未登录,如何使以下代码正常工作?

例如,他在 1 天内回来并获得 1728 木材,因为 86400(1 天)/50(每 50 秒获取资源)等于 1728。

我感觉到你正在编写游戏,因为游戏需要实时:创建一个文件,例如cron.php并将该文件包含在每个页面中。在该文件中放置以下内容:

<?php
$timeNow = time();
$timeExpire = $timeNow + 10;
$Users = $con->query("SELECT * FROM players WHERE TimeExpire<='".$timeNow."'");
while($UserInfo = $User->fetch_object()){
    $givenWood = $timeNow - $UserInfo->TimeExpire;
    $con->query("UPDATE players SET Wood = Wood+ {$givenWood}   WHERE Username='". $UserInfo->Username ."'");
    $con->query("UPDATE players SET Time = '".$timeNow."' WHERE Username='". $UserInfo->Username ."'");
    $con->query("UPDATE players SET TimeExpire = '".$timeExpire."' WHERE Username='". $UserInfo->Username ."'");
}
?>

请记住,我放置此代码只是为了给出如何做到这一点的想法。因此,代码中的逻辑可能存在问题。(你应该做的是让那些你可以给他们一些木材的用户,计算他们从现在到上次给他们木材的时间,并给他们适量的木材)。