Fix #364
This commit is contained in:
novgorodschi catalin
2026-08-05 14:45:18 +03:00
parent 077708ef84
commit 5e2d1f9958
2 changed files with 27 additions and 9 deletions
+2 -1
View File
@@ -116,7 +116,8 @@ $database->query("DELETE FROM " . TB_PREFIX . "ndata WHERE uid = $uid");
$database->query("DELETE FROM " . TB_PREFIX . "medal WHERE userid = $uid");
$database->query("DELETE FROM " . TB_PREFIX . "gold_fin_log WHERE uid = $uid");
$database->query("DELETE FROM " . TB_PREFIX . "links WHERE userid = $uid");
$database->query("DELETE FROM " . TB_PREFIX . "active WHERE username = '$username'");
// Tabela "active" a fost eliminata; ultima activitate sta in users.timestamp,
// iar randul utilizatorului se sterge oricum mai jos.
$database->query("DELETE FROM " . TB_PREFIX . "online WHERE uid = $uid");
$database->query("DELETE FROM " . TB_PREFIX . "chat WHERE id_user = $uid");
$database->query("DELETE FROM " . TB_PREFIX . "login_log WHERE uid = $uid");
+25 -8
View File
@@ -450,16 +450,33 @@ trait DatabaseUserQueries {
return self::$fieldsCache[$ref.$mode];
}
/**
* Marcheaza intrarea/iesirea unui jucator.
*
* Tabela separata "active" a fost eliminata: dubla informatia din
* users.timestamp, care e oricum sursa pentru lista de jucatori online,
* harta de caldura si stergerea conturilor inactive.
*
* Metoda ramane, cu apelantii ei neschimbati, dar acum lucreaza pe
* users.timestamp. La delogare (mode = 1) punem timestamp-ul in trecut, ca
* jucatorul sa dispara imediat din lista de online, fara sa mai astepte
* fereastra de 5 minute.
*
* @param string $username
* @param int $mode 0 = intra in joc, 1 = iese
*/
function activeModify($username, $mode) {
list($username, $mode) = $this->escape_input($username, $mode);
list($username) = $this->escape_input($username);
$time = time();
if(!$mode) {
$q = "INSERT into " . TB_PREFIX . "active VALUES ('$username',$time)";
} else {
$q = "DELETE FROM " . TB_PREFIX . "active where username = '$username'";
}
return mysqli_query($this->dblink,$q);
$mode = (int) $mode;
// la iesire il scoatem din fereastra de 5 minute a listei de online
$stamp = $mode ? (time() - 600) : time();
$q = "UPDATE " . TB_PREFIX . "users SET timestamp = " . $stamp
. " WHERE username = '" . $username . "' LIMIT 1";
return mysqli_query($this->dblink, $q);
}
function updateActiveUser($username, $time) {